Autor |
Beitrag |
Steve
| Veröffentlicht am Donnerstag, den 08. März, 2001 - 16:07: |
|
Kann mir jemand für dieses Gleichungssystem die Inverse Matrix berechnen? 1 -1 -1/ 1 2 2 3/ 1 6 -2 4/ 4 |
robocop
| Veröffentlicht am Donnerstag, den 08. März, 2001 - 16:39: |
|
aber tippen mußt du selber! 10REM**Dateiname=matrix1.bas** 20CLEAR:CLS:WINDOW OPEN 30n=3:PRINT "Inversion einer";n;"*";n;"-Matrix" 40n=n-1: DIM a(n,n),b(n,n) 50FOR a=0 TO n 60 FOR b=0 TO n:READ a(a,b) 70 PRINT "a";a;b;a(a,b) 80 NEXT b,a 90 FOR b=0 TO n 100b(b,b)=1 110NEXT b 120GOTO 160 130IF a(c,c)=0 THEN RETURN 140a(b,a)=a(b,a)-a(b,c)*a(c,a)/a(c,c) 150RETURN 160FOR c=0 TO n-1 170 FOR b=c+1 TO n 180FOR a=c+1 TO n 190 GOSUB 130 200NEXT a:NEXT b:NEXT c 210b=1:FOR a=0 TO n:b=b*a(a,a):NEXT a 220PRINT "Determinante der Matrix=";b 230FOR c=0 TO n-1 240FOR b=c+1 TO n 250FOR a=0 TO b 260REM IF b(a,c)=0 THEN 370 270b(a,b)=b(a,b)-b(a,c)*a(c,b)/a(c,c) 280NEXT a:NEXT b:NEXT c 290GOTO 330 300IF ABS(a(c,c))<1e-4 THEN STOP 310 b(a,b)=b(a,b)-b(a,c)*a(c,b)/a(c,c) 320 RETURN 330FOR c=n TO 1 STEP -1 340FOR b=c-1 TO 0 STEP -1 350 FOR a=n TO 0 STEP-1 360 GOSUB 300 370NEXT a:NEXT b:NEXT c 380 FOR a=0 TO n 390FOR b=0 TO n 400 b(a,b)=b(a,b)/a(b,b) 410NEXT b:NEXT a 420FOR a=0 TO n 430FOR b=0 TO n 440PRINT "b";a;b;"=";b(a,b) 450NEXT b:NEXT a 460REM Koeffizienten in zeilenm„áiger Reihenfolge 470DATA 3,2,1,1,0,2,4,1,3 |
special fx
| Veröffentlicht am Freitag, den 09. März, 2001 - 03:36: |
|
Inversion einer 3 * 3 -Matrix ( 1 /-1 /-1 ) ( 2 / 2 / 3 ) ( 6 /-2 / 4 ) Determinante der Matrix= 20 ( .6999999 / .3 /-.05 ) ( .5 / .5 /-.25 ) (-.8000001 /-.2 / .2 ) ich habe das prog. geringfügig geändert: 10REM**Dateiname=matrix1.bas** 20CLEAR:CLS:WINDOW OPEN 30READ a$:n=n+1:IF a$="-" THEN 40 ELSE 30 40n=SQR(n-1)-1:PRINT "Inversion einer";n+1;"*";n+1;"-Matrix" 50RESTORE:FOR a=0 TO n:PRINT "("; 60 FOR b=0 TO n:READ a(a,b) 70 PRINT a(a,b);:IF b=n THEN 80 ELSE PRINT "/"; 80 NEXT b:PRINT ")":NEXT a 90 FOR b=0 TO n 100b(b,b)=1 110NEXT b 120GOTO 160 130IF a(c,c)=0 THEN RETURN 140a(b,a)=a(b,a)-a(b,c)*a(c,a)/a(c,c) 150RETURN 160FOR c=0 TO n-1 170 FOR b=c+1 TO n 180FOR a=c+1 TO n 190 GOSUB 130 200NEXT a:NEXT b:NEXT c 210b=1:FOR a=0 TO n:b=b*a(a,a):NEXT a 220PRINT "Determinante der Matrix=";b 230FOR c=0 TO n-1 240FOR b=c+1 TO n 250FOR a=0 TO b 260REM IF b(a,c)=0 THEN 370 270b(a,b)=b(a,b)-b(a,c)*a(c,b)/a(c,c) 280NEXT a:NEXT b:NEXT c 290GOTO 330 300IF ABS(a(c,c))<1e-4 THEN STOP 310 b(a,b)=b(a,b)-b(a,c)*a(c,b)/a(c,c) 320 RETURN 330FOR c=n TO 1 STEP -1 340FOR b=c-1 TO 0 STEP -1 350 FOR a=n TO 0 STEP-1 360 GOSUB 300 370NEXT a:NEXT b:NEXT c 380 FOR a=0 TO n 390FOR b=0 TO n 400 b(a,b)=b(a,b)/a(b,b) 410NEXT b:NEXT a 420FOR a=0 TO n:PRINT "("; 430FOR b=0 TO n 440PRINT b(a,b);:IF b=n THEN 450 ELSE PRINT "/"; 450NEXT b:PRINT ")":NEXT a 460REM Koeffizienten in zeilenm„áiger Reihenfolge 470DATA 3,2,1,1,0,2,4,1,3,- |
Wm_Markus (Wm_Markus)
| Veröffentlicht am Freitag, den 09. März, 2001 - 04:15: |
|
Die Arbeit geht auch einfacher : M^(-1)=1/det(M) * 1.auf Hauptdiagonale 1 und 4 vertauschen und 2. alle anderen Elemente mal (-1) (Hauptdiagonale in diesbzgl. in Ruhe lassen) WM_ausderNumerik Markus |
|