在Matlab中求解特殊线性方程组(GNU倍频程)
我有一个矩阵,假设5x5看起来像这样:在Matlab中求解特殊线性方程组(GNU倍频程),matlab,octave,linear-algebra,Matlab,Octave,Linear Algebra,我有一个矩阵,假设5x5看起来像这样: 0 0 0 1 0 0 0 0 4/5 1/5 3/5 1/5 1/5 0 0 1/5 2/5 1/5 1/5 0
0 0 0 1 0
0 0 0 4/5 1/5
3/5 1/5 1/5 0 0
1/5 2/5 1/5 1/5 0
1/10 1/10 2/5 1/5 1/5
我需要它像线性方程组一样求解它,看起来像这样(我可以自己转置它,但是用符号变量乘以它会让我陷入麻烦):
我可以在wxMaxima中轻松地解决这个问题,但我必须手动在那里写入所有值,这对于更大的矩阵来说越来越繁琐
使用matlab操作符
\
求解线性方程组,经过一些步骤后是否有办法得到结果 你能解方程组吗
>>[A-eye(5);ones(1,5)]\[0,0,0,0,0,1]'
ans =
0.1729
0.2061
0.1345
0.4350
0.0515
>> sum(ans)
ans =
1.0000
还有一个象征性的解决方案:
M=sym(A);
v=sym('[a;b;c;d;e]');
sol=solve(M*v==v,sum(v)==1);
以
sol.a
,sol.b
,…的形式返回解决方案,或者我误解了您的问题,您实际上想要解析符号部分?您答对了,数字与示例中的数字匹配。虽然它的工作原理对我来说很神奇,但谢谢你!:)@delmadord如果这回答了您的问题,我建议从标题和标签中删除“符号数学”部分:)
M=sym(A);
v=sym('[a;b;c;d;e]');
sol=solve(M*v==v,sum(v)==1);