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

例如求解上述方程,a为参变量,给定a的一系列值如,a=2:50,如何求出相应的解X。若直接给定a等于某个值,得到的X解包含正负实数解和复数解,我限定了只要实数解,得到一正... 例如求解上述方程,a为参变量,给定a的一系列值如,a=2:50,如何求出相应的解X。

若直接给定a等于某个值,得到的X解包含正负实数解和复数解,我限定了只要实数解,得到一正一副,再限定只要其中的正数解,由于正数解都在第一个,我就写了X=(X(1,1)).
但一旦直接在开头写a=2:50,运行就会报错
展开
 我来答
tianxiawulang
2015-03-19 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2546万
展开全部

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

 

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).')

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

兔子和小强
2015-03-19 · TA获得超过6945个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1373万
展开全部
该方程的解是 x^2 - a^(1/7)x + 1 = 0 的解。利用二次方程根的公式可直接写出解。
但是,当 a = 2:50 时,Δ<0,方程不存在实数解。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式