matrix division i Matlab.

R

ramani

Guest
hej til alle, jeg har brug for til at løse ax = b.. hvor a er en × n tridiagonal matrix. b er n × n matix. og x er n × n matrix. hvad kommando i Matlab jeg nødt til at bruge til at få værdien af ​​x. skal jeg bruge b / a, men hvis jeg bruger denne måde jeg får en forkert værdi. Hvad er den korrekte syntaks. a = [1,2,0, 3,1,2, 0,3,1]; >> aa = 1 2 0 3 1 2 0 3 1 b = [3,3,3, 3,3,3; 3,3,3]; >> bb = 3 3 3 3 3 3 3 3 3 b / a ans = -0,2727 1,0909 0,8182 -0,2727 1,0909 0,8182 -0,2727 1,0909 0,8182 hvilket er forkert. selv jeg bruge b. / ai jeg får forkerte svar. kan nogen venligst hjælpe mig
 
Pas på den ikke-commutativity af matrix multiplikation og division. Du løst xa = B i stedet for ax = b.. Prøv en matrix forlod division: a = [1,2,0, 3,1,2, 0,3,1] b = [3,3,3, 3,3,3; 3,3,3], x = a \ b, en * x ans = 3,00000000000000 3,00000000000000 3,00000000000000 3,00000000000000 3,00000000000000 3,00000000000000 3,00000000000000 3,00000000000000 3,00000000000000
 
Hvis AX = B derefter A-1 AX = A-1 B, hvor A-1 er den inverse af en såkaldt X = A-1 B Så du er nødt til at finde den inverse af A - aldrig brugt Matlab, så ved ikke hvordan man gør det. Men her er en grundlæggende rutine, som vil vende NxN matrix E og returnere den omvendte matrix X.
Code:
 DEFINT i for i = 1 til N for j = 1 til NF (I, J) = E (I, J) X ( I, J) = 0! NEXT J X (I, I) = 1! NÆSTE jeg for j = 1 til N for i = 1 til N, hvis IJ SÅ F (J, I) = F (J, I) / F (J, J) X (J, I) = X (J, I) / F (J, J) END hvis de næste IX (J, J) = X (J, J) / F (J, J) F (I, I) = 1! For K = 1 til n IF KJ derefter for L = 1 til N IF LJ derefter F (K, L) = F (K, L) - F (K, J) * F (J, L) X (K, L ) = X (K, L) - F (K, J) * X (J, L) NEXT LF (K, J) = 0! End If NÆSTE K NEXT J
 
Ja, omvendt fungerer også fint. I MATLAB A den inverse af kvadratisk matrix er inv (A).
 

Welcome to EDABoard.com

Sponsor

Back
Top