MATLAB求解非线性方程组

function y=f_sb(x) %构造线性方程组
p=1025;
g=9.8;
y(1)=-p*g*x(1)*pi+12000+sin(x(2))*x(3);
y(2)=-x(3)*cos(x(2))+0.625*pi*(2-x(1))*x(4)*x(4);

y(3)=-x(3)*sin(x(2))-pi*0.025*0.025*p*g+100+x(5)*sin(x(6));
y(4)=-x(3)*cos(x(2))+x(5)*cos(x(6));

y(5)=-x(5)*sin(x(6))-pi*0.025*0.025*p*g+100+x(7)*sin(x(8));
y(6)=-x(5)*cos(x(6))+x(7)*cos(x(8));

y(7)=-x(7)*sin(x(8))-pi*0.025*0.025*p*g+100+x(9)*sin(x(10));
y(8)=-x(7)*cos(x(8))+x(9)*cos(x(10));

y(9)=-x(9)*sin(x(10))-pi*0.025*0.025*p*g+100+x(11)*sin(x(12));
y(10)=-x(9)*cos(x(10))+x(11)*cos(x(12));
a=0.625*x(4)*x(4)*pi*(2-x(1));
y(11)=-0.15*0.15*p*g-x(11)*sin(x(12))+1000+0.625*x(4)*x(4)*pi*(2-x(1))*cosh(x(13)/a)*sin(x(14));
y(12)=-x(11)*cos(x(12))+0.625*x(4)*x(4)*pi*(2-x(1))*cosh(x(13)/a)*cos(x(14));
y(13)=-a*sinh(x(13)/a)+22.05;
y(14)=-x(1)-(sin(x(2))+sin(x(6))+sin(x(8))+sin(x(10))+sin(x(12)))-x(15)+18;
y(15)=-x(15)+a-cosh(x(13)/a-1);
y(16)=-p*(pi*x(1)+0.025*0.025*pi*4+0.15*0.15*pi)+1000+40+100+1200;    



options=optimset('Display','off');
x=fsolve(@f_sb,ones(15,1)',options) %求解
y=f_sb(x) %验证
这是最基本的方法,需要给定初值,误差较大。

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值