24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1152  |  回复: 10

shikang999

新虫 (小有名气)

[求助] 一个不一样的线性方程组求解请教已有2人参与

最近因为个人业余喜好,在编写函数匹配的算法过程中,无意之间遇到需要求解这么一个问题:
1、已知一个m*n的系数矩阵A,以及一个大小为m的向量B,现在需要求解一个大小为n的向量x
2、A、B、x关系如下
一个不一样的线性方程组求解请教
3、上面这种情况看似常规的线性方程,但又不是,且和线性规划也有一定区别。现在是否有一种算法可以像求解线性方程组的最小二乘算法来求解这类问题?不知道是否有遇到过的虫友?
回复此楼
我还是那个我,过去如此,未来亦如此!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

peterflyer

木虫之王 (文学泰斗)

peterflyer


【答案】应助回帖

感谢参与,应助指数 +1
个人认为,这个问题也是分为有唯一的解、无穷多解和无解三种情况的。前两种情况和求解满秩的线性还是可以用最小二乘法求解的,后一种情况则需要另辟蹊径了。
2楼2017-05-30 19:51:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shikang999

新虫 (小有名气)

引用回帖:
2楼: Originally posted by peterflyer at 2017-05-30 19:51:05
个人认为,这个问题也是分为有唯一的解、无穷多解和无解三种情况的。前两种情况和求解满秩的线性还是可以用最小二乘法求解的,后一种情况则需要另辟蹊径了。

首先,很感谢您的回答!
1、因为这个方程是一个包含阈值的方程,比较麻烦,我自己考虑过迭代求解,但无法保证找到最优解。
2、如果真能如您所说“”前两种情况和求解满秩的线性还是可以用最小二乘法求解的“”,那这个问题基本就解决了。我想问下,这里的可以求解,能讲一下具体的算法吗?下面我给一个简单的例子,如果能针对这个例子简单说下求解过程,那就十分感谢了!
3、例子
已知:
A =
[ 4.00000000000000    6.00000000000000
  0.00000000000000    8.00000000000000
  7.00000000000000    5.00000000000000
  8.00000000000000    10.0000000000000 ]
B =
[ 0.00000000000000
  1.00000000000000
  0.00000000000000
  0.00000000000000 ]
现在求解能满足条件的x,下面提供一个可满足条件的解
x =
[-3.00000000000000
  2.00000000000000 ]
我还是那个我,过去如此,未来亦如此!
3楼2017-05-30 21:33:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

peterflyer

木虫之王 (文学泰斗)

peterflyer


引用回帖:
3楼: Originally posted by shikang999 at 2017-05-30 21:33:16
首先,很感谢您的回答!
1、因为这个方程是一个包含阈值的方程,比较麻烦,我自己考虑过迭代求解,但无法保证找到最优解。
2、如果真能如您所说“”前两种情况和求解满秩的线性还是可以用最小二乘法求解的“”, ...

对于楼主所说的这个例子,经计算得知A^T*A是满秩矩阵,有逆矩阵存在,故有:
A*X=B
A^T*A*X=A^T*B
(A^T*A)^(-1)*(A^T*A)*X=(A^T*A)^(-1)*(A^T*B)
即 X=(A^T*A)^(-1)*(A^T*B) 。
4楼2017-05-30 22:23:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shikang999

新虫 (小有名气)

引用回帖:
4楼: Originally posted by peterflyer at 2017-05-30 22:23:37
对于楼主所说的这个例子,经计算得知A^T*A是满秩矩阵,有逆矩阵存在,故有:
A*X=B
A^T*A*X=A^T*B
(A^T*A)^(-1)*(A^T*A)*X=(A^T*A)^(-1)*(A^T*B)
即 X=(A^T*A)^(-1)*(A^T*B) 。...

不能这样计算,我的方程是还有一个中间过程,F=A*x,B是通过F得来的,可以看1楼
我还是那个我,过去如此,未来亦如此!
5楼2017-05-30 22:27:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

syddesk

木虫 (正式写手)

【答案】应助回帖

直接把B的值转化为F的限制条件,然后这个就是一个凸问题,可以发现最优
6楼2017-05-31 00:22:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shikang999

新虫 (小有名气)

引用回帖:
6楼: Originally posted by syddesk at 2017-05-31 00:22:13
直接把B的值转化为F的限制条件,然后这个就是一个凸问题,可以发现最优

不好意思,最近一直在忙。回复晚了。言归正传,这里说的“直接把B的值转化为F的限制条件”,不是很理解这个转化过程,能举例吗?
我还是那个我,过去如此,未来亦如此!
7楼2017-06-01 21:43:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

syddesk

木虫 (正式写手)

【答案】应助回帖

引用回帖:
7楼: Originally posted by shikang999 at 2017-06-01 21:43:27
不好意思,最近一直在忙。回复晚了。言归正传,这里说的“直接把B的值转化为F的限制条件”,不是很理解这个转化过程,能举例吗?...

在你知道B的情况下,你可以知道F的值是大于零还是小于零,这个作为限制条件就好

发自小木虫IOS客户端
8楼2017-06-01 21:50:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shikang999

新虫 (小有名气)

引用回帖:
8楼: Originally posted by syddesk at 2017-06-01 21:50:57
在你知道B的情况下,你可以知道F的值是大于零还是小于零,这个作为限制条件就好
...

现在是知道这个限制条件,就是不知道如何在这个限制条件下有效求解。因为按你4楼的回答,求解似乎有问题。
我还是那个我,过去如此,未来亦如此!
9楼2017-06-01 21:55:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

syddesk

木虫 (正式写手)

【答案】应助回帖

引用回帖:
9楼: Originally posted by shikang999 at 2017-06-01 21:55:53
现在是知道这个限制条件,就是不知道如何在这个限制条件下有效求解。因为按你4楼的回答,求解似乎有问题。...

四楼不是我啊.....

发自小木虫IOS客户端
10楼2017-06-01 22:22:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 shikang999 的主题更新
信息提示
请填处理意见