首页 > 编程知识 正文

高阶常系数线性微分方程,matlab解复数方程组

时间:2023-05-04 08:25:02 阅读:174605 作者:854

如果已知复系数特征方程,且规定其特征根为实数,求根过程其实就是展开该方程,分别列出实部方程和虚部方程,依次求解。 这里使用的MATLAB函数如下。

扩展(扩展表达式,简化函数输入(,sym2poly ),提取多项式系数),求解solve (解)方程)。

代表性问题(针对双翼的动力弹问题)。

用Theodorsen方法求解二维机翼的振动速度和频率,在求解过程中会遇到复杂的行列式求解问题。 行列式如下。

请注意,其中m和l是空气力矩和空气动力,并且是复数。 通过验算得到。 前提是x是我们要解的根,且是实数。 展开该特征方程,分为实部方程和虚部方程分别求解。 手工计算太复杂了,我考虑用MATLAB代替铅笔进行数值计算。

Lh、La、Mh、Ma的值分别为0.5407-1.9293i、-3.1749-2.8305i、0.5、0.375-1.6667I,求解代码为:

clc; clear Lh=0.5407-1.9293i; La=-3.1749-2.8305i; Mh=0.5; Ma=0.375-1.6667i; %空气动力参数值syms x xr xi %为符号变量x、实部和虚部p=(5*(1-0.25*x ) Lh ) 5*0.5* )1-x ) ) ma-0.4* ) laMH ) 0.16*Lh 将%行列式推广为标准多项式形式xishu=sym2poly(EP ); 提取%行列式系数Shi=real(Xishu ); 提取%实部=imag(Xishu ); 提取%虚部eq n1=Shi (1) xr^2Shi )2) xrShi )3)==0; %列表实部方程eqn2=Xu(1) XiXu )2) XiXu )3)==0; (列出虚部方程)我们知道所列方程的最高阶数为2s1=double ) solve(eqn1,xr )。 %求解实部方程所对应的根s2=double(solve(eqn2,xi ); 通过%解虚部方程式对应的根%solve得到的并不是最终的数字,需要用double简化s1s2的执行的结果如下。

由于虚部方程的二次项系数为0,所以只能得到一个根。

请注意,在使用solve解析后,必须使用double命令简化结果。 否则,结果如下。

关于更一般的复数方程的求根问题,如果方程的根是复数的话,求解过程会更简单。 列举方程后,无需提取实部、虚部系数分别列举方程进行求解,而是直接使用solve命令进行求解。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。