[wiskunde] taylor benadering tanh(x) in matlab

Moderators: ArcherBarry, Fuzzwood

Reageer
Berichten: 96

[wiskunde] taylor benadering tanh(x) in matlab

Hoi iedereen !

Voor een practicum-taak moet ik een taylorreeks ontwikkeling rond 0 van tanh(x) opstellen in het interval [-10,10]. Daarna moet ik voor iedere partieelsom ook de relatieve fout berekenen. Dit alles moet geïmplementeerd worden in Matlab.

Echter, bij het eerste deel loopt het al fout. Ik heb het volgende geprogrammeerd om een partieelsom van graad n te construeren en te plotten :

Code: Selecteer alles

 syms x

x = -10 : 10;

f(x) = tanh(x);

p = vectorize(taylor(f(x),n,0));

f=f(x);

p=eval(p);

plot(x,f,x,p,'r')
Bij de stap p = ... loopt mijn programma vast, en ik begrijp niet zo goed waarom. Kan iemand mij even helpen ?

Ik heb ook al geprobeerd om het commando "maple('taylor(tanh(x),x=0,n)')" te gebruiken, maar dat werktte evenmin.

Bedankt !

Berichten: 96

Re: [wiskunde] taylor benadering tanh(x) in matlab

Na dagenlang knoeiwerk heb ik eindelijk iets gevonden dat werkt.

Wanneer ik het verschil bereken tussen mijn taylorbenadering en de oorspronkelijke functie krijg ik verschillen van orde 10^8, is dit normaal?

Mijn fouten worden ook alleen maar groter naargelang ik de graad van de benadering verhoog.

Ik heb het gevoel dat hierbij iets niet klopt, maar wil toch zeker zijn voor ik verder ga knoeien met mijn code.

Gebruikersavatar
Berichten: 2.609

Re: [wiskunde] taylor benadering tanh(x) in matlab

De taylorbenadering zou exact dezelfde waarden moeten hebben binnen een bepaald interval rond het punt waarin je die uitwerkt. Hoe hoger de graad van je benadering, hoe groter dat interval waarin ze klopt.

Als je erg dicht rond 0 al verschillen van 10^8 hebt dan heb je waarschijnlijk inderdaad iets fout gedaan. Ik heb dit jaar kennis gemaakt met Matlab, maar we hebben er niet genoeg van gezien opdat ik je qua code verder zou kunnen helpen.

Plot anders eerst je originele functie en dan je benadering eens zodat je ziet of dat überhaupt al realistisch is voor je aan de foutenrekening begint?

Berichten: 96

Re: [wiskunde] taylor benadering tanh(x) in matlab

Ondertussen heb ik een klein foutje in mijn code ontdekt en ik denk dat het ondertussen min of meer klopt. Mijn plots zien er als volgt uit, ziet dit er een beetje realistisch uit ? Links heb ik de oorspronkelijke functie in het blauw geplot, de benadering in het rood en rechts staat de fout.
taylortanh.pdf
(17.48 KiB) 322 keer gedownload
Edit : In de opgave staat ook dat we moeten beschrijven wat er speciaal moet gebeuren om de fout rondom nul te berekenen, maar ik heb niet het gevoel dat er hier iets speciaals voor moet gebeuren.

Gebruikersavatar
Berichten: 2.609

Re: [wiskunde] taylor benadering tanh(x) in matlab

Je blauwe plot in de linkse kolom lijkt me niet correct. In de eerste 2 is de schaal te groot om het echt te kunnen vaststellen, maar bij die waar je y-as van -2 tot +2 gaat zou je toch duidelijker de vorm van de tanh moeten zien.

http://www.wolframalpha.com/input/?i=tanh(x) voor een grafiek. Ik vind niet zo direct hoe je grafieken plot met het forum.

Berichten: 96

Re: [wiskunde] taylor benadering tanh(x) in matlab

Op de plot die ik gepost heb is het niet zo duidelijk te zien, maar wanneer ik inzoom heeft de blauwe plot wel degelijk de vorm van een tanh(x). De grenzen zijn niet -2 en 2 maar -2*10^4 en 2*10^4, ik veronderstel dat de schaal veel te klein is om dit duidelijk te kunnen zien op deze plot. En ik veronderstelde omdat mijn fouten telkens verder en verder in mijn interval nul werden, dat alles ok was. Wanneer ik de matrix van mijn fout even laat afdrukken krijg ik ook voor drie vierde van mijn matrix als waarde 0.

Gebruikersavatar
Berichten: 2.609

Re: [wiskunde] taylor benadering tanh(x) in matlab

Ik denk wel dat het zo kan kloppen. Het groter wordende nulgebied in je foutengrafieken naarmate de graad van de benadering stijgt is al zeker positief ;)

Berichten: 96

Re: [wiskunde] taylor benadering tanh(x) in matlab

Heb net een "subtiliteit" ontdekt in de opgave van mijn opdracht. Blijkbaar moest niet de absolute maar de relatieve fout weergegeven worden. De formule is dus de absolute fout gedeeld door de exacte waarde. Maar in het punt 0 is de exacte waarde van tanh(0) 0. Hoe los ik dit op?

Gebruikersavatar
Berichten: 2.609

Re: [wiskunde] taylor benadering tanh(x) in matlab

Heb net een "subtiliteit" ontdekt in de opgave van mijn opdracht. Blijkbaar moest niet de absolute maar de relatieve fout weergegeven worden. De formule is dus de absolute fout gedeeld door de exacte waarde. Maar in het punt 0 is de exacte waarde van tanh(0) 0. Hoe los ik dit op?
Volgens mij mag je wel gewoon zeggen, "if x = 0 then rel_error = 0", omdat je de taylorveelterm rond 0 neemt gaat zelfs de eerstegraadsbenadering in het punt waar je de benadering geeft de exacte waarde geven.

Kan iemand dit misschien bevestigen?

Gebruikersavatar
Berichten: 7.556

Re: [wiskunde] taylor benadering tanh(x) in matlab

Heb net een "subtiliteit" ontdekt in de opgave van mijn opdracht.
Edit : In de opgave staat ook dat we moeten beschrijven wat er speciaal moet gebeuren om de fout rondom nul te berekenen, maar ik heb niet het gevoel dat er hier iets speciaals voor moet gebeuren.
;)

De exacte waarde is 0. De benaderde waarde is 0. Dus de absolute fout is |0-0|=0. De relatieve fout is in dit geval volgens mij gewoon niet gedefinieerd. Wellicht willen ze dat je in woorden omschrijft wat dit betekent o.i.d.? Ik weet niet of ze met 'iets speciaals' doelen op een of andere magische truc...
Never express yourself more clearly than you think.

- Niels Bohr -

Berichten: 96

Re: [wiskunde] taylor benadering tanh(x) in matlab

De exacte opgave luidt "leg uit hoe je de relatieve fout berekent in de omgeving van de oorsprong".

Misschien los ik het dan wel zo op, gewoon uitleggen dat omdat je door 0 deelt er een onbepaaldheid ontstaat en de fout niet gedefinieerd is.

Bedankt voor het snelle antwoord!

Reageer