求解矩阵方程

时间:2018-02-05 19:14:16

标签: matrix julia

说我在表格上有矩阵方程式

DECLARE @tableName NVARCHAR(MAX);
DECLARE @command NVARCHAR(MAX);
DECLARE @result NVARCHAR(MAX);


SET @tableName = select x from dbo.food where x = 'Candy';
SET @command = 'select @tempResult = a from dbo.' + @tableName;

exec sp_executesql @command , N'@tempResult NVARCHAR(MAX) out', @result out;

select @result as 'a';

其中
    MAM^-1 = [0.55 0.06; -0.55 0.96]

A = [x_1 0; 0 x_2]

因此A是2x2对角矩阵,M是2x2矩阵。我对Julia很新,所以我只熟悉Ax = b形式的系统求解。我已经设法用手解决了上述问题(这很痛苦!)但是有没有办法在Julia中解决这样的矩阵方程?

抱歉格式不佳,但显然你无法在stackoverflow中编写TeX方程式。

1 个答案:

答案 0 :(得分:1)

简答:

你有4个方程式(你的2x2矩阵组件)和2个未知数。

  

=>我的一般情况是你的问题无法解决。

答案很长:

为了完成答案,我们可以想象一些与您的问题接近(但不同)的事情:

您的表达式MAM^-1 = B可以解释为特征分解。

A是包含B特征值的对角矩阵。 M是包含相关特征向量的基础矩阵的变化。

在朱莉娅:

B=[0.55 0.06;-0.55 0.96]
A=diagm(eigvals(B))
M=eigvecs(B)
julia> B=[0.55 0.06;-0.55 0.96]
2×2 Array{Float64,2}:
  0.55  0.06
 -0.55  0.96

julia> A=diagm(eigvals(B))
2×2 Array{Float64,2}:
 0.66  0.0 
 0.0   0.85

julia> M=eigvecs(B)
2×2 Array{Float64,2}:
 -0.478852  -0.196116
 -0.877896  -0.980581

现在观察

M*A*inv(M)

是您的B矩阵。

通过缩放特征向量,您可以得到更接近命题的M矩阵(请注意,这不会修改本征空间和特征值)。这可以通过以下方式完成:

Mp=M*inv(diagm(M[1,:]))
2×2 Array{Float64,2}:
 1.0      1.0
 1.83333  5.0

您可以检查您是否还有:

Mp*A*inv(Mp) # equal to your B matrix
2×2 Array{Float64,2}:
  0.55  0.06
 -0.55  0.96

现在,回到你最初的问题,通过识别,我们有:

从矩阵对角线

x1=0.66
x2=0.85

来自Mp第二行

2x_1/(1 - 2x_1) = 1.83333 
2x_2/(1 - 2x_2) = 5.0

这是一组不相容的方程式(4个方程式,2个unknows)。