|
|
Matlabanfänger: Numerische Integration |
|
Himalaya |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2012, 00:45
Titel: Matlabanfänger: Numerische Integration
|
|
|
|
|
Hallo zusammen!
Ich beschäftige mich ganz frisch mit Matlab und versuche mich gerade an einer Aufgabe. Aber ich scheiter letztendlich an der (numerischen) Integration einer Funktion.
Da ich an sehr vielen Stellen große Fragezeichen im Kopf habe, poste ich erstmal meinen Code und stelle dann Fragen:
Jetzt möchte ich das Integral von q von t=0 bis t=2pi berechnen. Ich habe es zuerst mit der Matlab-Funktion int versucht, aber dann habe ich die MEldung bekommen, dass es nicht symbolisch berechnet werden kann. Also habe ich nach numerischen Integrationsverfahren gesucht und bin dann an den Matlab-Funktionen trapz und quad gescheitert. Bei quad sieht es dann so aus (zu integrierende Funktion ist sqrt((xh1^2+yh1^2)) ):
Fragen:
1)
Ist meine Grundidee das t als Variable komplett mitzuschleppen so richtig umgesetzt und möglich?
2)
Ich verstehe das Grundkonzept von Matlab noch nicht so wirklich. Es baut ja auf Matrizen auf. Wenn ich jetzt t nicht als Variable mitschleppe, sondern sage t=0:2*pi und dann z.B. xh ausgebe, dann berechnet er mit sechs konkrete Werte. Wie habe ich das zu deuten?
Und zerlegt er mir das Intervall [0;2*pi] nur in 6 Werte? Das ist ja recht wenig. Müsste man dann bei der Integration nachher mehr Unterteilungen angeben?
3)
Aufbauend auf dem Unverständnis mit der MAtrizen-Arbeitsweise:
Bei manchen Operatoren muss man einen Punkt setzen, damit das Ganze richtig Berechnet wird. Zum Beispiel sehe ich oft sowas wie "x.^2". Muss ich sowas bei meiner Rechnung beachten, und was genau sagt der Punkt dann aus?
Ich weiß, dass sind alles absolute Anfängerfragen, aber je mehr ich googel und in Foren lese, desto weniger verstehe ich. Das Grundkonzept muss mir erst einmal klar werden.
Für Antworten bedanke ich mich schon einmal !
|
|
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 16.04.2012, 09:54
Titel:
|
|
zu1. versuch mal
zu 2.
bei 0:2pi zählt er automatisch in einer schritten. wenn du einen anderen abstand willst musst du den angeben oder den bereich mit linspace unterteilen
zu 3.
der .^ operator beziht sich darauf das elemtweise vorgegangen wird.
andernfalls wäre es zb matrix multiblikation.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 16.04.2012, 10:00
Titel:
|
|
Hallo,
wenn ein symbolischer Ausdruck in ein Function Handle umgewandelt werden soll, kann auch der Befehl matlabFunction hilfreich sein.
Grüße,
Harald
|
|
|
Himalaya |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2012, 10:19
Titel:
|
|
|
|
|
Hallo
Danke für die schnelle Antwort. Hab gerade kein Matlab zur Hand und werde es später ausprobieren.
Kannst du mir diese Zeile kurz erläutern?
Ich hatte den @-Operator in meinem Code einfach übernommen aus einem Forum.
Soweit ich das gerade gegoogelt habe, kann man mit dem @-Operator eine Funktion definieren (in diesem Falle xh2), die sich dann "sehr einfach" wie eine Variable behandelt werden kann? Klingt zunächst logisch, da ich ja nachher in dem Wurzelterm die Funktionen xh2 und yh2 einsetze. Also kreiere ich eine neue Funktion xh2 mit der Variablen t. Diese neue Funktion bezieht sich auf die Funktion xh1 bzw übernimmt diese und ersetzt in xh2 t als neue symbolische Variable?
Könnte man das so grob sagen?
zu 3)
Woher weiß ich, wann ich den Punkt setzen muss, also in diesem Falle z.B. xh2.^2.
Einfach weil ich eben keine Matrizenmultiplikation durchführen möchte? Dann müsste ich bei jeder Multiplikation von Funktionswerten (in diesem Falle sind es ja die Ergebnisse von xh^2) diesen Punkt setzen, da er sonst eine Matrizenmultiplikation durchführt.
|
|
|
Himalaya |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2012, 23:41
Titel:
|
|
Hallo,
also das mit der quad-Funtion hat super geklappt. Zumindest kommt ein Ergebnis raus
Um ein numerisches Integrations-Verfahren komme ich bei meinen Funktionen ja wahrscheinlich nicht herum.
Kann man mit der quad-Funktion auch derart integrieren, dass das Ergebnis der Integration in Abhängigkeit von t ausgegeben wird? Also dass t noch im Ergebnis als Buchstabe steht?
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 17.04.2012, 10:19
Titel:
|
|
|
|
Himalaya |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.04.2012, 17:34
Titel:
|
|
Danke!
Aber bei meinen zu integrierenden Funktionen sagt er bei der Verwendung von int, dass er das nicht symbolisch kann. Daher bin ich ja zu quad gewechselt.
Oder kann ich es trotzdem mit int machen? Vielleicht mit einem "Trick"?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.04.2012, 19:19
Titel:
|
|
Hallo,
"numerisch" und "Buchstaben enthalten" ist widersprüchlich. So einen Trick kann es nicht geben.
Du kannst höchstens eine Tabelle aufstellen, und für verschiedene Werte von t das Integral berechnen lassen.
Grüße,
Harald
|
|
|
Himalaya |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.04.2012, 21:32
Titel:
|
|
Hallo,
ja da hast du natürlich Recht: Mathematisch macht das gar keinen Sinn und es sind zwei völlig verschiedene Ansätze.
Aber ich bin auf der Suche nach einer Möglichkeit die Fläche in Abhängigkeit von t darzustellen. Und das möchte mit mit int halt nicht.
Ich muss das ganze nochmal überdenken. Letztendlich soll das ganze noch geplottet werden und sich die berechnete Fläche der Funktion in Abhängigkeit des Parameters t dann visuell einfärben.
Für einen Anfänger schon anspruchsvoll vermutlich.
Vielleicht kannst du mir eine vorerst letzte kronkretere Frage beantworten:
Wenn ich die Fläche, also die integrierte Funktion, formell in Abhängigkeit von t darstellen möchte und matlab das mit int nicht schafft, gibt es keine weitere Möglichkeit?
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 18.04.2012, 07:35
Titel:
|
|
versteh immernoch nicht warum du es dann nicht symbolisch machst
|
|
|
|
|
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.
|
|