[英]Finding the roots of a polynomial with symbolic coefficients
作為任務的一部分,我必須導出汽車懸架系統的運動方程。 本質上,這是彈簧質量阻尼器的問題。 尚未提供轎廂質量M1,車輪質量M2,彈簧常數k1和k2以及阻尼常數c的值。 我已經得出了運動方程,並得出了將路面(輸入)與所產生的車身位移(輸出)相關的傳遞函數。 我必須確定該傳遞函數的極點,因此我需要找到特征方程(分母)的根。 問題是我沒有上述變量的任何值,並且試圖在符號中分解我的4階多項式在MATLAB中或直接計算根。 我不能假定任何值,必須以符號方式求解,但是我不知道在MATLAB中是否可以實現。
我沒有使用MATLAB的豐富經驗,所以我不了解它的所有功能。
我要解決的特征方程是:
(M1*M2)*s^4 + c*(M1+M2)*s^3 + ((M1*k1)+(M1*k2)+c^2+(M2*k2)-c)*s^2 + k1*c*s + ((k1*k2)-(k2^2))
先感謝您。
你的方程式有一些錯誤;
c(M1+M2)*s^3 -> c*(M1+M2)*s^3
+ +k1*c*s -> + k1*c*s
但是,如果您想求解多元方程,可以這樣做。
syms M1 M2 c k1 k2 s
eqn = (your equation) == 0;
roots = solve(eqn, s);
更多信息在這里: solve
現在,僅在要計算方程的根的情況下,才需要執行以下步驟,該根與前面的注釋類似:
1. syms c s
2. roots=solve((M1*M2)*s^4 + c*(M1+M2)*s^3 + ((M1*k1)+(M1*k2)+c^2+(M2*k2)-c)*s^2 + k1*c*s + ((k1*k2)-(k2^2)),s)
or
roots=solve((M1*M2)*s^4 + c*(M1+M2)*s^3 + ((M1*k1)+(M1*k2)+c^2+(M2*k2)-c)*s^2 + k1*c*s +((k1*k2)-(k2^2)),c)
or
roots=solve((M1*M2)*s^4 + c*(M1+M2)*s^3 + ((M1*k1)+(M1*k2)+c^2+(M2*k2)-c)*s^2 + k1*c*s + ((k1*k2)-(k2^2)),s,c)
取決於您想要的解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.