24小时热门版块排行榜    

查看: 511  |  回复: 1

yangmou

木虫 (小有名气)

[求助] 薅不住了,matlab算出来的结果怎么这么悲剧啊

我使用matlab求一个方程组的解,

给出来的结果明显不对,求解如下:
>> clear
syms a b c A B C lx ly lz xy yz xz;
a=6.5209;
b=10.761;
c=7.3062;
A=90;
B=102.058;
C=90;
[lx,ly,lz,xy,yz,xz]=solve('lx=a','ly^2+xy^2=b^2','lz^2+xz^2+yz^2=c^2','xy*xz+ly*yz =cosd(A)*b*c', 'xz= cosd(B)*c', 'xy=cosd(C)*b', 'lx', 'ly', 'lz', 'xy', 'yz', 'xz')
eval(lx)
eval(ly)
eval(lz)
eval(xy)
eval(yz)
eval(xz)

lx =

a
a
a
a



ly =

  (1-cosd(C)^2)^(1/2)*b
  (1-cosd(C)^2)^(1/2)*b
-(1-cosd(C)^2)^(1/2)*b
-(1-cosd(C)^2)^(1/2)*b



lz =

  1/(cosd(C)^2-1)*((cosd(C)^2-1)*(-2*cosd(C)*cosd(B)*cosd(A)+cosd(A)^2-1+cosd(C)^2+cosd(B)^2))^(1/2)*c
-1/(cosd(C)^2-1)*((cosd(C)^2-1)*(-2*cosd(C)*cosd(B)*cosd(A)+cosd(A)^2-1+cosd(C)^2+cosd(B)^2))^(1/2)*c
  1/(cosd(C)^2-1)*((cosd(C)^2-1)*(-2*cosd(C)*cosd(B)*cosd(A)+cosd(A)^2-1+cosd(C)^2+cosd(B)^2))^(1/2)*c
-1/(cosd(C)^2-1)*((cosd(C)^2-1)*(-2*cosd(C)*cosd(B)*cosd(A)+cosd(A)^2-1+cosd(C)^2+cosd(B)^2))^(1/2)*c



xy =

cosd(C)*b
cosd(C)*b
cosd(C)*b
cosd(C)*b



yz =

cosd(B)*c
cosd(B)*c
cosd(B)*c
cosd(B)*c



xz =

  c*(-cosd(C)*cosd(B)+cosd(A))/(1-cosd(C)^2)^(1/2)
  c*(-cosd(C)*cosd(B)+cosd(A))/(1-cosd(C)^2)^(1/2)
-c*(-cosd(C)*cosd(B)+cosd(A))/(1-cosd(C)^2)^(1/2)
-c*(-cosd(C)*cosd(B)+cosd(A))/(1-cosd(C)^2)^(1/2)



ans =

    6.5209
    6.5209
    6.5209
    6.5209


ans =

   10.7610
   10.7610
  -10.7610
  -10.7610


ans =

   -7.1450
    7.1450
   -7.1450
    7.1450


ans =

     0
     0
     0
     0


ans =

   -1.5263
   -1.5263
   -1.5263
   -1.5263


ans =

     0
     0
     0
     0
matlab给出的解带入方程式明显不对。
这个方程式手算也很容易,和我手算得出的结果比较,matlab算出的xz、yz似乎是颠倒的。到底什么原因啊,折磨了我一下午一晚上也没找出原因,难道是我人品不好啊,,求高人解答。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

【答案】应助回帖

yangmou(金币+2): 谢谢解答,好人啊 2011-10-01 13:59:32
[lx,ly,lz,xy,yz,xz]=solve('lx=a','ly^2+xy^2=b^2','lz^2+xz^2+yz^2=c^2','xy*xz+ly*yz =cosd(A)*b*c', 'xz= cosd(B)*c', 'xy=cosd(C)*b', 'lx', 'ly', 'lz', 'xy', 'yz', 'xz')
你的这句有误;
注意未知数的顺序,应该是
'lx', 'ly', 'lz', 'xy', 'xz', 'yz'
solve解出来的是按照字母顺序排列出来的,而你自己列出来的顺序 'yz', 'xz'颠倒了,所以显示也就颠倒了
2楼2011-10-01 09:53:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yangmou 的主题更新
信息提示
请填处理意见