我有3个eqns和2个未知的Hb和Hbo2,它们看起来像这样:
Bxy = AB * HB + AB * Hbo2
Rxy = AR * HB + AR * Hbo2
Gxy = AG * HB + AG * Hbo2
现在我一直在尝试使用矩阵方法来解决他们方程的未知数,这是一个痛苦的原因当我将其转换为矩阵形式时我得到一个不规则矩阵,因为它是2个未知数和3方程。
这里有没有人知道如何用n-1个未知数解决n个方程式。
修改 的
感谢到目前为止的回复,他们一直很棒。
为了使这一点更清楚,我要做的是计算出图像中给定像素的含氧和脱氧血液的浓度。所以上面的变量对应于以下内容。
在x,y位置吸收的Rxy Gxy和Bxy,红绿色或蓝色。 (值在0 - 255之间)
AR,AG,AB是红色的光的吸收系数和血液的蓝色波长。 (但是,我可能不得不为含氧和脱氧血液定义不同的吸收系数(因为它们吸收不同量的光))。
Hb和Hbo2是含氧和脱氧血液的浓度。 (这些是未知的,因为我正在尝试将RGB值映射到此)
然而,我也注意到氧气和脱氧血液的系数不同,所以这意味着方程式可能如下。
Bxy =(ABhb * HB)+(ABhbo2 * Hbo2)
Rxy =(ARhb * HB)+(ARhbo2 * Hbo2)
Gxy =(AGhb * HB)+(AGhbo2 * Hbo2)
上述唯一的区别是含氧和脱氧血液的系数不同。
这是我在计算机科学大学的最后一年项目的一部分,试图做一些功能成像。
如果有不同的系数,@ chris同样适用,抱歉缺乏理解,数学不是我最强的观点。只是尝试编程这个算法。答案 0 :(得分:2)
你可能想要的是所谓的least squares solution (see the section on the general problem)。总而言之,当您在此处尝试解决A
时,根据您的b
和A*x=b
,我们无法保证您提供准确的解决方案。
然而,通过计算xLS = inv(A'*A)*A'*b
,您将获得尽可能接近解决方案的东西(在最小二乘意义上)。请注意,A'
表示A
的转置。还要注意,如果A'*A
不可逆,那么你的方程组就缺乏排名(这意味着你的方程式实际上比你想象的要少。)
如果你有:
Bxy = (ABhb * HB) + (ABhbo2 * Hbo2)
Rxy = (ARhb * HB) + (ARhbo2 * Hbo2)
Gxy = (AGhb * HB) + (AGhbo2 * Hbo2)
然后:
A = [ ABhb ABhbo2
ARhb ARhbo2
AGhb AGhbo2 ];
x = [HB
Hbo2];
b = [Bxy
Rxy
Gxy];
答案 1 :(得分:1)
如果你有n个方程和n-1个未知数,这意味着你可以消除其中一个方程,它是无关紧要的,并且取决于其他两个方程。找出哪一个最容易消除,替换,然后你留下一个(n-1)x(n-1)矩阵
假设所有三个方程都有一个解,那么可以通过求解其中两个得到两个未知数来找到它。
在这种情况下,除了系数之外,似乎你的所有方程都或多或少相等,所以我认为你选择排除的三个中的哪一个并不重要。您可以简单地删除Gxy方程式,最后得到2x2对:
Bxy = AB * HB + AB * Hbo2
Rxy = AR * HB + AR * Hbo2
产生矩阵
[AB AB]
[AR AR]
答案 2 :(得分:1)
epxression HB+Hbo2
在所有3个等式中都是相同的,并且它可以被z=HB+Hbo2
替换为三个等式
B = AB*z
R = AR*z
G = AG*z
要解决z,请使用最小二乘拟合
z = HB + Hbo2 = (AB*B+AG*G+AR*R)/(AB*AB+AG*AG+AR*AR)
和每个组件的错误
dB = B - AB*z
dR = R - AR*z
dG = G - AG*z
这就是你所能做的一切。不知何故,您必须决定如何将z
拆分为HB
和Hbo2
。问题陈述中没有给出关于此的信息。