Python-kode for stasjonære punkter R1 V26

Python-kode for stasjonære punkter R1 V26

Programkoden nedenfor er ikke helt ferdig.

def f(x):
    return 1/3*x**3 + 5/3*x**2 + 25/9*x

def g(x):
    h = 0.000001
    return (f(x + h) - f(x))/h

x = -4
slutt = 4
dx = 0.002
maks_avvik = 0.000001

while (x < slutt):
    x = x + dx
    if abs(g(x)) < maks_avvik:                #sjekker om g(x) er nær 0

        if g(x - dx) * g(x + dx) > 0:
            print("f har et A for x =", x)

        elif g(x - dx) < g(x + dx):
            print("f har et B for x =", x)

        elif g(x - dx) > g(x + dx):
            print("f har et C for x =", x)

Forklar sammenhengen mellom f(x)f(x) og g(x)g(x) i koden.

Hvilke tre ulike begreper skal stå i stedet for A, B og C i linje 18, 21 og 24?

Når programmet kjøres, skrives det ut én setning.

I hvilken linje står denne setningen? Husk å begrunne svaret.

Fasit

g(x)g(x) er en numerisk tilnærming til f(x)f'(x) (den deriverte av ff).

A = terrassepunkt, B = bunnpunkt, C = toppunkt

Linje 18: «f har et terrassepunkt for x = …»

LøsningsforslagKI-generert

Funksjonen g(x)g(x) beregner den deriverte til ff numerisk ved hjelp av Newton-kvotienten (forskjellsformelen):

g(x)=f(x+h)f(x)h,h=0,000001g(x) = \frac{f(x+h) - f(x)}{h}, \quad h = 0{,}000001

g(x)g(x) er en numerisk tilnærming til den deriverte f(x)f'(x).

Koden sjekker fortegnsskiftet til gg rundt et stasjonært punkt ved å sammenligne g(xdx)g(x - dx) og g(x+dx)g(x + dx):

  • Linje 18 (A): g(x - dx) * g(x + dx) > 0 — begge har samme fortegn, altså skifter ikke gg fortegn. Det er ikke et topp- eller bunnpunkt, men et terrassepunkt.
  • Linje 21 (B): g(x - dx) < g(x + dx)gg går fra negativ til positiv, altså er ff synkende til venstre og stigende til høyre. Det er et bunnpunkt.
  • Linje 24 (C): g(x - dx) > g(x + dx)gg går fra positiv til negativ. Det er et toppunkt.

A = terrassepunkt, B = bunnpunkt, C = toppunkt.

Vi finner de stasjonære punktene til ff ved å løse f(x)=0f'(x) = 0.

f(x)=13x3+53x2+259xf(x) = \frac{1}{3}x^3 + \frac{5}{3}x^2 + \frac{25}{9}x f(x)=x2+103x+259f'(x) = x^2 + \frac{10}{3}x + \frac{25}{9}

Vi gjenkjenner dette som et fullstendig kvadrat:

f(x)=(x+53)2f'(x) = \left(x + \frac{5}{3}\right)^2

Dette har ett dobbelt nullpunkt: x=53x = -\dfrac{5}{3}.

Siden f(x)=(x+53)20f'(x) = \left(x + \frac{5}{3}\right)^2 \geq 0 for alle xx, skifter aldri ff' fortegn. Det betyr at g(xdx)g(x - dx) og g(x+dx)g(x + dx) begge er ikke-negative rundt x=53x = -\frac{5}{3}, slik at produktet g(xdx)g(x+dx)>0g(x-dx) \cdot g(x+dx) > 0.

Den første betingelsen (g(x - dx) * g(x + dx) > 0) slår til, og programmet skriver ut:

«f har et terrassepunkt for x = …»

Setningen som skrives ut, er fra linje 18.