2015-03 – Math Challenges – 2
Write an equation solver that can solve the following two simultaneous equations for x an y when the user enters the coefficients A, B, C and D, E, F.
Ax + By = C and Dx + Ey = F
Il problema
Risolvere un sistema lineare (2 equazioni, 2 variabili)
Utilizzando uno dei metodi disponibili (sostituzione, confronto, …) si arriva alla soluzione ma 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.
La soluzione
L’algoritmo di Cramer è semplice da ricordare e da applicare…
Considera la matrice dei coefficienti del sistema
e le matrici con la colonna dei termini noti al posto di quelle di x e y rispettivamente
Adesso calcola i tre determinanti corrispondenti (differenza dei prodotti incrociati…)
![]()
![]()
![]()
Le formule per x e y precedenti possono essere riscritte in forma compatta

TextWindow.WriteLine("Inserisci i coefficienti della prima equazione: ax+by=e")
TextWindow.Write("a? ")
a=TextWindow.ReadNumber()
TextWindow.Write("b? ")
b=TextWindow.ReadNumber()
TextWindow.Write("e? ")
e=TextWindow.ReadNumber()
TextWindow.WriteLine("Inserisci i coefficienti della seconda equazione: cx+dy=f")
TextWindow.Write("c? ")
c=TextWindow.ReadNumber()
TextWindow.Write("d? ")
d=TextWindow.ReadNumber()
TextWindow.Write("f? ")
f=TextWindow.ReadNumber()
DET=a*d-b*c
If(DET = 0) Then
TextWindow.WriteLine("Determinante nullo.")
TextWindow.WriteLine("La regola di Cramer non può essere applicata.")
Else
Dx=d*e-b*f
Dy=a*f-c*e
x =Dx/DET
y =Dy/DET
TextWindow.WriteLine("x = " + x)
TextWindow.WriteLine("y = " + y)
EndIf