MATLAB的计算结果怎么这么复杂呀?>> S=solve('2*x*y=1,x+2=y*y+z*z,x+y-z=4','x,y,z'); %前面的参数是方程组列表,后面是未知变量列表S.x %输出未知数x的值S.y %输出未知数y的值S.z %输出未知数z的值ans =6.912100
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/05 12:32:28
![MATLAB的计算结果怎么这么复杂呀?>> S=solve('2*x*y=1,x+2=y*y+z*z,x+y-z=4','x,y,z'); %前面的参数是方程组列表,后面是未知变量列表S.x %输出未知数x的值S.y %输出未知数y的值S.z %输出未知数z的值ans =6.912100](/uploads/image/z/7821984-48-4.jpg?t=MATLAB%E7%9A%84%E8%AE%A1%E7%AE%97%E7%BB%93%E6%9E%9C%E6%80%8E%E4%B9%88%E8%BF%99%E4%B9%88%E5%A4%8D%E6%9D%82%E5%91%80%3F%3E%3E+S%3Dsolve%28%272%2Ax%2Ay%3D1%2Cx%2B2%3Dy%2Ay%2Bz%2Az%2Cx%2By-z%3D4%27%2C%27x%2Cy%2Cz%27%29%3B+%25%E5%89%8D%E9%9D%A2%E7%9A%84%E5%8F%82%E6%95%B0%E6%98%AF%E6%96%B9%E7%A8%8B%E7%BB%84%E5%88%97%E8%A1%A8%2C%E5%90%8E%E9%9D%A2%E6%98%AF%E6%9C%AA%E7%9F%A5%E5%8F%98%E9%87%8F%E5%88%97%E8%A1%A8S.x+%25%E8%BE%93%E5%87%BA%E6%9C%AA%E7%9F%A5%E6%95%B0x%E7%9A%84%E5%80%BCS.y+%25%E8%BE%93%E5%87%BA%E6%9C%AA%E7%9F%A5%E6%95%B0y%E7%9A%84%E5%80%BCS.z+%25%E8%BE%93%E5%87%BA%E6%9C%AA%E7%9F%A5%E6%95%B0z%E7%9A%84%E5%80%BCans+%3D6.912100)
MATLAB的计算结果怎么这么复杂呀?>> S=solve('2*x*y=1,x+2=y*y+z*z,x+y-z=4','x,y,z'); %前面的参数是方程组列表,后面是未知变量列表S.x %输出未知数x的值S.y %输出未知数y的值S.z %输出未知数z的值ans =6.912100
MATLAB的计算结果怎么这么复杂呀?
>> S=solve('2*x*y=1,x+2=y*y+z*z,x+y-z=4','x,y,z'); %前面的参数是方程组列表,后面是未知变量列表
S.x %输出未知数x的值
S.y %输出未知数y的值
S.z %输出未知数z的值
ans =
6.9121007466868839994332124068306
1.7935708873534503034812688410043
0.14716418297983284854275937608259 - 0.13665257739147456814271491974369*i
0.13665257739147456814271491974369*i + 0.14716418297983284854275937608259
ans =
0.072336908607656010994857462812632
0.27877348117407719078152757225564
1.694128828621399950833152826674*i + 1.8244448051091333991118074824659
1.8244448051091333991118074824659 - 1.694128828621399950833152826674*i
ans =
2.9844376552945400104280698696432
-1.9276556314724725057372035867401
1.5574762512299253826904379069303*i - 2.0283910119110337523454331414516
- 1.5574762512299253826904379069303*i - 2.0283910119110337523454331414516
为什么不能直接得到X Y Z的值呢?怎么会是那么一长串的结果?
能不能直接的得到XYZ的值呢?比如X=0.123之类的
MATLAB的计算结果怎么这么复杂呀?>> S=solve('2*x*y=1,x+2=y*y+z*z,x+y-z=4','x,y,z'); %前面的参数是方程组列表,后面是未知变量列表S.x %输出未知数x的值S.y %输出未知数y的值S.z %输出未知数z的值ans =6.912100
是这样的.
S=solve('2*x*y=1,x+2=y*y+z*z,x+y-z=4','x,y,z')
你这个是三元多次方程组,
你求出来的解,代表它有四个解.
每一个ans的对应行是一个解.
即
x= 6.9121007466868839994332124068306
y= 0.072336908607656010994857462812632
z= 2.9844376552945400104280698696432
是一个解.它这么长只是因为数位比较长.你如果想以精简的方式输出,可以控制输出的位数.用vpa(表达式,位数)来控制.
你的solve返回值只有一个S
MATLAB会将解以结构体的形式返回.
因为solve解决时符号计算的方程,把每个数字、字母都当成符号,结果也是一串符号,所以解出的解是精确解,你可以用double()将符号转化为数值。
你可以把输出结果的格式调整一下,例如:用vpa(S.x,5)试试
ans =
.1508-.135*i
.1508+.135*i
1.7928
6.9142
第一组ans代表x的四种可能解x1,x2,x3,x4,第二组为y的,第三组为z。
即该方程有四组可能的解.