Re: [問題] 如何求解方程式"符號運算"與"簡化"

看板Mathematica作者 (Hysterisis)時間12年前 (2012/12/22 02:42), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串2/4 (看更多)
直接貼到Mathematica讀 (*成功的重點1,符號必須完全一致。 有[t]的變數全部要有[t]。尤其是D[f[t],t] 處, 若f不明確指定[t]會 直接Evaluate得出0喔 *) line1=L*D[i[L][t],t]==V[g][t]-r[L]*i[i][t]-v[0][t]; line2=i[i][t]==(L*D[i[L][t],t])/R[S]+i[L][t]; line3=v[0][t]==c*r[c]*D[v[c][t],t]+v[c]; ANS1=Eliminate[{line1,line2,line3},{i[i][t],v[0][t]}] ANS2=Solve[ANS1,{D[i[L][t],t]}] (*用Eliminate消掉 (2)(3)式的變數,我覺得這邊調整成D[i[L][t],t]在前太麻煩也不必 要,索性 用Solve的方式*) line4=L*D[i[L][t],t]==-(((r[c]*R[S])*(c*D[v[c][t],t]))/(r[L]+R[S]))+ (R[S]*V[g][t])/(r[L]+R[S])-(v[c]*R[S])/(r[L]+R[S])+ (i[L][t]*((-r[L])*R[S]))/(r[L]+R[S]); ANS3=Solve[line4,D[i[L][t],t]] SameQ[Simplify@ANS2,Simplify@ANS3] (*這邊是要證明直接輸入的 (4)式與消去法得到的等價,Simplify不可少*) line5=c D[v[c][t],t]==R[L]/(r[c]+R[L])(1/R[S]*L*D[i[L][t],t]+i[L][t]) -v[c]/(r[c]+R[L]) (*(5)式兼DeBug單元,前面提過變數的輸入要完全一致,問題除了用眼睛很累的金金看 有沒有辦法很快核對?有,就是利用Variables函數將你打的1~5式中的變數名 一覽比較, 一定要完全重合啊 *) Sort@Flatten[Variables/@{line1,line2,line3,line4,line5}[[All,2]]] (*這邊偷懶不由 (4)式做,而是 (1)(2)(3)(5)一次做消去,結果相同*) ANS4=Eliminate[{line1,line2,line3,line5},{i[i][t],v[0][t],D[v[c][t],t]}] (*不同的是這次硬是要把它轉成和你寫的一致*) ANS5=L D[i[L][t],t]==L (D[i[L][t],t]/.Solve[ANS4,D[i[L][t],t]][[1]]) (*利用Collect可以把混亂的表達式按照需求拆開*) ANS6=Collect[ANS5,{D[i[L][t],t],i[L][t],v[c],V[g][t]}] (*最後利用Coefficient可以取出係數,ANS6[[2]]的[[2]]不可少*) ANS7=Coefficient[ANS6[[2]],#]&/@{i[L][t],v[c],V[g][t]} ※ 編輯: jurian0101 來自: 140.112.213.88 (12/22 03:29)

12/22 14:58, , 1F
謝謝jurian0101大大,我先試試看,光是看到這些程式碼
12/22 14:58, 1F

12/22 14:59, , 2F
我快要哭出來了,感謝,有疑問再請教!!
12/22 14:59, 2F

12/22 15:25, , 3F
我都不敢用上下標,貼BBS再貼回ntoebook會崩壞掉
12/22 15:25, 3F

12/22 20:59, , 4F
嗯,因為太多Ctrl+-的關係吧,再看一次,我又感動一次
12/22 20:59, 4F
文章代碼(AID): #1GrAs0Rt (Mathematica)
文章代碼(AID): #1GrAs0Rt (Mathematica)