作业帮 > 数学 > 作业

MATLAB的计算结果怎么这么复杂呀?

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/07/18 18:39:54
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之类的
是这样的.
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会将解以结构体的形式返回.