作业帮 > 综合 > 作业

matlab solve函数求解

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/04 02:53:46
matlab solve函数求解
a='x=0.5*9.8*0.6^2/pi*tanh(2*pi*0.2/x)';b='y=0.142*x*tanh(2*pi*0.2/x)';c='z=0.25*y*(sinh(2*2*pi*0.2/x)+2*2*pi*0.2/x)/(sinh(2*pi*0.2/x))^2';d='l=pi*z/0.6'
[u v w p]=solve(a,b,c,d)
最后输出结果,为什么a,b,c,d的结果是颠倒的
那是因为你没有指定输出宗量的顺序!你的u,v,w,p并没有指定表示那个变量的值.
再问: 能不能说下怎么指定?谢谢
再答: [u v w p]=solve(a,b ,c,d, 'x', 'y', 'z' ,'l').前面和后面的一一对应。后面的,x,y,z,l什么的可以交换,但是前面的显示和后面的一一对应,还有最好前面定义符号变量。你如果求解的是x,y,z,l.最好前面定义变量,不然没定义有时候电脑自动选择变量就会出错。 还有你最后要表达的是a b c d的值还是求解x y z l 的值,你的问题也不清楚。
再问: 我把 [u v w p]=solve(a,b,c,d)改成[u v w p]=solve(a,b ,c,d, 'x', 'y', 'z' ,'l').以后,最后的结果还是颠倒的。 我最后只需要求解x,y,z,l的值,能不能说下如何在前面定义变量?谢谢,刚接触matlab不太懂
再答: syms x y z l eq1=0.5*9.8*0.6^2/pi*tanh(2*pi*0.2/x)-x; eq2=0.142*x*tanh(2*pi*0.2/x)-y; eq3=0.25*y*(sinh(2*2*pi*0.2/x)+2*2*pi*0.2/x)/(sinh(2*pi*0.2/x))^2-z; eq4=pi*z/0.6-l; [u v w p]=solve(eq1,eq2,eq3,eq4,'x','y','z','l') u =0.2238215770583060396012281111207 v =0.54998286871525177457096550973554 w =0.076495865055052688109102075375373 p =0.042746772431343557262459992747582 以上求解出来就是这样,matlab对输出宗量次序有限制,最好的解法就是按她最清晰的规定,采用构架来求解;这么解 syms x y z l eq1=0.5*9.8*0.6^2/pi*tanh(2*pi*0.2/x)-x; eq2=0.142*x*tanh(2*pi*0.2/x)-y; eq3=0.25*y*(sinh(2*2*pi*0.2/x)+2*2*pi*0.2/x)/(sinh(2*pi*0.2/x))^2-z; eq4=pi*z/0.6-l; S=solve(eq1,eq2,eq3,eq4,'x','y','z','l') S = l: [1x1 sym] x: [1x1 sym] y: [1x1 sym] z: [1x1 sym] >> S.y ans =0.076495865055052688109102075375373 >> S.z ans =0.042746772431343557262459992747582 >> S.x ans =0.54998286871525177457096550973554 >> S.l ans =0.2238215770583060396012281111207