matlab求方程数值解,最后得出结果总是有问题,请问有人帮我看一下吗,谢谢了
symsx1x2x3y1y2y3z1z2z3s=[2,4,2^0.5;4,2,2^0.5;2,4,2^0.5];[a,b,c,d]=solve('a*x1+b*y1+c*...
syms x1 x2 x3 y1 y2 y3 z1 z2 z3s=[2,4,2^0.5;4,2,2^0.5;2,4,2^0.5];[a,b,c,d]=solve('a*x1+b*y1+c*z1=d','a*x2+b*y2+c*z2=d','a*x3+b*y3+c*z3=d','a^2+b^2+c^2=1','a','b','c','d');subs(a,{x1,x2,x3,y1,y2,y3,z1,z2,z3},{s(1,1),s(2,1),s(3,1),s(1,2),s(2,2),s(3,2),s(1,3),s(2,3),s(3,3)})subs(b,{x1,x2,x3,y1,y2,y3,z1,z2,z3},{s(1,1),s(2,1),s(3,1),s(1,2),s(2,2),s(3,2),s(1,3),s(2,3),s(3,3)})subs(c,{x1,x2,x3,y1,y2,y3,z1,z2,z3},{s(1,1),s(2,1),s(3,1),s(1,2),s(2,2),s(3,2),s(1,3),s(2,3),s(3,3)})
展开
2个回答
展开全部
由于方程有多个的解,使用subs()无法用s数组值替代 x1、 x2、 x3、 y1、 y2、 y3、 z1、 z2、 z3的值。所以最有效的方法是,直接将s数组值赋值给 x1、 x2、 x3、 y1、 y2、 y3、 z1、 z2、 z3。按这个要求更改,可以得到a、b、c、d的解。
syms a b c d
s=[2,4,2^0.5;4,2,2^0.5;2,4,2^0.5];
x1=s(1,1); x2=s(2,1); x3=s(3,1); y1=s(1,2); y2=s(2,2); y3=s(3,2); z=s(1,3); z2=s(2,3); z3=s(3,3);
[a,b,c,d]=solve(a*x1+b*y1+c*z1==d,a*x2+b*y2+c*z2==d,a*x3+b*y3+c*z3==d,a^2+b^2+c^2==1,'a','b','c','d')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询