Analitikus függvénykiértékelés

A Wikipédiából, a szabad enciklopédiából
(Szerkesztő:Leonardo de Robi/próbalap szócikkből átirányítva)

Analitikus függvénykiértékelés[szerkesztés]

A matematika és fizika terén mindig függvények kötnek össze változókat, legáltalánosabb esetben a következő alakban f(x) = y. Ezzel egyenértékű az az állítás, hogy minden x értéknek megfelel egy jól meghatározott y érték. Numerikus analízis terén gyakran megjelenik a behelyettesítés értékének a meghatározásának a problémája. Többek között az integrálok numerikus analízisében, a kvadratúráknál.

Bizonyos esetekben a függvényértékek kiszámításánál megjelennek a Taylor-, illetve a Maclaurin-sorok. Ezek megfelelő esetben egyre pontosabb értéket térítenek vissza, minél inkább növeljük a lépések számát.

Általános esetben megkeressük a függvény Maclaurin-sorát, majd a sor alapján meghatározunk egy rekurrenciás képletet. A képletet megfelelő módon implementálva egy programba, azt addig engedjük futni, míg a kívánt eredmény az általunk meghatározott hibakorláton belül esik.

A rekurrenció a következő formában hasznos programozásban: , ahol az

típusú függvény[szerkesztés]

Maclaurin sor:

Rekurrenciás képlet:

A tagok számát növelve, a pontossága is növekszik a behelyettesítési értéknek.

Python kód[szerkesztés]

import math
def maclaurin(a, x, e):
	u = 1
	n = 0
	T = 1
	while (math.sqrt(u*u)>e):
		u = x*u*(a-n)/(n+1)
		T = T + u
		n = n + 1
	return T

, exponenciális függvény[szerkesztés]

Maclaurin sor:

Rekurrenciás képlet:

Python kód[szerkesztés]

import math
def exp(x, e):
	u = 1
	n = 0
	T = 1
	while (math.sqrt(u*u)>e):
		u = x*u/(n+1)
		T = T + u
		n = n + 1
	return T

A természetes logaritmus függvény[szerkesztés]

Maclaurin-sor:

,

Rekurrenciás képlet:

Python kód[szerkesztés]

import math
def ln(x, e):
	u = x
	n = 0
	T = x
	while (math.sqrt(u*u)>e):
		n = n + 1		
		u = -u*n*x/(n+1)
		T = T + u
	return T

Sin(x) függvény[szerkesztés]

Rekurrenciás képlet:

Python kód[szerkesztés]

import math
def sin(x, e):
	u = x
	n = 0
	T = x
	while (math.sqrt(u*u)>e):
		n = n + 1		
		u = -u*x*x/((2n+1)*(2n))
		T = T + u
	return T

Lásd még[szerkesztés]

Források[szerkesztés]

  • Numerikus módszerek (egyetemi jegyzet): Lázár Zsolt, Lázár József, Járai-Szabó Ferenc, Bábes-Bólyai Tudomány Egyetem, Fizika kar