查看: 661|回复: 11|关注: 0

[已解决] 使用Vpasolve求解多元方程组,返回结果为空矩阵?

[复制链接]

新手

12 麦片

财富积分


050


1

主题

14

帖子

0

最佳答案
我的是一个14元的方程组,共14个方程,求解结果返回为空矩阵,没有数值,这是什么原因啊?

syms a1 a2 b1 b2 b3 d1 d2 d3 pha1 pha2 pha3 gama1 gama2 gama3
F=0.22;
c=0.3;
omega=1.2;
eq1=-a2+a1^3+3*a1*b1^2/2+3*a1*b2^2/2+3*a1*b3^2/2+3*b1^2*b2*cos(2*pha1-pha2)/4+3*b1*b2*b3*cos(pha1+pha2-pha3)/2;
eq2=3*a1^2*b1-b1*omega^2+3*b1^3/4+3*b1*b2^2/2+3*b1*b3^2/2+3*a1*b1*b2*cos(-2*pha1+pha2)+3*b2^2*b3*cos(-pha1+2*pha2-pha3)/4+3*b1^2*b3*cos(-3*pha1+pha3)/4+3*a1*b2*b3*cos(-pha1-pha2+pha3)-F*cos(pha1)-d1*cos(-pha1+gama1);
eq3=-3*a1*b1*b2*sin(-2*pha1+pha2)-3*b2^2*b3*sin(-pha1+2*pha2-pha3)/4-3*b1^2*b3*sin(-3*pha1+pha3)/4-3*a1*b2*b3*sin(-pha1-pha2+pha3)+d1*sin(-pha1+gama1)-F*sin(pha1)-b1*c*omega;
eq4=3*a1*b1^2*cos(2*pha1-pha2)/2+3*b1*b2*b3*cos(pha1-2*pha2+pha3)/2+3*a1*b1*b3*cos(-pha2-pha1+pha3)+3*a1^2*b2-4*b2*omega^2+3*b1^2*b2/2+3*b2^3/4+3*b2*b3^2/2-d2*cos(-pha2+gama2);
eq5=-3*a1*b1*b3*sin(-pha2-pha1+pha3)+d2*sin(-pha2+gama2)-2*b2*c*omega-3*a1*b1^2*sin(2*pha1-pha2)/2-3*b1*b2*b3*sin(-2*pha2+pha1+pha3)/2;
eq6=b1^3*cos(-pha3+3*pha1)/4+3*a1*b1*b2*cos(pha1+pha2-pha3)+3*b1*b2^2*cos(-pha3-pha1+2*pha2)/4+3*a1^2*b3+3*b1^2*b3/2+3*b2^2*b3/2+3*b3^3/4-9*b3*omega^2-d3*cos(-pha3+gama3);
eq7=-b1^3*sin(-pha3+3*pha1)/4-3*a1*b1*b2*sin(pha1+pha2-pha3)-3*b1*b2^2*sin(-pha3-pha1+2*pha2)/4+d3*sin(-pha3+gama3)-3*b3*c*omega;
eq8=-a1+a2^3+3*a2*d1^2/2+3*a2*d2^2/2+3*a2*d3^2/2+3*d1^2*d2*cos(2*gama1-gama2)/4+3*d1*d2*d3*cos(gama1+gama2-gama3)/2;
eq9=3*a2^2*d1-d1*omega^2+3*d1^3/4+3*d1*d2^2/2+3*d1*d3^2/2+3*a2*d1*d2*cos(-2*gama1+gama2)+3*d2^2*d3*cos(-gama1+2*gama2-gama3)/4+3*d1^2*d3*cos(-3*gama1+gama3)/4+3*a2*d2*d3*cos(-gama1-gama2+gama3)-F*cos(gama1)-b1*cos(-gama1+pha1);
eq10=-3*a2*d1*d2*sin(-2*gama1+gama2)-3*d2^2*d3*sin(-gama1+2*gama2-gama3)/4-3*d1^2*d3*sin(-3*gama1+gama3)/4-3*a2*d2*d3*sin(-gama1-gama2+gama3)+b1*sin(-gama1+pha1)-F*sin(gama1)-d1*c*omega;
eq11=3*a2*d1^2*cos(2*gama1-gama2)/2+3*d1*d2*d3*cos(gama1-2*gama2+gama3)/2+3*a2*d1*d3*cos(-gama2-gama1+gama3)+3*a2^2*d2-4*d2*omega^2+3*d1^2*d2/2+3*d2^3/4+3*d2*d3^2/2-b2*cos(-gama2+pha2);
eq12=-3*a2*d1*d3*sin(-gama2-gama1+gama3)+b2*sin(-gama2+pha2)-2*d2*c*omega-3*a2*d1^2*sin(2*gama1-gama2)/2-3*d1*d2*d3*sin(gama1-2*gama2+gama3)/2;
eq13=d1^3*cos(-gama3+3*gama1)/4+3*a2*d1*d2*cos(gama1+gama2-gama3)+3*d1*d2^2*cos(-gama3-gama1+2*gama2)/4+3*a2^2*d3+3*d1^2*d3/2+3*d2^2*d3/2+3*d3^3/4-9*d3*omega^2-b3*cos(-gama3+pha3);
eq14=-d1^3*sin(-gama3+3*gama1)/4-3*a2*d1*d2*sin(gama1+gama2-gama3)-3*d1*d2^2*sin(-gama3-gama1+2*gama2)/4+b3*sin(-gama3+pha3)-3*d3*c*omega;
sol=vpasolve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11,eq12,eq13,eq14],[a1,a2,b1,b2,b3,d1,d2,d3,pha1,pha2,pha3,gama1,gama2,gama3],[-inf inf;-inf inf;-inf inf;-inf inf;-inf inf;-inf inf;-inf inf;-inf inf;-pi pi;-pi pi;-pi pi;-pi pi;-pi pi;-pi pi]);
a11=double(sol.a1);
a21=double(sol.a2);
b11=double(sol.b1);
b21=double(sol.b2);
b31=double(sol.b3);
d11=double(sol.d1);
d21=double(sol.d2);
d31=double(sol.d3);
pha11=double(sol.pha1);
pha21=double(sol.pha2);
pha31=double(sol.pha3);
gama11=double(sol.gama1);
gama21=double(sol.gama2);
gama31=double(sol.gama3);

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

