簡體   English   中英

求解Matlab中的線性方程組特殊系統(GNU Octave)

[英]Solve special system of linear equations in Matlab (GNU Octave)

我有一個矩陣,讓我們說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
       1/10       1/10        2/5        1/5        1/5

我需要它來解決它就像一個看起來像這樣的線性方程組(我可以自己轉置它,但然后將它與符號變量相乘會讓我陷入麻煩):

   0 * a  +      0 * b  +    3/5 * c  +    1/5 * d  +    1/10 + e  =  a
   0 * a  +      0 * b  +    1/5 * c  +    2/5 * d  +    1/10 + e  =  b
   0 * a  +      0 * b  +    1/5 * c  +    1/5 * d  +     2/5 + e  =  c
   1 * a  +    4/5 * b  +      0 * c  +    1/5 * d  +     1/5 + e  =  d
   0 * a  +    1/5 * b  +      0 * c  +      0 * d  +     1/5 + e  =  e
       a  +         b  +          c  +          d  +           e  =  1

我可以在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.asol.b ,...形式的解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM