声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2186|回复: 10

[讨论]我用matlab解线形方程组,遇到了一个问题,急求大家解答!

[复制链接]
发表于 2005-12-4 16:48 | 显示全部楼层 |阅读模式

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

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

x
我用matlab解线形方程组,遇到了一个问题,急求大家解答!<BR><BR>我输入如下命令<BR><BR>&gt;&gt; A=[1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1; 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0; 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1; 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0;0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0; 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0]; % <BR>&gt;&gt; B=[30 30 30 30 30 30 30 30 30 30 30 30 72 72 72 72 72]'; % <BR>&gt;&gt; X=A\B % <BR><BR>输入后,得到这样的结果 <BR>Warning: Rank deficient, rank = 16, tol = 1.0049e-014. <BR><BR>我目前还知道每个解都是大于零的整数,就是解的里面的每个数都是大于零的正整数。可我不知道如何把这个加入约束条件里,命令如何写呢,请教大家!! <BR>
回复
分享到:

使用道具 举报

发表于 2005-12-5 11:32 | 显示全部楼层

回复:(lzlbox)[讨论]我用matlab解线形方程组,遇到...

不太明白你的意思
发表于 2005-12-5 14:31 | 显示全部楼层
B向量和A向量的微数不协调!A的列数和B的行数一般应该相等!
[此贴子已经被作者于2005-12-5 15:03:21编辑过]

发表于 2005-12-5 17:12 | 显示全部楼层
A的维数为是[17,32],B为[17,1],呵呵 是吧?<BR>也就是说未知数的个数为32,方程数为17个,这样的为欠定方程组。<BR>这样求出的解是没什么实际意义的。<BR>至于约束条件如何加,我也不懂, 要请教大虾们了!
发表于 2005-12-6 09:04 | 显示全部楼层

回复:(lzlbox)[讨论]我用matlab解线形方程组,遇到...

用rref求出通解形式,然后自己判断怎么取值
发表于 2005-12-6 10:12 | 显示全部楼层
请问:rref函数只能求出A的简化式,如何求出通解?还有约束条件能加否?如能,改如何加? <BR>谢谢!
 楼主| 发表于 2005-12-16 21:45 | 显示全部楼层
有人告诉我一种方法,就是在最后添加一行,但是下面的添加方法对吗?就是限制x&gt;0<BR><BR>&gt;&gt; A=[1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1; 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0; 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1; 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0;0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0; 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0]; % <BR>&gt;&gt; B=[30 30 30 30 30 30 30 30 30 30 30 30 72 72 72 72 72]'; % <BR>&gt;&gt; X=A\B %<BR>&gt;&gt; X=find(X&gt;0) %<BR>不好意思,我是菜鸟,是这么写吗?好像这样添加在最后不对啊! <BR>
发表于 2005-12-17 09:19 | 显示全部楼层
楼主的方程似乎该用整数规划的理论来分析,<BR>而非简单的用X=A\B ,且也没什理论依据。<BR>即便可以得出一个解,应该是基于广义逆的最小二乘等等之类的结果。<BR>
发表于 2005-12-17 13:46 | 显示全部楼层

回复:(lzlbox)[讨论]我用matlab解线形方程组,遇到...

这是一个欠定方程,求解思路有两个<br><br>1 求出方程的通解形式,然后根据条件判定特解<br><br>2 用整数规划的方法求
[此贴子已经被作者于2005-12-17 13:47:19编辑过]

 楼主| 发表于 2005-12-17 20:37 | 显示全部楼层
<P>其实问题很简单啦,一点不复杂。<BR>我再向各位解释一下,请大家帮我解决:</P>
<P>&gt;&gt; A=[1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1; 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0; 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1; 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0;0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0; 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0]; % <BR>&gt;&gt; B=[30 30 30 30 30 30 30 30 30 30 30 30 72 72 72 72 72]'; % </P>
<P>大家可以看到这是一个含有30多个未知数的线形方程组,一共有17个等式。目前要求解出的30多个未知数都要是正的整数解。</P>
<P>我的目的只要解出最后结果,不知哪位老大帮我解出来,或者告诉我如何在matlab里一行行操作也成。我是为了解这个方程用matlab的,实在不熟悉啊</P>
发表于 2005-12-30 09:23 | 显示全部楼层
<P>对于“整数规划”不了解啊,各位能不能推荐几本书呢, 我也是遇到这样的欠定方程求解问题,但不知如何入手,呵呵 ,希望能得到大家的帮助,谢谢! </P>
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 10:29 , Processed in 0.069637 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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