举报

论坛优秀回答者

中级

1248 麦片

财富积分


5001500


0

主题

2834

帖子

265

最佳答案
  • 关注者: 174
发表于 2020-7-8 09:05:17 | 显示全部楼层 |此回复为最佳答案
方程中有周期性三角函数,不加范围约束的话多解:
1:
a1        -1.78015718113507E-18
a2        9.12387461367521E-19
b1        0.0894133797174176
b2        -1.59797269791267E-19
b3        1.27743068946074E-5
d1        -0.0894133797174176
d2        2.48223298959658E-19
d3        1.27743068946083E-5
pha1        -2.99475269897972
pha2        -5.26619805238086
pha3        3.65938874011578
gama1        0.146839954610075
gama2        0.448435741350504
gama3        3.65938874011581

2:
a1        9.19358735657046E-22
a2        -4.86220453208067E-20
b1        0.0894133797174176
b2        -3.73321159212958E-22
b3        1.27743068946078E-5
d1        -0.0894133797174177
d2        -8.48737983668285E-21
d3        -1.27743068946079E-5
pha1        -2.99475269897972
pha2        -14.5622029539219
pha3        -27.7565377957821
gama1        -12.4195306597491
gama2        -2762.62943052499
gama3        0.517796086525985

....

如果都大于0:
1:
a1        0.788862260417028
a2        0.788862260417022
b1        0.487727056883274
b2        0.0635764451751002
b3        0.00879061437361211
d1        0.487727056883281
d2        0.0635764451751074
d3        0.00879061437361361
pha1        10.4497056655838
pha2        2.21479128985514
pha3        6.42946415729004
gama1        10.4497056655838
gama2        2.21479128985514
gama3        6.42946415729002

