声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2036|回复: 8

[编程技巧] 列方程求解未知数!

[复制链接]
发表于 2010-3-19 16:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
已知[D1 0 P1;0 D2 P2]*[S1;S2;X]=0其中D1=[2 3 1;3 4 1]' D2=[11 12 1;13 15 1]' P1=eye(3,4) P2=[11 12 12 12;13 14 15 16;15 15 15 16] S1=[s11 s12],S2=[s21 s22] X=[x1 y1 z1 1;x2 y2 z2 1]'  x1.y1.z1,x2,y2,z2,s11,s12,s21,s22为要求解的未知数 怎么列方程求解啊?急!!!!!!!!!!!!!!!!ChaChing大哥来了帮兄弟解决下。呵呵!做毕业设计要用,半路卡了!

[ 本帖最后由 ChaChing 于 2010-3-20 16:00 编辑 ]
回复
分享到:

使用道具 举报

发表于 2010-3-19 22:19 | 显示全部楼层
1.LZ的表述有点让人难懂! 加强下:loveliness:
2.所给两矩阵相乘, dimension不配合!? (前矩阵的column需等于后矩阵的row!)
3.两矩阵相乘等于零? 可能唯一零解或无限多组解!

最后, 建议绝勿指名回应!
个人水平有限, 不懂处, 其他真正大牛们谁理你!:loveliness:
发表于 2010-3-20 10:56 | 显示全部楼层
完全同意楼上意见
 楼主| 发表于 2010-3-20 13:08 | 显示全部楼层

关于列方程求解参数的更新!

本人不才,昨天发的贴有点问题,呵呵!今天补充下,请高手们指点下:

已知[D1 M1 P1;M2 D2 P2]*[S1;S2;X]=0
   其中D1=[11 12 1]'; D2=[12 15 1]' ;
   P1=eye(3,4); P2=[11 12 12 12;13 14 15 16;15 15 15 16];
   M1=[0 0 0]';  M2=[0 0 0]';
   X=[x1 x2 x3 1]';    x1,x2 ,x3,S1,S2为要求解的未知数
   怎么列方程求解啊? 只列出方程就可以了!

[ 本帖最后由 ChaChing 于 2010-3-21 22:25 编辑 ]
发表于 2010-3-20 15:55 | 显示全部楼层

回复 地板 初学者007 的帖子

1F真的有点乱! LZ的问题是等式多于未知数! 一般会用least square处理
  1. D1=[11 12 1]'; D2=[12 15 1]'; M1=[0 0 0]'; M2=[0 0 0]';
  2. P1=eye(3,4); P2=[11 12 12 12;13 14 15 16;15 15 15 16];
  3. aa=[D1 M1 P1;M2 D2 P2];
  4. A=aa(:,1:end-1); bb=-aa(:,end); xx=A\bb;
  5. x1=xx(1); x2=xx(2); x3=xx(3); S1=xx(4); S2=xx(5);
复制代码

[ 本帖最后由 ChaChing 于 2010-3-20 15:57 编辑 ]
 楼主| 发表于 2010-3-21 19:42 | 显示全部楼层
A=aa(:,1:end-1); bb=-aa(:,end); xx=A\bb;
这三行不理解:A取aa矩阵的前5列;
                         bb为aa矩阵的最后一列且取负的;
                         xx=A\bb可以理解为inv(A)*bb      为A*xx=bb的解 ;
                         咱要求解的为aa*[S1 S2 x1 y1 z1 1]=0的解。
                         为什么要写为A=aa(:,1:end-1); bb=-aa(:,end); xx=A\bb;结果是出来了,看不懂为什么这么写,能从矩阵相乘的角度解释下这3行代码不?

[ 本帖最后由 初学者007 于 2010-3-21 21:32 编辑 ]
发表于 2010-3-21 22:22 | 显示全部楼层

回复 6楼 初学者007 的帖子

要求的解不是[S1 S2 x1 y1 z1 1]!
第6项不是已知了(等于1)? 等式移项当然加负号!

[ 本帖最后由 ChaChing 于 2010-3-21 22:24 编辑 ]
 楼主| 发表于 2010-3-22 08:59 | 显示全部楼层

回复 7楼 ChaChing 的帖子

非常感谢,看懂了这三行代码,但是还想问下:5个未知数的顺序为S1 S2 x1 y1 z1  即为[S1 S2 x1 y1 z1]
但代码中
x1=xx(1); x2=xx(2); x3=xx(3); S1=xx(4); S2=xx(5);
为什么不是
S1=xx(1); S2=xx(2); x1=xx(3); x2=xx(4); x3=xx(5);

[ 本帖最后由 ChaChing 于 2010-3-22 13:41 编辑 ]

评分

1

查看全部评分

发表于 2010-3-22 13:40 | 显示全部楼层

回复 8楼 初学者007 的帖子

抱歉! 写快了
LZ的才是
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-31 03:47 , Processed in 0.056419 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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