|
|
Umwandlung von "sym" zu "double" |
|
Simon__ |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 06.06.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.06.2018, 21:16
Titel: Umwandlung von "sym" zu "double"
|
 |
|
 |
|
Hallo,
ich komme aktuell bei meinem Programm nicht weiter. Ich möchte ein Programm schreiben, dass die Bogenlänge jeder beliebigen Formel ausrechnen kann.
Dazu möchte ich mittels "diff" die 1.Ableitung bestimmen und diese dann mittels "integral" integrieren um so die Bogenlänge zu erhalten.
Allerdings erhalte ich folgenden Fehler:
Zitat: |
Error using integralCalc/finalInputChecks (line 511)
Input function must return 'double' or 'single' values. Found 'sym'.
Error in integralCalc/iterateScalarValued (line 315)
finalInputChecks(x,fx);
Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 8
Q = integralCalc(fun,a,b,opstruct);
Error in bogenl_formel_ (line 12)
s=integral(fun,a,b)%Berechnung der Bogenlänge
|
Wenn ich das richtig verstehe liegt der Fehler darin, dass "diff" mir ein Ergebnis vom Datentyp "sym" liefert, ich allerdings zum weiterrechnen "double"/"single" benötige. Verstehe ich das richtig? Und falls ja, habt ihr eine Idee wie ich das Programm zum laufen bekomme?
Anbei noch der akutelle Code.
Vielen Dank im Voraus.
Gruß Simon
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.497
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 29.06.2018, 00:11
Titel:
|
 |
Hallo,
ich würde hier
int
statt
integral
verwenden.
Grüße,
Harald
|
|
|
Simon__ |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 06.06.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.06.2018, 17:10
Titel:
|
 |
Schon mal vielen Dank Harald! Damit funktioniert es.
Allerdings wird mir das Ergebnis in der Form: log(2305^(1/2) + 48)/16 + 3*2305^(1/2) angezeigt. Gibt es einen Befehl um eine "normale" Dezimalzahl zu erhalten?
Gruß Simon
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.497
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 29.06.2018, 17:26
Titel:
|
 |
|
|
Simon__ |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 06.06.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.07.2018, 22:06
Titel:
|
 |
Herzlichen Dank! Mit
double
funktioniert es einwandfrei.
Nur nochmal zum Verständnis: Worin liegt nun genau der Unterschied zwischen
int
und
integral
? Warum funktioniert es hier nur mit
int
?
Gruß Simon
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.497
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.07.2018, 22:12
Titel:
|
 |
Hallo,
integral integriert numerisch und benötigt die Funktion als Function Handle.
int integriert symbolisch, Input ist ein symbolischer Ausdruck.
Grüße,
Harald
|
|
|
|
|
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 - 2025
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.
|
|