[問題] Transfer fnction值與Matlab轉換語言問題

作者: larry78930 (泰瑞獸)   2022-04-20 19:01:18
各位前輩們好,我最近因數值過大的原因要從Matlab轉換到Mathematica進行計算,但在編寫程式時遇到了以下的問題
https://i.imgur.com/plWcqQv.jpg
以上的圖片是在Matlab所編寫的程式碼
簡單來說我需要經過迴圈相加過後的transfer function並取出方程的分子與分母的係數,但我的數值有點大Matlab計算不出來,因此想請教各位前輩要怎麼在Mathematica 進行迴圈內有transfer function的編寫。
謝謝各位的幫忙!
作者: LPH66 (-6.2598534e+18f)   2022-04-20 19:13:00
有原始數學式嗎?一般來說這種迴圈在 Mathematica 是使用 Do[]然後看起來 s 是多項式變數, 那其實就直接寫出來就好所以應該會像是下面這樣h=0;Do[h=h+R[[i]]/(1+R[[i]]*C[[i]]*s),{i,1,Length[R]}];取分子分母可以使用 Numerator[] 及 Denominator[]然後再使用 CoefficientList[...,s] 取出係數陣列那還有就是求和迴圈在 Mathematica 可以寫成類似數學式的Sum[加總項, {i,1,Length[R]}] 這樣, 就不用額外寫 Do 加了
作者: Rasin (雷森)   2022-04-23 03:53:00
MATLAB應該不至於算不出來吧?
作者: larry78930 (泰瑞獸)   2022-04-23 21:33:00
我的數值大到10^100,小到10^-400,Matlab不是NaN就是inf QQ
作者: Rasin (雷森)   2022-04-24 08:50:00
電路通常應該可以取LOG或者單位取kM之類的
作者: Sanvean   2022-06-24 15:07:00

Links booklink

Contact Us: admin [ a t ] ucptt.com