求教:矩阵运算,先谢谢了

q
qgmzztmdn
楼主 (未名空间)

Ya=b
Y是一个n阶方阵
a是nx1列向量
b也是nx1列向量

使用matlab,如何求出那个n阶方阵Y?

这个问题有通解的办法吗?如果没有通解的办法,麻烦您给出一个特解办法也行,先谢谢啦。
v
verdelite

有这种问题?显然有无穷多Y满足条件。最简单的是个对角阵。直接y11*a1=b1, y22*a2=b2,...,ynn*an=bn,这总会解吧。

对了,要使用matlab,那也不难,
b1/a1
b2/a2
...
bn/an
即可
q
qgmzztmdn

谢谢!

也就是说,必须要先对这个方阵先做一个假设,否则没法解,或者说解空间无穷大,对吧?

【 在 verdelite (石头) 的大作中提到: 】
: 有这种问题?显然有无穷多Y满足条件。最简单的是个对角阵。直接y11*a1=b1, y22*a2
: =b2,...,ynn*an=bn,这总会解吧。
: 对了,要使用matlab,那也不难,
: b1/a1
: b2/a2
: ...
: bn/an
: 即可

v
verdelite


【 在 qgmzztmdn (qgmzztmdn) 的大作中提到: 】
: 谢谢!
: 也就是说,必须要先对这个方阵先做一个假设,否则没法解,或者说解空间无穷大,对
: 吧?
: a2

也就是说,数学,物理,统计等里面不会出现这种问题;你肯定是看错了。再回去研究一下你的原始问题,看是不是你翻译的时候翻译错了。

q
qgmzztmdn

嗯,好好,我马上再把原始数据从头过一边,谢谢你啊。

【 在 verdelite (石头) 的大作中提到: 】
: 也就是说,数学,物理,统计等里面不会出现这种问题;你肯定是看错了。再回去研究
: 一下你的原始问题,看是不是你翻译的时候翻译错了。

l
llaalways

Y有无穷多解。
如果a的每个element都不等于0,最简单的解就是
Y=diag(b./a)

【 在 qgmzztmdn (qgmzztmdn) 的大作中提到: 】
: Ya=b
: Y是一个n阶方阵
: a是nx1列向量
: b也是nx1列向量
: 使用matlab,如何求出那个n阶方阵Y?
: 这个问题有通解的办法吗?如果没有通解的办法,麻烦您给出一个特解办法也行,先谢
: 谢啦。

q
qgmzztmdn

嗯,是这样的:

1,a和b都是实验值。

2,然后我看文献,有人使用Ya=b来分析b的计算值和实验值之间的误差。

3,问题是在那篇文章中,人家是根据一个他们自己的想法已经首先构建出了一个方阵Y,然后计算b的。

4,我现在有实验值a和b,想倒推回去,看看这个方阵Y,如果运气好的话,也可以根据
这个新的方阵提出点自己的看法。

你有什么建议吗?谢谢啊

【 在 verdelite (石头) 的大作中提到: 】
: 也就是说,数学,物理,统计等里面不会出现这种问题;你肯定是看错了。再回去研究
: 一下你的原始问题,看是不是你翻译的时候翻译错了。

l
llaalways

如果a的某些elements等于0,但至少有一个element不等于0,
假设a_i不等于0, 那么Y的一个解是第i列等于 b/a_i, 其他列都为0.

【 在laalways (熊大) 的大作中提到: 】
: Y有无穷多解。
: 如果a的每个element都不等于0,最简单的解就是
: Y=diag(b./a)

l
llaalways

如果你有很多pair的a和b, 至少n pairs, 也许能求出Y来。

【 在 qgmzztmdn (qgmzztmdn) 的大作中提到: 】
: 嗯,是这样的:
: 1,a和b都是实验值。
: 2,然后我看文献,有人使用Ya=b来分析b的计算值和实验值之间的误差。
: 3,问题是在那篇文章中,人家是根据一个他们自己的想法已经首先构建出了一个方
阵Y
: ,然后计算b的。
: 4,我现在有实验值a和b,想倒推回去,看看这个方阵Y,如果运气好的话,也可以根据
: 这个新的方阵提出点自己的看法。
: 你有什么建议吗?谢谢啊

