Programmering likningssystem Sara og Ole

Programmering likningssystem Sara og Ole

Sara og Ole jobber med å løse likningssystemer.

For å prøve å løse likningssystemet

[4x=12+y2x+24y=2x2]\begin{bmatrix} 4x = -12 + y \\ 2x + 24 - y = 2x^2 \end{bmatrix}

har Sara laget programmet nedenfor.

def f(x):
    return 4 * x + 12

def g(x):
    return -2 * x ** 2 + 2 * x + 24

for x in range(-5, 5):

    if f(x) == g(x):
        print("Jeg har funnet løsningen x =", x ,"og y =", f(x))
Jeg har funnet løsningen x = -3 og y = 0
Jeg har funnet løsningen x = 2 og y = 20

Forklar strategien Sara har brukt for å løse likningssystemet.

Ole arbeider med likningssystemet

[2x=y8x2+x48=y]\begin{bmatrix} 2x = y - 8 \\ x^2 + x - 48 = y \end{bmatrix}

Hvilke endringer må Ole gjøre i programmet til Sara for å finne løsningene på likningssystemet han arbeider med?

Fasit

Sara omformer likningene til y=f(x)y = f(x) og y=g(x)y = g(x) og sjekker for hvilke heltalls-xx det gjelder at f(x)=g(x)f(x) = g(x).

Endre f(x) til 2 * x + 8, g(x) til x ** 2 + x - 48, og utvide range til f.eks. range(-10, 10). Løsningene er (7,6)(-7, -6) og (8,24)(8, 24).

LøsningsforslagKI-generert

Sara skriver om begge likningene slik at yy står alene:

  • 4x=12+y    y=4x+124x = -12 + y \implies y = 4x + 12 — dette er f(x) i programmet
  • 2x+24y=2x2    y=2x2+2x+242x + 24 - y = 2x^2 \implies y = -2x^2 + 2x + 24 — dette er g(x) i programmet

Strategien er at der grafene til ff og gg krysser hverandre, er f(x)=g(x)f(x) = g(x), og xx- og yy-verdien gir løsningen av likningssystemet.

Programmet tester alle heltallsverdier av xx fra 5-5 til 44 og sjekker om f(x)=g(x)f(x) = g(x). Når det stemmer, skrives løsningen ut.

Ole må gjøre følgende endringer:

  1. Endre f(x) til sin første likning løst for yy: 2x=y8    y=2x+82x = y - 8 \implies y = 2x + 8, altså return 2 * x + 8

  2. Endre g(x) til sin andre likning: y=x2+x48y = x^2 + x - 48, altså return x ** 2 + x - 48

  3. Utvide range slik at løsningene fanges opp, for eksempel range(-10, 10)

Det endrede programmet:

def f(x):
    return 2 * x + 8

def g(x):
    return x ** 2 + x - 48

for x in range(-10, 10):

    if f(x) == g(x):
        print("Jeg har funnet løsningen x =", x ,"og y =", f(x))
Jeg har funnet løsningen x = -7 og y = -6
Jeg har funnet løsningen x = 8 og y = 24

Løsningene er (x,y)=(7,6)(x, y) = (-7, -6) og (x,y)=(8,24)(x, y) = (8, 24).