Auslöschung < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Berechne in Octave/Matlab [mm] \wurzel{1 + x} [/mm] - [mm] \wurzel{1 - x}
[/mm]
für x = [mm] 10^{-12}, [/mm] x = [mm] 10^{-13}, [/mm] ..., ohne daß dabei Auslöschung (d.h. Genauigkeitsverlust bei Subtraktion annähernd gleich großer Zahlen) auftritt. |
Hallo!
Ich studiere Informatik und seit neuestem müssen wir auch eine Computermathe Lehrveranstaltung besuchen. Letzte Woche wurde Octave/Matlab "vorgestellt". Naja ein paar Matrizen wurden auf die Tafel geschrieben. Nun muss ich die oben erwähnte Aufgabenstellung lösen. Bis auf das mit der Auslöschung hab ichs schon hinbekommen
Mein Ansatz bisher:
x:-12:-1:100;
function y = f(x) y = sqrt(1+x)-sqrt(1-x); end
f(10.^x) ab Hoch -16 kommt es zur Auslöschung und es erscheint nur mehr 0.0000e+000!
Aber genau das mit der Auslöschung ist der springende Punkt bei der Übung. Bin mir sicher, dass ihr mir auf die Sprünge helfen könnt.
Danke schon mal im Vorraus
lg
-----
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt
|
|
|
|
Hi,
> Berechne in Octave/Matlab [mm]\wurzel{1 + x}[/mm] - [mm]\wurzel{1 - x}[/mm]
>
> für x = [mm]10^{-12},[/mm] x = [mm]10^{-13},[/mm] ..., ohne daß dabei
> Auslöschung (d.h. Genauigkeitsverlust bei Subtraktion
> annähernd gleich großer Zahlen) auftritt.
> Hallo!
>
> Ich studiere Informatik und seit neuestem müssen wir auch
> eine Computermathe Lehrveranstaltung besuchen. Letzte Woche
> wurde Octave/Matlab "vorgestellt". Naja ein paar Matrizen
> wurden auf die Tafel geschrieben. Nun muss ich die oben
> erwähnte Aufgabenstellung lösen. Bis auf das mit der
> Auslöschung hab ichs schon hinbekommen
>
> Mein Ansatz bisher:
> x:-12:-1:100;
> function y = f(x) y = sqrt(1+x)-sqrt(1-x); end
> f(10.^x) ab Hoch -16 kommt es zur Auslöschung und es
> erscheint nur mehr 0.0000e+000!
>
> Aber genau das mit der Auslöschung ist der springende Punkt
> bei der Übung. Bin mir sicher, dass ihr mir auf die Sprünge
> helfen könnt.
>
ich denke, du sollst durch einen kleinen mathematischen kniff die ausloeschung vermeiden bzw. die ergebnisse in MATLAB mit und ohne trick vergleichen.
du sollst einen ausdruck der form $a-b$ berechnen, wobei a und b wurzelterme sind. Ein trick, diesen term numerisch stabiler zu machen, ist erweitern mit $a+b$. Du kannst dann eine binomische formel anwenden und die wurzelterme vereinfachen sich.
gruss
matthias
|
|
|
|