matrise divisjon i matlab.

R

ramani

Guest
hei til alle,

jeg trenger å løse ax = b.
hvor en er en × n tridiagonal matrise.b er n × n matix.og x er n × n matrise.
hva kommando i matlab jeg må bruke for å få verdien av x.

skal jeg bruke b / a;
men hvis jeg bruker som dette får jeg en feil verdi.
hva er riktig syntaks.

a = [1,2,0, 3,1,2, 0,3,1];
>> A

a =

1 2 0
3 1 2
0 3 1
b = [3,3,3, 3,3,3, 3,3,3];
>> B

b =

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

som er gale.

enda jeg bruk b. / ai am får feil svar.

kanne noen behage hjelpe meg

 
Pass på ikke-commutativity av matrise multiplikasjon og divisjon.Du løste XA = b stedet for ax = b.
division:

Prøv en matrise venstre
divisjon:

a = [1,2,0, 3,1,2, 0,3,1];
b = [3,3,3, 3,3,3, 3,3,3];
x = A \ b;
a * x

ans =
3,00000000000000 3,00000000000000 3,00000000000000
3,00000000000000 3,00000000000000 3,00000000000000
3,00000000000000 3,00000000000000 3,00000000000000

 
Hvis AX = B
deretter A-1 AX = A-1 B
der A-1 er den inverse til A

slik at X = A-1 B

Så du må finne den inverse til A - aldri brukt matlab så vet ikke hvordan jeg skal gjøre det.Men her er en enkel rutine som vil invertere NxN matrise E og returnere den inverterte matrisen X.

Code:

DEFINT IN

FOR I = 1 til n

FOR J = 1 til n

F (I, J) = E (I, J)

X (I, J) = 0!

NESTE J

X (I, I) = 1!

NESTE I

FOR J = 1 til n

FOR I = 1 til n

IF I <> J SÅ

F (J, I) = F (J, I) / F (J, J)

X (J, I) = X (J, I) / F (J, J)

END IF

NESTE I

X (J, J) = X (J, J) / F (J, J)

F (I, I) = 1!

For k = 1 til n

IF K <> J SÅ

For L = 1 til n

IF L <> J SÅ F (K, L) = F (K, L) - F (K, J) * F (J, L)

X (K, L) = X (K, L) - F (K, J) * X (J, L)

NESTE L

F (K, J) = 0!

END IF

NEXT K

NESTE J
 
Ja, omvendte fungerer fint også.
I MATLAB, den inverse av kvadratiske matrisen A er inv (A).

 

Welcome to EDABoard.com

Sponsor

Back
Top