Ich versuche, die Gewichte für eine Finite-Differenzen-Approximation der ersten Ableitung f′(x)f'(x)f′(x) mithilfe der Taylor-Reihenentwicklung zu berechnen. Ich suche nach den Gewichten a,b,c,d,ea, b, c, d, ea,b,c,d,e, so dass:
af(x+2Δx )+bf(x+Δx)+cf(x)+df(x−Δx)+ef(x−2Δx)a f(x+2\Delta x) + b f(x+\Delta x) + c f(x) + D f(x-\Updelta x) + e f(x-2\Updelta x)af(x+2Δx)+bf(x+Δx)+cf(x)+df(x−Δx)+ef(x−2Δx)
nähert sich f′(x)f'(x)f′(x) an. Folgendes habe ich getan:
Ich habe die Taylor-Reihenentwicklung für f(x±kΔx)f(x \pm k\Delta x)f verwendet (x±kΔx), wobei k=1,2k = 1, 2k=1,2.
Ich habe ein System linearer Gleichungen erstellt um die folgenden Bedingungen durchzusetzen:
Koeffizienten von f(x): a+b+c+d+e=0
Koeffizienten von f′(x): 2a+b−d−2e=1
Koeffizienten von f′′(x): 4a+b+ d+4e=0
Koeffizienten von f(3)(x): 8a+b−d−8e=0
Koeffizienten von f(4)(x): 16a+b+d+16e=0
Ich habe die Matrixgleichung A⋅z=bA \cdot z = implementiert bA⋅z=b in Python:
Doppelt überprüft die Koeffizienten in Matrix A, um sicherzustellen, dass sie mit der Taylor-Reihenentwicklung übereinstimmen.
Überprüft, dass der Vektor auf der rechten Seite b=[0,1 ,0,0,0] ist für die Approximation von f′(x) korrekt.
Trotzdem sind die Gewichtungen falsch. Fehlt mir etwas im Matrix-Setup oder der Python-Implementierung?
[*]Erwartetes Verhalten:
I möchten, dass die Lösung mit den theoretischen Gewichten für eine zentrale Finite-Differenzen-Approximation der ersten Ableitung f′(x) unter Verwendung von fünf Punkten übereinstimmt.
Ich versuche, die Gewichte für eine Finite-Differenzen-Approximation der ersten Ableitung f′(x)f'(x)f′(x) mithilfe der Taylor-Reihenentwicklung zu berechnen. Ich suche nach den Gewichten a,b,c,d,ea, b, c, d, ea,b,c,d,e, so dass: af(x+2Δx )+bf(x+Δx)+cf(x)+df(x−Δx)+ef(x−2Δx)a f(x+2\Delta x) + b f(x+\Delta x) + c f(x) + D f(x-\Updelta x) + e f(x-2\Updelta x)af(x+2Δx)+bf(x+Δx)+cf(x)+df(x−Δx)+ef(x−2Δx) nähert sich f′(x)f'(x)f′(x) an. Folgendes habe ich getan: [list] [*]Ich habe die Taylor-Reihenentwicklung für f(x±kΔx)f(x \pm k\Delta x)f verwendet (x±kΔx), wobei k=1,2k = 1, 2k=1,2.
[*]Ich habe ein System linearer Gleichungen erstellt um die folgenden Bedingungen durchzusetzen: [list] Koeffizienten von f(x): a+b+c+d+e=0
[*]Koeffizienten von f′(x): 2a+b−d−2e=1
[*]Koeffizienten von f′′(x): 4a+b+ d+4e=0
[*]Koeffizienten von f(3)(x): 8a+b−d−8e=0
[*]Koeffizienten von f(4)(x): 16a+b+d+16e=0
[/list]
[*]Ich habe die Matrixgleichung A⋅z=bA \cdot z = implementiert bA⋅z=b in Python: [code]import numpy as np
A = np.array([ [1, 1, 1, 1, 1], # Coefficients of f(x) [2, 1, 0, -1, -2], # Coefficients of f'(x) [4, 1, 0, 1, 4], # Coefficients of f''(x) [8, 1, 0, -1, 8], # Coefficients of f'''(x) [16, 1, 0, 1, 16] # Coefficients of f''''(x) ])
b = np.array([0, 1, 0, 0, 0]) # Targeting the first derivative
z = np.linalg.solve(A, b) print(z)
[/code]
[*]Das Problem: Die Ausgabe, die ich erhalte, ist: [code][0.25,0,-0,0,-0.25] [/code] Die erwarteten Gewichte für die erste Ableitung sollten jedoch etwa so lauten:
[*] [code][-1/12,2/3,0,-2/3,1/12] [/code]
[*]Was ich versucht habe:
Doppelt überprüft die Koeffizienten in Matrix A, um sicherzustellen, dass sie mit der Taylor-Reihenentwicklung übereinstimmen.
[*]Überprüft, dass der Vektor auf der rechten Seite b=[0,1 ,0,0,0] ist für die Approximation von f′(x) korrekt.
[/list] Trotzdem sind die Gewichtungen falsch. Fehlt mir etwas im Matrix-Setup oder der Python-Implementierung?
[*]Erwartetes Verhalten: I möchten, dass die Lösung mit den theoretischen Gewichten für eine zentrale Finite-Differenzen-Approximation der ersten Ableitung f′(x) unter Verwendung von fünf Punkten übereinstimmt.
Mir ist aufgefallen, dass sich das Ergebnis von Math.pow(10, -4) zwischen JavaScript und C# unterscheidet.
JavaScript Math.pow
C# Math.Pow
In JavaScript scheint das Ergebnis als Näherungswert...
Mir ist aufgefallen, dass sich das Ergebnis von Math.pow(10, -4) zwischen JavaScript und C# unterscheidet.
JavaScript Math.pow
C# Math.Pow
In JavaScript scheint das Ergebnis als Näherungswert...
Ich verwende die Google Geocode -API zu Geocode mehrere tausend Adressen. Ich erhalte einige ungenaue Antworten und versuche herauszufinden, warum. Das erste ist US-22, Vereinigte Staaten . Der...
Ich versuche, Sympy zu verwenden, um 1 / (1 + cot(x)) für die Variable x (oder ihr Äquivalent sin(x) / (sin(x) + cos(x))) zu integrieren.
Ich habe es versucht
from sympy import *
x = symbols( x ,...