如何求解非线性方程组的全部根

原先使用了solve函数,结果只返回了一个值

后来使用了fsolve函数,这个函数本身只能返回一个值,但是我们可以通过图解法,将平衡点的大致范围进行确定,之后就可以使用x=fsolve('myfun',[-0.3,1]',optimset('Display','off'))这个语句就可以求出平衡点,这个语句,myfun是定义的一个函数,【】里的是一个大致范围,optimset我没有关心。之后就可以求出精准的平衡点。

关于图解法,首先,将方程组的变量降到最少,这样一个四阶微分方程组就可以化简成两个方程组,之后对这两个方程组分别使用绘图工具,就可以画出图像来。

在这里,我的方程是隐函数,所以,我使用的绘图语句是ezplot()

syms y z%确定变量是什么。
a=1.519;b=-0.04;rou=-0.5;u=0.1;ebu=0.45;
fun1=-y-1.5*tanh(-y+3.5*tanh(y)+0.45*tanh(z)+rou*y*(a+3*b*(u/ebu*y)^2))+1.5*tanh(y)-0.45*tanh(z)+rou*y*(a+3*b*(u/ebu*y)^2)==0;
fun2=-z+3*tanh(-y+3.5*tanh(y)+0.45*tanh(z)+rou*y*(a+3*b*(u/ebu*y)^2))-2*tanh(y)+1.5*tanh(z)==0;
ezplot(fun1);
hold on
ezplot(fun2);

之后就可以得到他们的图解范围,就可以知道平衡点的大致范围,之后就可以进行全部根的精准求解

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值