QQ网名大全

matlab编程求教,含参变量的方程,给出一系列的参变量的值,求方程相应的解

楼上 @兔子和小强 从理论上进行了分析,下面我从另外的角度进行说明。

 

1、可以用控制理论里面的根轨迹方法来求出a=2:50时方程根的分布情况:

s=tf('s');
rlocus(s^7/(s^2+1)^7,2:50)

由图可见,对于给定的a值,方程根本就没有实数根,更不要说正数解了。如果把a的范围放大到0~inf的范围,得到完整的根轨迹如下:

rlocus(s^7/(s^2+1)^7)
ylim([-3 3])
axis equal

可见,对于a>0,方程不存在正数根。对于a<0的情况,可以用下面的命令绘图:

rlocus(-s^7/(s^2+1)^7)
ylim([-3 3])
axis equal

可见,只有a<0的时候,方程才可能出现正数解(进一步可以确定,方程存在正数解的要求大约是a<-128)。

 

2、上面用到了控制系统工具箱的rlocus函数,如果未安装该工具箱,或者对根轨迹的概念不熟悉,也可以用roots函数直接求根:

syms a x
f=a*x^7+(x^2+1)^7;
r=arrayfun(@(a){roots(sym2poly(subs(f)))},2:50);
plot(cell2mat(r).')

绘图结果与上面第一张图一致。

佚名
2024-05-29 09:24:23
最佳回答
类似问题(10)