q
qgmzztmdn

嗯,这个我可以做到,多测几次a和b就可以了。

如果有了n对a和b的数值,你有什么好方法求出Y吗?谢谢!

【 在 llaalways (熊大) 的大作中提到: 】
: 如果你有很多pair的a和b, 至少n pairs, 也许能求出Y来。
: 阵Y

l
llaalways

YA=B
Y,A,B are nxn matrices,
if A is invertible,
Y=B*inv(A)
【 在 qgmzztmdn (qgmzztmdn) 的大作中提到: 】
: 嗯,这个我可以做到,多测几次a和b就可以了。
: 如果有了n对a和b的数值,你有什么好方法求出Y吗?谢谢!

l
llaalways

也就是说,如果 n个a是线性无关的,可以直接 用B 除以A得到Y
【 在 llaalways (熊大) 的大作中提到: 】
: YA=B
: Y,A,B are nxn matrices,
: if A is invertible,
: Y=A B

q
qgmzztmdn

嗯,你的意思是把n对a列向量都放在一起,组成一个方阵A,同理b也一样。这样的话,Y是不是具有平均意义啊?还是有什么别的统计含义在里边? 谢谢

【 在 llaalways (熊大) 的大作中提到: 】
: YA=B
: Y,A,B are nxn matrices,
: if A is invertible,
: Y=A B

l
llaalways

如果有些a向量线性相关,你就多测一些,直到有n个线性无关为止。
其实更好的办法是有测试远多于n个线性无关的a,这样用优化的办法得到一个Y,
使得每组测验值误差最小。也就试最小二乘法。
【 在 llaalways (熊大) 的大作中提到: 】
: 也就是说,如果 n个a是线性无关的,可以直接 用B 除以A得到Y
l
llaalways

不好意思,前面写错了。要右乘A逆。

实际上相当于多维直线拟合。
【 在 qgmzztmdn (qgmzztmdn) 的大作中提到: 】
: 嗯,你的意思是把n对a列向量都放在一起,组成一个方阵A,同理b也一样。这样的话,
: Y是不是具有平均意义啊?还是有什么别的统计含义在里边? 谢谢

q
qgmzztmdn

没事没事,逆运算我还是会的,还没有笨到那种程度:):):),先谢谢您给了这么多的好
建议啊

【 在 llaalways (熊大) 的大作中提到: 】
: 不好意思,前面写错了。要右乘A逆。
: 实际上相当于多维直线拟合。

l
llaalways

下面是最小2乘法求Y
Y * A =B
Y is nxn matrix
A,B are nxm matrices (m>=n)

' is transpose in following eqatuions

A' * Y' =B'
AA' *Y' =AB'
Y' = inv(AA') *(AB')

Y= (Y')'

【 在 qgmzztmdn (qgmzztmdn) 的大作中提到: 】
: 没事没事,逆运算我还是会的,还没有笨到那种程度:):):),先谢谢您给了这么多的好
: 建议啊

c
cccpwx

