1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75:
| procedure TForm1.rinverse; var i,j, l, z : integer; begin if check0 then begin Showmessage('Nicht inversierbar'); exit; end; i := 0; while (matrix[1,1] = 0) or (matrix[2,2] = 0) or (matrix[3,3] = 0) or (matrix[4,4] = 0) do begin inc(i); rtauschv(1); rtauschv(2); rtauschv(3); rtauschv(4); rtauschh(1); rtauschh(2); rtauschh(3); rtauschh(4); if i = 25 then begin Showmessage('Fehler bei der Ermittlung der Inversen Matrix'); exit; end; end; for j := 1 to 4 do begin if j = 1 then continue; for i := 1 to 8 do begin matrix[j,i] := matrix[j,i] * matrix[1,1] - matrix[1,i] * matrix[j,1]; end; end; for j := 1 to 4 do begin if j = 2 then continue; for i := 1 to 8 do begin matrix[j,i] := matrix[j,i] * matrix[2,2] - matrix[2,i] * matrix[j,2]; end; end; for j := 1 to 4 do begin if j = 3 then continue; for i := 1 to 8 do begin matrix[j,i] := matrix[j,i] * matrix[3,3] - matrix[3,i] * matrix[j,3]; end; end; for j := 1 to 4 do begin if j = 4 then continue; for i := 1 to 8 do begin matrix[j,i] := matrix[j,i] * matrix[4,4] - matrix[4,i] * matrix[j,4]; end; end;
for i := 1 to 4 do begin for l := 1 to 8 do begin matrix[i,l] := matrix[i,l] / matrix[i,i]; end; end; end; |