2:
a1        0.788862260417026
a2        0.788862260417023
b1        0.487727056883274
b2        0.0635764451751025
b3        0.00879061437361254
d1        0.487727056883279
d2        0.0635764451751048
d3        0.00879061437361302
pha1        10.4497056655838
pha2        2.21479128985513
pha3        6.42946415729002
gama1        10.4497056655838
gama2        2.21479128985512
gama3        6.42946415729001

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

举报

新手

12 麦片

财富积分


050


1

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-7-8 09:18:41 | 显示全部楼层
shihe 发表于 2020-7-8 09:05
方程中有周期性三角函数,不加范围约束的话多解:
1:
a1        -1.78015718113507E-18

您好,感谢您的回复,您是怎么求解的啊?我的程序哪里有问题吗?我求解的结果都显示空矩阵。比如a11的结果直接是[],里面没有结果,请大神指点。
回复此楼 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


1

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-7-8 16:20:45 | 显示全部楼层
shihe 发表于 2020-7-8 09:05
方程中有周期性三角函数,不加范围约束的话多解:
1:
a1        -1.78015718113507E-18

您好,您的计算结果我带进我的方程中精度非常高,就是我想要的结果,您是如何求解的啊?期待您的回复,先谢谢大神的指点
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

1248 麦片

财富积分


5001500


0

主题

2834

帖子

265

最佳答案
  • 关注者: 174
发表于 2020-7-8 21:23:42 | 显示全部楼层
自己去试试1stOpt
回复此楼 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


1

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-7-8 22:23:01 | 显示全部楼层
shihe 发表于 2020-7-8 21:23
自己去试试1stOpt

您的意思是不能用Vpasolve求解,用这个软件求解?机械专业的学生,没见过这个软件
回复此楼 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


1

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-7-8 22:41:22 | 显示全部楼层
shihe 发表于 2020-7-8 21:23
自己去试试1stOpt

我下个这个软件试试,回头再请教您,谢谢了
回复此楼 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


1

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-7-8 23:06:06 | 显示全部楼层
本帖最后由 dannylwf 于 2020-7-8 23:29 编辑
shihe 发表于 2020-7-8 21:23
自己去试试1stOpt

您好,这个设置怎么设置呢?我使用默认设置,只得出来了一组结果,还和您的不一样,请大神指导一下!
结果.jpg
设置.jpg
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

1248 麦片

财富积分


5001500


0

主题

2834

帖子

265

最佳答案
  • 关注者: 174
发表于 2020-7-9 12:16:09 | 显示全部楼层
本来就是多解,不一样很正常啊,只要精度满足要求即可:
目标函数        5.0557613259711E-33
参数名        参数值
a1        1.16055825412742E-30
a2        9.27802757852434E-21
b1        0.0894133797174177
b2        1.73643559260517E-18
b3        1.27743068946063E-5
d1        0.0894133797174176
d2        5.98380143924019E-19
d3        1.27743068946085E-5
pha1        3.28843260819987
pha2        4.39279436549473
pha3        3.659388740116
gama1        3.28843260819987
gama2        1.27066123022055
gama3        3.65938874011602
回复此楼 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


1

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-7-9 18:48:56 | 显示全部楼层
shihe 发表于 2020-7-9 12:16
本来就是多解,不一样很正常啊,只要精度满足要求即可:
目标函数        5.0557613259711E-33
参数名        参数值

嗯嗯,感谢您的指导,只要目标函数的精度达到就行了,我也求解得到了精度很高的值,非常感谢您推荐的方法。
回复此楼 已获打赏: 0 积分

举报

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

本版积分规则

关闭

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

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