是pinv(AA')还是 inv?

【 在 llaalways (熊大) 的大作中提到: 】
: 下面是最小2乘法求Y
: Y * A =B
: Y is nxn matrix
: A,B are nxm matrices (m>=n)
: ' is transpose in following eqatuions
: A' * Y' =B'
: AA' *Y' =AB'
: Y' = inv(AA') *(AB')
: Y= (Y')'

l
llaalways

如果rank(A)=n, 可以用 inv
可能还是pinv(AA')更安全一点。

【 在 cccpwx (扶点双精) 的大作中提到: 】
: 是pinv(AA')还是 inv?

f
frozensea

不要把别人带沟里去了。A是一个矢量,rank(A' * A) = 1,求逆没有意义。

另致楼主:要想清楚你到底要提取哪些共性的东西。Y有无穷多解,最简单的逮住一个
不为0的a_i,把那一列的值设为b_j/a_i就可以。亦或做成三角阵的形式(对角阵不能
保证)。但问题是,这样的Y,有什么意义?

【 在 llaalways (熊大) 的大作中提到: 】
: 下面是最小2乘法求Y
: Y * A =B
: Y is nxn matrix
: A,B are nxm matrices (m>=n)
: ' is transpose in following eqatuions
: A' * Y' =B'
: AA' *Y' =AB'
: Y' = inv(AA') *(AB')
: Y= (Y')'

p
panz

我碰到过有点类似的问题:a 是真实值(比如一组电流),a 经过一个有 leakage 的
线性系统得到观察值 b(比如 b 是一组电流表的读数,但是到达电流表之前的媒质不
能完美隔开每个通道,导致相互之间有直流的漏电)。所以 b 的每一个 element 都差
不多等于 a 的相应 element,但是却也包含一点点 a 其他 elements 的线性组合。我需要通过试验和计算求出这个漏电的规律 Y,这样以后如果测量到 b2 就可以推导出
a2 = inv(Y) * b2。

这时候只有一组 a 和 b 读数是不够的,上面别人的回答解释了 Y 的可能性是无穷
多的;只是输入同样的 a 然后反复读 b 得到一些由于随机噪声产生的 b 也是不行的,
因为这些 b 的变化并非由于 a 的变化引起,而是其他的随机机制。如果 a 可控,这
个问题就好解决,最简单的方法是先只让 a1 有值,a2, ...,an 都置 0,然后测量 b
,这个时候 a1 传递到 b1, b2,..., bn 的系数就都知道了;然后只让 a2 有值,a1,
a3,..., an 都置 0,再测量 b。。。如此下去,Y 的所有值都能通过测量得到。

不知道楼主的问题里,a 是不是可控的。a 如果可控就可以通过设计实验和多次测量来解出 Y。

j
jjttww

你应该是混淆了模型Y的尺度和样本的个数。你再读读文献,看看是不是Ya=b这个公式
里a和b都是代表一个随机变量的vector,而不是测量值的数组。

【 在 qgmzztmdn (qgmzztmdn) 的大作中提到: 】
: 嗯,是这样的:
: 1,a和b都是实验值。
: 2,然后我看文献,有人使用Ya=b来分析b的计算值和实验值之间的误差。
: 3,问题是在那篇文章中,人家是根据一个他们自己的想法已经首先构建出了一个方
阵Y
: ,然后计算b的。
: 4,我现在有实验值a和b,想倒推回去,看看这个方阵Y,如果运气好的话,也可以根据
: 这个新的方阵提出点自己的看法。
: 你有什么建议吗?谢谢啊

l
llaalways

你仔细看看中间的回贴再发言。
我说的是有m个矢量a的情况,m>n,并且有n个线性不相关的天量。

【 在 frozensea 的大作中提到: 】
:
:不要把别人带沟里去了。A是一个矢量,rank(A' * A) = 1,求逆没有意义。
:
:另致楼主:要想清楚你到底要提取哪些共性的东西。Y有无穷多解,最简单的逮住一个:不为0的a_i,把那一列的值设为b_j/a_i就可以。亦或做成三角阵的形式(对角阵不能:保证)。但问题是,这样的Y,有什么意义?
:
:【 在 llaalways (熊大) 的大作中提到: 】
:: 下面是最小2乘法求Y
:: Y * A =B
:: Y is nxn matrix
:: A,B are nxm matrices (m>=n)

f
fhnan

这不就是个Inverness problem 吗

【 在 qgmzztmdn (qgmzztmdn) 的大作中提到: 】
: 嗯,这个我可以做到,多测几次a和b就可以了。
: 如果有了n对a和b的数值,你有什么好方法求出Y吗?谢谢!