查看: 95|回复: 9|关注: 0

[已解决] 如何用MATLAB解方程组的数值解啊

[复制链接]

新手

7 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
syms x1 x2 y1 y2 z1 z2 a b
eqns = [y1 + 2*z1 + b - a - y2 - 2*x2 == 0,  
x1 + y1 + z - 0.02 == 0, x2 + y2 + z2 == 0.1, a*b - 10^-14 == 0, y1*a - x1*10^-1.2 == 0, z1*a - y1*10^-4.2 == 0, y2*a - x2*10^-6.4 == 0, z2*a - y2*10^-10.2 == 0];
[x1 x2 y1 y2 z1 z2 b a]=solve(eqns)  
想用solve解这个的数值解,主要是获得a的正实数解,三到四位有效数字,但是运行这个,得到一堆看不懂的东西。。。怎么弄。。


论坛优秀回答者

3

主题

948

帖子

180

最佳答案
  • 关注者: 43
发表于 5 天前 | 显示全部楼层
将solve换为vpasolve试试

新手

7 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层
错误使用 sym/vpasolve (line 149)
Inconsistent output with 8 variables for input argument with 9 variables.

新手

7 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层
20141303 发表于 2020-3-27 14:22
将solve换为vpasolve试试

错误使用 sym/vpasolve (line 149)
Inconsistent output with 8 variables for input argument with 9 variables.

论坛优秀回答者

3

主题

948

帖子

180

最佳答案
  • 关注者: 43
发表于 5 天前 | 显示全部楼层
你代码里的z是z1吧

新手

7 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层
20141303 发表于 2020-3-27 14:25
你代码里的z是z1吧

syms x1 x2 y1 y2 z1 z2 a b
eqns = [y1 + 2*z1 + b - a - y2 - 2*x2 == 0, x1 + y1 + z - 0.02 == 0, x2 + y2 + z2 == 0.1, a*b - 10^-14 == 0, y1*a - x1*10^-1.2 == 0, z1*a - y1*10^-4.2 == 0, y2*a - x2*10^-6.4 == 0, z2*a - y2*10^-10.2 == 0];
[x1 x2 y1 y2 z1 z2 b a]=solve(eqns)
啊,又由z1又有z2啊,8个未知数,8个方程,主要是求a的数值

论坛优秀回答者

3

主题

948

帖子

180

最佳答案
  • 关注者: 43
发表于 5 天前 | 显示全部楼层
试试
  1. syms x1 x2 y1 y2 z1 z2 a b
  2. eqns = [y1 + 2*z1 + b - a - y2 - 2*x2 == 0,...
  3. x1 + y1 + z1 - 0.02 == 0, x2 + y2 + z2 == 0.1, a*b - 10^-14 == 0, y1*a - x1*10^-1.2 == 0, z1*a - y1*10^-4.2 == 0, y2*a - x2*10^-6.4 == 0, z2*a - y2*10^-10.2 == 0];
  4. [x1 x2 y1 y2 z1 z2 b a]=vpasolve(eqns)
复制代码

新手

7 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层

错误使用 sym/vpasolve (line 149)
Inconsistent output with 8 variables for input argument with 9 variables.
还是不行

新手

7 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层
  1. syms x1 x2 y1 y2 z1 z2 a b
  2. eqns = [y1 + 2*z1 + b - a - y2 - 2*x2 == 0, x1 + y1 + z - 0.02 == 0, x2 + y2 + z2 == 0.1, a*b - 10^-14 == 0, y1*a - x1*10^-1.2 == 0, z1*a - y1*10^-4.2 == 0, y2*a - x2*10^-6.4 == 0, z2*a - y2*10^-10.2 == 0];
  3. [x1 x2 y1 y2 z1 z2 b a]=vpasolve(eqns)
复制代码

论坛优秀回答者

3

主题

948

帖子

180

最佳答案
  • 关注者: 43
发表于 5 天前 | 显示全部楼层 |此回复为最佳答案
试试
  1. syms x1 x2 y1 y2 z1 z2 a b
  2. eqns = [y1 + 2*z1 + b - a - y2 - 2*x2 == 0,...
  3. x1 + y1 + z1 - 0.02 == 0, x2 + y2 + z2 == 0.1, a*b - 10^-14 == 0, y1*a - x1*10^-1.2 == 0, z1*a - y1*10^-4.2 == 0, y2*a - x2*10^-6.4 == 0, z2*a - y2*10^-10.2 == 0];
  4. [x1s,x2s,y1s,y2s,z1s,z2s,bs,as]=solve(eqns,[x1 x2 y1 y2 z1 z2 b a]);
  5. x1s=vpa(x1s)
复制代码
QQ图片20200327151026.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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