matlab解方程精度,如何提高解非线性方程组的精度?

博主在解决一个包含13个方程和13个未知数的非线性方程组时,使用fsolve函数得到的结果精度不理想且每次计算结果波动大。为提高计算精度,寻求对fsolve函数参数调整或解法优化的建议。文中给出了自定义函数myfun的详细代码,该函数定义了方程组,以及主程序中使用fsolve的设置,如最大迭代次数和函数评估次数。
摘要由CSDN通过智能技术生成

我有一个13方程13未知数的方程组需要求解,使用的是fsolve函数,设定初值之后每次计算的结果都不同且相差比较大,精度不高。

希望各位大神能帮我修改一下计算程序以提高计算精度。

下面是自定义函数的代码:

function q=myfun(p)

t3=13;t5=58;t8=94;t9=80;h1=2666.1;h2=305.6;h3=2405.9;D=3.643;%已知系数

%下面是需要求解的方程组,一共13个方程,13个未知数。

x4=p(1); x5=p(2); x6=p(3); x8=p(4); x9=p(5); t4=p(6); t6=p(7); h4=p(8); h5=p(9); h6=p(10); h8=p(11); h9=p(12); G=p(13);

q(1)=(G-D)*(h8-h9)-G*(h6-h5);

q(2)=(G-D)*x8-G*x6;

q(3)=D*h1+(G-D)*h8-G*h6+D*(h3-h2)-20000;

q(4)=(h8-h9)/(h8-h4)-0.65;

q(5)=G*t4-D*t3-(G-D)*t9;

q(6)=G*x5-(G-D)*x9;

q(7)=x8-x9;

q(8)=x5-x6;

q(9)=-2024.33+163.309*x4-4.88161*x4^2+(6.302948e-2)*x4^3-(2.913705e-4)*x4^4+t4*(18.2829-1.1692*x4+(3.24804e-2)*x4^

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值