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)}) 展开
 我来答
lhmhz
高粉答主

2018-02-03 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17014

向TA提问 私信TA
展开全部

由于方程有多个的解,使用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')

昱婷漫步
2018-02-03 · TA获得超过1171个赞
知道小有建树答主
回答量:713
采纳率:94%
帮助的人:470万
展开全部

是给出的s值有问题,运算中出现了被0除的错误。

修改s如下,运行未报错:

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式