|
|
Matlab nachkommastellenzahl erweitern |
|
Mathe123 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.03.2017, 08:31
Titel: Matlab nachkommastellenzahl erweitern
|
|
Hallo
ich hab schon verschiedene beiträge gelesen und ausprobiert aber nichts funktioniert
ich würde gerne eine rechengenauigkeit von 10^-40 haben. wie bekomme ich das hin?
die funktion soll in einer schleife mit verschiedenen werten berechnet werden
sqrt(pi/2)*erf(((y(i)-sigmawb(i))/sigma)/sqrt(2))+sqrt(pi/2)
|
|
|
|
|
Mathe123 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.03.2017, 08:33
Titel:
|
|
was ich unter anderem schon ausprobiert habe :
format long, mit vpa also symbolischen variablen, format e und diesen befehl str_e = sprintf('%0.5E',q1) leider hat nichts funktioniert
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 27.03.2017, 15:57
Titel:
|
|
Hallo Mathe123,
Das Standard-Format
double
verwendet etwa 15 signifikante Stellen. So lange die Werte klein sind, ist eine absolute Genauigkeit von 10^-40 kein Problem damit, eine relative Genauigkeit aber nicht.
"format long, format e und sprintf" ändern daran gar nichts. VPA aber schon, denn das ist das Mittel der Wahl. Bitte erkläre, warum das für Dich nicht funktioniert.
Gruß, Jan
Zuletzt bearbeitet von Jan S am 31.03.2017, 09:30, insgesamt einmal bearbeitet
|
|
|
mathe123 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.03.2017, 07:21
Titel:
|
|
Naja es gibt halt nicht die zahl aus die ich ausrechne wenn ich es zum Beispiel bei Wolfram Alpha eingebe :/
es ändert leider gar nichts an der ausgabe
|
|
|
mathe123 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.03.2017, 08:15
Titel:
|
|
Ich habe als Beispiel die funktion integriert und die werte direkt eingesetzt
test=vpa(sqrt((pi/2))*erf((-106.45)/sqrt(2)) - sqrt((pi/2))*erf((-inf)/sqrt(2)))
hier kommt null raus und bei wolfram alpha kommt 2.22 mal 10 ^-16 raus
eigentlich lasse ich das ganze ja über eine funktion mit symbolischen variablen laufen. bei dem test hier ist vpa vermutlich nutzlos aber dennoch kommt auch über die funktion nichts anderes heraus also die null
hier der funktioonsaufruf
wert=vpa(eval(int(funktion1, -inf,-106.45)))
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 31.03.2017, 09:35
Titel:
|
|
Hallo mathe123
Hier werden die Werte zunächst im DOUBLE-Format berechnet und danch per VPA mit mehr Stellen angezeigt. Sinnvoll wäre, die Berechnungen gleich mit symbolischen Variablen durchzuführen, denn das Problem liegt ja nicht in der Anzeige des Wertes, sondern in der Berechnung. Schaue Dir die Beispiele zum
vpa
Befehl an.
Bei Wolfram bekommst Du 2.22e-16? Interessant. Das ist genau die kleinste Zahl, die man zu double(1.0) addieren kann, ohne dass die begrenzte Genauigkeit das Ergebnis unverändert lässt. Siehe
eps
. Vermutlich handelt es sich also bei der Ausgabe in Wolfram Alpha lediglich um einen Rundungsfehler.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|