Forelesning 5: Numerisk derivasjon og likninger#
Numerisk derivasjon#
Analytisk derivasjon: $\(f'(x) = \lim_{\Delta x \rightarrow 0} \frac{f(x+\Delta x)-f(x)}{\Delta x}\)$
Numerisk derivasjon: $\(f'(x) \approx \frac{f(x+\Delta x)-f(x)}{\Delta x}\)$
der \(\Delta x\) er et lite tall.
def framoverdifferanse(f, x, dx = 1E-8):
dy = f(x + dx) - f(x)
return dy/dx
def bakoverdifferanse(f, x, dx = 1E-8):
dy = f(x) - f(x - dx)
return dy/dx
def sentraldifferanse(f, x, dx = 1E-3):
"""
Bruker sentraldifferansen som tilnærming for den numerisk deriverte av f.
--------
f: funksjonen vi skal derivere
x: punktet vi skal derivere i
dx: delta x, avstanden mellom x-punktene
"""
dy = f(x+dx) - f(x - dx)
return dy/(2*dx)
def f(x):
return x**2
print(framoverdifferanse(f,1))
print(bakoverdifferanse(f,1))
print(sentraldifferanse(f,1))
1.999999987845058
1.9999999989472883
1.9999999999998352
Likninger#
def f(x):
return 2*x**2 - 2
def fder(x):
return 4*x
def newtons(f, fder, x, N = 100, tol = 1E-10):
i = 0
while abs(f(x)) > tol and i < N:
x = x - f(x)/fder(x)
i += 1
return x
print(newtons(f,fder,10))
1.0000000000139897