matlab 解出方程组为什么不是数字?而是一个式子.

matlab 解出方程组为什么不是数字?而是一个式子.
大概的程序是这样的
三个方程式求解三个未知数,得出的答案并不是具体的数字.而是一个式子?我想要最后得到一个数字?请问怎么解决?
>> syms x y1 y2
>> eq1=sym('28/5*x/(25-10*y1+y1^2+x^2)^(1/2)+3/(y2^2-2*y2*y1+y1^2+225-30*x+x^2)^(1/2)*(-30+2*x)')
eq1 =
28/5*x/(25-10*y1+y1^2+x^2)^(1/2)+3/(y2^2-2*y2*y1+y1^2+225-30*x+x^2)^(1/2)*(-30+2*x)
>> eq2=sym('14/5/(25-10*y1+y1^2+x^2)^(1/2)*(-10+2*y1)+36/5+3/(y2^2-2*y2*y1+y1^2+225-30*x+x^2)^(1/2)*(-2*y2+2*y1)')
eq2 =
14/5/(25-10*y1+y1^2+x^2)^(1/2)*(-10+2*y1)+36/5+3/(y2^2-2*y2*y1+y1^2+225-30*x+x^2)^(1/2)*(-2*y2+2*y1)
>> eq3=sym('3/(y2^2-2*y2*y1+y1^2+225-30*x+x^2)^(1/2)*(2*y2-2*y1)+2767/200/(89-16*y2+y2^2)^(1/2)*(-16+2*y2)')
eq3 =
3/(y2^2-2*y2*y1+y1^2+225-30*x+x^2)^(1/2)*(2*y2-2*y1)+2767/200/(89-16*y2+y2^2)^(1/2)*(-16+2*y2)
>> [x,y1,y2]=solve(eq1,eq2,eq3,x,y1,y2)
得到的答案:(并不是一个数)
x =
1/16541417227313339064*(-76580635311635829+267944650*4652715409773101^(1/2)+809413808678535*166991^(1/2))*166991^(1/2)
y1 =
1375/216-2603375/544806574906572*4652715409773101^(1/2)-520675/36070056*166991^(1/2)
y2 =
8-17650/1681501774403*4652715409773101^(1/2)
祈祷-爱情证书 1年前 已收到3个回答 举报

zuiaibintang 幼苗

共回答了21个问题采纳率:95.2% 举报

在Matlab的符号计算工具箱中,提供了三种不同类型的计算精度,以1/12+1/4为例:
1.数值类型:浮点算术计算.结果为0.3333.
2.有理数类型:精确的符号计算.结果为1/3.
3.VPA类型:任意精度算术计算.例如vpa(1/12+1/4,5)=0.33333,vpa(1/12+1/4,8)=0.33333333,第二个参数点击结果的有效位数.
您的上述结果为第二种类型,即为有理数类型,如果想转化为第一种类型,即您所指的“数”,那么接下来,输入double(x);double(y1);double(y2);即可.
希望我的回答解决了您的提问,

1年前

9

诺言2000 幼苗

共回答了71个问题 举报

这跟你的matlab设置有关,一般可以在计算前加一句命令format 来控制数据显示格式

1年前

2

ATAO80118 幼苗

共回答了114个问题 举报

那是精确解
double(x)

1年前

0
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.067 s. - webmaster@yulucn.com