|
Autor |
Bruchzahl als Dezimalzahl darstellen/ MATLAB |
|
johncurter
Neu  Dabei seit: 14.01.2019 Mitteilungen: 1
 | Themenstart: 2019-01-14
|
Hey, ich hab da mal eine Frage.
Da ich gerne das Volumen eines Symmetrischen Rotationskörper errechnen wollte, habe ich zunächst eine Punktewolke in excel erstell. Da man das Volumen eines Rotationskörper über das PI* int((f(x))^2,x,a,b) berechnet habe ich nun die Punkte oberhalb der X-Achse in Matlab geladen.
Anschließend habe ich aus den zwei Vektoren ein Polynom über den Befehl Polyfit erstellt (hier kam auch eine Fehlermeldung, die ich nicht verstehen konnte :Warning: Polynomial is badly conditioned. Add points with distinct X values, reduce the degree of the polynomial, or try centering and scaling as
described in HELP POLYFIT.
> In polyfit (line 79) ). Dann wollte ich das ganze mal über die Int funktion berechnen lassen und es kam ein extrem großer Bruch dabei raus. :/
Nun die Frage:
Kann ich mit Matlab den ausgegebenen Wert in eine Dezimalzahl umwandeln lassen ?
Vielen Dank
|
Profil
|
Buri
Senior  Dabei seit: 02.08.2003 Mitteilungen: 46882
Wohnort: Dresden
 | Beitrag No.1, eingetragen 2019-01-14
|
HI johncurter,
beliebige Ausgabefunktionen liefern das Ergebnis in dezimaler Form, es ist also nichts weiter zu tun, als den richtigen Ausgabebefehl hinzuschreiben, dazu muss man sich mit den Ausgabemöglichkeiten vertraut machen.
Gruß Buri
|
Profil
|
Kitaktus
Senior  Dabei seit: 11.09.2008 Mitteilungen: 7234
Wohnort: Niedersachsen
 | Beitrag No.2, eingetragen 2019-01-14
|
Matlab gibt ein Ergebnis als (Nährungs-)Bruch aus, wenn man "format rat" eingegeben hat. Durch Eingabe des Befehls "format" wird wieder auf die Default-Ausgabe zurückgeschaltet. Für "normale" (float-)Zahlen ist das das "format short".
Alternativ kann man aber auch auf ein konkretes anders Format umschalten (z.B. format long g, format short eng, format hex, format bank).
Zu Deiner Fehlermeldung von polyfit.
Die Funktion hat kein prinzipielles Problem, ein Polynom auszurechnen, aber mit Deinen Daten ist irgendwas nicht in Ordnung. Die Fehlermeldung entsteht z.B., wenn man zu wenige verschiedene x-Werte hat, oder wenn man große Werte hat, die aber nahe beieinander liegen (Problem der Auslöschung).
Du schreibst, dass Du die Int-Funktion benutzt hast. Welche meinst Du da? Meine Matlab-Version sagt:
INT Convert a FILTSTATES.CIC object to an integer matrix.
Mit Integration hat das nichts zu tun!?
|
Profil
| Folgende Antworten hat der Fragensteller vermutlich noch nicht gesehen. |
majoka
Senior  Dabei seit: 25.02.2014 Mitteilungen: 814
 | Beitrag No.3, eingetragen 2019-01-14
|
Wenn möglich immer ein Minimalbeispiel angeben. Sonst kann man nur raten.
Ich vermute der "int"-Befehl ist aus der Symbolic Math Toolbox. Dieser Befehl wird hier beschrieben. Ich habe diese Toolbox nicht verfügbar und kann daher nur auf die Matlab-Hilfe verweisen.
Vielleicht versuchst Du es zunächst mal mit einer Funktion deren Ergebnis man bereits kennt. Hier ein Beispiel für das Kugelvolumen ohne Verwendung der Symbolic-Toolbox:
\sourceon Matlab
clear all
clc
x = -1 : 0.1 : 1;
n = numel(x);
% Halbkreis
f = @(x) sqrt(1-x.^2);
% Erzeugung Punktwolke
f_wolke = f(x) + 0.1*randn(1,n);
% Fit mit Polynom 4. Grades
p = polyfit(x,f_wolke,4);
f_fit = @(x) polyval(p,x);
% Berechnung Volumen mittels Rotationskoerper (Fit-Funktion)
integral(@(x) pi*f_fit(x).^2,-1,1)
% Berechnung Volumen mittels Rotationskoerper (Kreisgleichung)
integral(@(x) pi*f(x).^2,-1,1)
% Berechnung Volumen mittels Formelsammlung
V = 4/3*pi
figure(1)
plot(x,f_wolke,'r',x,f_fit(x),'b',x,f(x),'gr')
legend('Wolke','fit','Kreis')
\sourceoff
|
Profil
|
johncurter wird per Mail über neue Antworten informiert. |
|
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen. Lesen Sie die
Nutzungsbedingungen,
die Distanzierung,
die Datenschutzerklärung und das Impressum.
[Seitenanfang]
|