查看: 131|回复: 3|关注: 0

[已答复] 非线性方程组求解

[复制链接]

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 2020-9-10 15:37:02 | 显示全部楼层 |阅读模式
本帖最后由 GLXZS 于 2020-9-12 11:42 编辑

已修改可运行的程序
function  M  = myfun(y)

%x1,x2,x3,x4,x5,x6分别为phy1 phy2 phy3 c1 c2 c3;
%y(1),y(2),y(3),y(4)分别为ma1,ma2,ma3,Fs;

[x1,x2,x3,x4,x5,x6]=deal(31.8393,28.2931,26.7845,0,6.2162,6.7704);
[u1,u2,u3]=deal(0,0,0);
[b1,b2,b3]=deal(2,2,2);
[W1,W2,W3]=deal(80,20,50);
[alphy1,alphy2,alphy3]=deal(pi/3,pi/4,pi/6);

f1=y(1)-cos(alphy1)+(sin(alphy1)*tan(x1))./y(4);
f2=y(2)-cos(alphy2)+(sin(alphy2)*tan(x2))./y(4);
f3=y(3)-cos(alphy3)+(sin(alphy3)*tan(x3))./y(4);
s=((x4*b1+(W1-u1*b1)*tan(x1))./y(1)+(x5*b2+(W2-u2*b2)*tan(x2))./y(2)+(x6*b3+(W3-u3*b3)*tan(x3))./y(3))/(W1*sin(alphy1)+W2*sin(alphy2)+W3*sin(alphy3));
f4=y(4)-s;

M=[f1;f2;f3;f4];
end
求解部分
clear,clc;
y0=[0.8;0.9;0.91;1.66];
options=optimset('Display','iter');
[y,fval]=fsolve(@myfun,y0,options)


回复主题 已获打赏: 0 积分

举报

新手

48 麦片

财富积分


050


0

主题

149

帖子

7

最佳答案
  • 关注者: 4
发表于 7 天前 | 显示全部楼层
你这个可以化为一元方程(根据F1=0得出y(1)关于y(4)的表达式,根据F2=0得出y(2)关于y(4)的表达式,根据F3=0得出y(3)关于y(4)的表达式,将这些表达式代入F4=0,就得出关于y(4)一元方程,一元方程解起来容易的多,我试着用自编的程序解了一下,得到的解如下:

y(4)=1.18843968988306,再求出y(1)=0.171626077348779, y(2)=0.695939864496961, y(3)=6.05114608909382
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

1248 麦片

财富积分


5001500


0

主题

2834

帖子

265

最佳答案
  • 关注者: 174
发表于 6 天前 | 显示全部楼层
本帖最后由 shihe 于 2020-9-14 16:40 编辑

多解吧,另外二组:
1:
y1: 0.529634869777843
y2: 0.708114565602692
y3: 0.398082105939911
y4: -13.168696394713
2:
y1: -4.52744593684449
y2: 0.536139886236821
y3: 80.2508733568134
y4: 0.0776244255440462


回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 6 天前 | 显示全部楼层
Simple80 发表于 2020-9-13 22:05
你这个可以化为一元方程(根据F1=0得出y(1)关于y(4)的表达式,根据F2=0得出y(2)关于y(4)的表达式,根据F3=0 ...

这样解也可以,不过我主要是想建立一种解方程组的思想。
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表