Sistema lineare

Il problema

Risolvere un sistema lineare (2 equazioni, 2 variabili)

cramer1

Utilizzando uno dei metodi disponibili (sostituzione, confronto, …) si arriva alla soluzione

cramer2

Sono necessari un certo numero di passaggi e le formule finali sono di difficile memorizzazione.
Osserva che la divisione non è possibile se ad-bc=0.

Metodo di Cramer

L’algoritmo di Cramer è semplice da ricordare e da applicare

Considera la matrice dei coefficienti del sistema

cramer3

e le matrici con la colonna dei termini noti al posto di quelle di x e y rispettivamente

cramer4
cramer5

Adesso calcola i tre determinanti corrispondenti (differenza dei prodotti incrociati…)

cramer6
cramer7
cramer8

Le formule per x e y precedenti possono essere riscritte…

cramer9

Program sistema_lineare;
Var
   a, b, c, d, e, f,
   DD, Dx, Dy,         { DD perché d è già occupato... }
   x, y: Real;
Begin
   WriteLn('Inserisci i coefficienti della prima   equazione: ax+by=e');
   Write('a? '); ReadLn(a);
   Write('b? '); ReadLn(b);
   Write('e? '); ReadLn(e);
   WriteLn('Inserisci i coefficienti della seconda equazione: cx+dy=f');
   Write('c? '); ReadLn(c);
   Write('d? '); ReadLn(d);
   Write('f? '); ReadLn(f);
   DD:=a*d-b*c;
   If(DD = 0) Then
      WriteLn('Determinante nullo, la regola di Cramer non può essere applicata.')
   Else
      Begin
         Dx:=d*e-b*f;            
         Dy:=a*f-c*e;
         x:=Dx/DD;
         y:=Dy/DD;
         WriteLn('x = ', x:1:2);
         WriteLn('y = ', y:1:2);
      End;

   ReadLn;
End.