Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Implementering af Differentialkvotienter i Python | Matematisk Analyse
Matematik for Datavidenskab

Implementering af Differentialkvotienter i Python

Stryg for at vise menuen

I Python kan vi beregne afledte symbolsk ved hjælp af sympy og visualisere dem med matplotlib.

1. Symbolsk beregning af afledte

# Define symbolic variable x
x = sp.symbols('x')
# Define the functions
f1 = sp.exp(x)  
f2 = 1 / (1 + sp.exp(-x))  
# Compute derivatives symbolically
df1 = sp.diff(f1, x)  
df2 = sp.diff(f2, x)

Forklaring:

  • Vi definerer x som en symbolsk variabel ved hjælp af sp.symbols('x');
  • Funktionen sp.diff(f, x) beregner den afledte af f med hensyn til x;
  • Dette gør det muligt at manipulere afledte algebraisk i Python.

2. Evaluering og plotning af funktioner og deres afledte

# Convert symbolic functions to numerical functions for plotting
f1_lambda = sp.lambdify(x, f1, 'numpy')
df1_lambda = sp.lambdify(x, df1, 'numpy')
f2_lambda = sp.lambdify(x, f2, 'numpy')
df2_lambda = sp.lambdify(x, df2, 'numpy')

Forklaring:

  • sp.lambdify(x, f, 'numpy') konverterer en symbolsk funktion til en numerisk funktion, der kan evalueres ved hjælp af numpy;
  • Dette er nødvendigt, fordi matplotlib og numpy arbejder med numeriske arrays og ikke symbolske udtryk.

3. Udskrivning af afledte evalueringer for nøglepunkter

For at verificere vores beregninger udskriver vi afledte værdier ved x = [-5, 0, 5].

# Evaluate derivatives at key points
test_points = [-5, 0, 5]
for x_val in test_points:
    print(f"x = {x_val}: e^x = {f2_lambda(x_val):.4f}, e^x' = {df2_lambda(x_val):.4f}")
    print(f"x = {x_val}: sigmoid(x) = {f4_lambda(x_val):.4f}, sigmoid'(x) = {df4_lambda(x_val):.4f}")
    print("-" * 50)

1. Hvorfor bruger vi sp.lambdify(x, f, 'numpy') når vi plotter afledte?

2. Når man sammenligner graferne for f(x)=exf(x) = e^x og dens afledte, hvilken af følgende er sand?

question mark

Hvorfor bruger vi sp.lambdify(x, f, 'numpy') når vi plotter afledte?

Vælg det korrekte svar

question mark

Når man sammenligner graferne for f(x)=exf(x) = e^x og dens afledte, hvilken af følgende er sand?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Implementering af Differentialkvotienter i Python

I Python kan vi beregne afledte symbolsk ved hjælp af sympy og visualisere dem med matplotlib.

1. Symbolsk beregning af afledte

# Define symbolic variable x
x = sp.symbols('x')
# Define the functions
f1 = sp.exp(x)  
f2 = 1 / (1 + sp.exp(-x))  
# Compute derivatives symbolically
df1 = sp.diff(f1, x)  
df2 = sp.diff(f2, x)

Forklaring:

  • Vi definerer x som en symbolsk variabel ved hjælp af sp.symbols('x');
  • Funktionen sp.diff(f, x) beregner den afledte af f med hensyn til x;
  • Dette gør det muligt at manipulere afledte algebraisk i Python.

2. Evaluering og plotning af funktioner og deres afledte

# Convert symbolic functions to numerical functions for plotting
f1_lambda = sp.lambdify(x, f1, 'numpy')
df1_lambda = sp.lambdify(x, df1, 'numpy')
f2_lambda = sp.lambdify(x, f2, 'numpy')
df2_lambda = sp.lambdify(x, df2, 'numpy')

Forklaring:

  • sp.lambdify(x, f, 'numpy') konverterer en symbolsk funktion til en numerisk funktion, der kan evalueres ved hjælp af numpy;
  • Dette er nødvendigt, fordi matplotlib og numpy arbejder med numeriske arrays og ikke symbolske udtryk.

3. Udskrivning af afledte evalueringer for nøglepunkter

For at verificere vores beregninger udskriver vi afledte værdier ved x = [-5, 0, 5].

# Evaluate derivatives at key points
test_points = [-5, 0, 5]
for x_val in test_points:
    print(f"x = {x_val}: e^x = {f2_lambda(x_val):.4f}, e^x' = {df2_lambda(x_val):.4f}")
    print(f"x = {x_val}: sigmoid(x) = {f4_lambda(x_val):.4f}, sigmoid'(x) = {df4_lambda(x_val):.4f}")
    print("-" * 50)
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
some-alt