找回密码
 注册
Simdroid-非首页
查看: 158|回复: 6

解方程组出现的问题

[复制链接]
发表于 2009-4-13 22:12:03 | 显示全部楼层 |阅读模式 来自 安徽合肥
本帖最后由 ljelly 于 2009-4-14 09:07 编辑

方程如下:

A=[39.22;-582.211;569.498];   
B=[-7.34;-740.697;-100.167];  
M=[132.548;-700.403;21.526];  
C=[167;-360;30];              
L=A-B;                        
U=L/norm(L);
N=A+U'*(M-A)/norm(U)*U;

for  Dt=0:5:70

C1=[C(1);C(2)+Dt;C(3)];
MN=norm(M-N);
MC=norm(M-C);
MB=norm(M-B);

syms x y z
s1=(x-N(1))^2+(y-N(2))^2+(z-N(3))^2-MN^2;
s2=(x-B(1))^2+(y-B(2))^2+(z-B(3))^2-MB^2;
s3=(x-C1(1))^2+(y-C1(2))^2+(z-C1(3))^2-MC^2;

[x,y,z]=solve(s1,s2,s3);
S=[vpa(x,6);vpa(y,6);vpa(z,6)];
p=[S(1);S(3);S(5)];
M1A=p-N;
MA=M-N;
Alpha=subspace(MA,M1A)*180/pi    %(就是这步不能运行)
hold on
end

     请教各位大虾, 程序运行到最后一步就出问题了,上面的都运行正常。请问这是回事啊?怎么改呢?
发表于 2009-4-14 10:00:50 | 显示全部楼层 来自 北京
Simdroid开发平台
从代码来看,没有问题
只是在调用subspace求角度的过程中出现问题
其中又涉及奇异值分解SVD和ORTH正交函数

由此看,应该是求解的过程中产生的数(中间结果)
不满足函数参数的调用,而导致出错

你还是查一下你的方程,这样求角度会不会有问题
会不会无解,出现不定的情况
回复 不支持

使用道具 举报

 楼主| 发表于 2009-4-19 16:25:08 | 显示全部楼层 来自 安徽合肥
谢谢 大虾了。

    我再次检查了下,主要还是出在最后P 点坐标 格式 和 其他坐标的表示方式方法不一样,所以造成计算不出 subspace 。
      哪位 大虾 再指点下, 把P点坐标 变换成 坐标类型啊?
回复 不支持

使用道具 举报

发表于 2009-4-19 17:40:40 | 显示全部楼层 来自 重庆
你的代码,我没有细看。问题不知道在哪里。

不过,有个小tips。

你用了 Alpha 变量。
最好避免用 Alpha。
因为 alpha 是一个matlab里面 用来设定透明度 的函数。
如果,在代码里面,等号右边出现alpha ,那么,是调用函数,还是取变量?有时候,会出错的。
虽然matlab 大小写有区分,但是,在找不到对于语句的时候,会出现警告,然后就用大小写不敏感的方法。
比如,直接用 Alpha,就出现大小写警告,然后,就调用了alpha()函数。

而在matlab 里面,大小写敏感的警告,是可以关闭警告的。

alpha
Set transparency properties for objects in current axes

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-4-19 20:31:36 | 显示全部楼层 来自 安徽合肥
谢谢  楼上的兄弟, 不过 ,目前的问题 显然在这。
      主要的 p=[S(1);S(3);S(5)]  ,被这样付值后, p点形成的向量和A,B等不一致造成的。
我想问的是怎么让p点得到 坐标一样的格式 ?
回复 不支持

使用道具 举报

发表于 2009-4-20 00:22:10 | 显示全部楼层 来自 浙江杭州
你的这个问题,bainhome版主已经在另一贴(http://forum.simwe.com/thread-875431-1-1.html)里回答你了,你照着改就行了

还是多看看书吧,如果“遇到问题就直接在书里面找方法,没有仔细看书”也可以的话,没人去看书了。

下面是你的程序的运行结果:

Alpha =
    1.277181820723636e-014
Alpha =
   2.28789555795907
Alpha =
   4.59815912749465
Alpha =
   6.93621134726108
Alpha =
   9.30750987959000
Alpha =
  11.71937463059621
Alpha =
  14.17908978260567
Alpha =
  16.69687884058198
Alpha =
  19.28431826071160
Alpha =
  21.95592039560778
Alpha =
  24.72990645659287
Alpha =
  27.63180976428689
Alpha =
  30.69591741949931
Alpha =
  33.97027229586597
Alpha =
  37.53229502953641


谢谢  楼上的兄弟, 不过 ,目前的问题 显然在这。
      主要的 p=[S(1);S(3);S(5)]  ,被这样付值后, p点形成的向量和A,B等不一致造成的。
我想问的是怎么让p点得到 坐标一样的格式 ?
倒转乾坤 发表于 2009-4-19 20:31
回复 不支持

使用道具 举报

 楼主| 发表于 2009-4-20 21:47:44 | 显示全部楼层 来自 安徽合肥
谢谢,结果没错。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 09:21 , Processed in 0.054330 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表