Diferentierea unei functii in Matlab


lorif


Buna!

Am o problema cu Matlab, si anume: vreau sa diferentiez o fuctie deja existenta in Matlab, functia Hankel. Am incercat cu comanda diff, dar ceea ce rezulta e de fapt diferenta intre termenii n si n-1 ai vectorului dat de functia respectiva.

Am gasit in help niste exemple, cum se poate face pentru o functie "normala", de exemplu y=x^2+3*x, dar nu pentru o functie deja implementata in Matlab. Intrebarea mea este asadar: cum pot sa diferentiez o fuctie deja existenta in Matlab si apoi Matlab sa imi afiseze valorile in anumite puncte?? (de exemplu x=0:1:10).

Sper ca cineva ma poate ajuta si multumesc anticipat.
soarce
CITAT (lorif @ 6th June 2009, 13:25) *
Am o problema cu Matlab, si anume: vreau sa diferentiez o fuctie deja existenta in Matlab, functia Hankel.

S-o diferentiezi cum? Analitic sau numeric ?
 
lorif
CITAT (soarce @ 7th June 2009, 13:49) *
S-o diferentiezi cum? Analitic sau numeric ?


Am nevoie de derivata partiala a functiei Hankel, calculata in niste puncte date de un vector pe care micul programel pe care vreau sa il construiesc il calculeaza in niste pasi precedenti. Asadar, am nevoie de H'(k), unde k este un vector. Derivata asta partiala imi este necesara pentru a calcula deplasarile date de o incarcare dinamica asupra unui sol stratificat, sa fiu sincera nu stiu foarte multe despre aceasta functie.... am nevoie de ea doar pentru a-mi duce calculul mai departe.

Functia Hankel este deja existenta in Matlab, si valorile necesare le obtin introducand ca si comanda besselh(0,2,k)-->k este acel vector de care vorbeam si mai inainte. Daca dau in Matlab diff(besselh(0,2,k)), ceea ce obtin este de fapt un vector cu dimensiunea (n-1) ce e calculat de fapt ca diferenta intre termenii n si (n-1) din vectorul precedent dat de fct besselh(..).

Sper ca problema mea e acum mai clara si ca cineva ma poate ajuta. Multumesc anticipat!
soarce
CITAT (lorif @ 7th June 2009, 15:28) *
Sper ca problema mea e acum mai clara si ca cineva ma poate ajuta. Multumesc anticipat!

Functia Hankel (ca si functia Bessel) este definita ca o serie convergenta (suma infinita de termeni). Evaluarea ei numerica nu este triviala. Matlab iti calculeaza H(x) (pentru anumiti indici ai functiei Hankel).

Evaluarea derivatei se poate face numeric sau analitic:
- pentru derivata numerica trebuie sa folosesti metode aproximative: diferente finite, metode (pseudo)spectrale...
- pentru derivata analitica cauta in cartea lui Abramozwitz & Stegun "Handbook of Mathematical Functions".

Cred ca te intereseaza derivata numerica, nu cea analitica smile.gif ...desi, daca exista vreo legatura intre functie si derivata ei e preferabil sa utilizezi direct valorile lui H(x) calculate in Matlab.

Uite aici niste relatii care te pot ajuta:
http://mathworld.wolfram.com/HankelFunctio...eFirstKind.html
http://mathworld.wolfram.com/HankelFunctio...SecondKind.html
Reclama
In curand... autoevolution.ro

Teste, stiri, ghiduri, jurnale, forum si multe altele!
Aceasta este o versiune simplificatã a paginii originale. Pentru a vizita versiunea originala click aici.