WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Funktion zweier Variabler plotten

 

Bene

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2007, 00:29     Titel: Funktion zweier Variabler plotten
  Antworten mit Zitat      
Hallo,

ich will eine Funktion plotten aber leider komm ich nicht zum gewünschten Ergebnis. Ich weiss was raus kommen muss aber komme da leider nicht hin. Also meine Fkt ist f(u,t)=(2u-u^2)*exp(-t^2)

Habe eine Matrix

[u,t]=meshgrid(-2:.1:2,-2:.1:2);
z=(2*u-u^2)*exp(-t^2);
Mesh(u,t,z);

aber da müsste man mehr sehen. Beispiel habe ich von der Uni-Stuttgart

http://mo.mathematik.uni-stuttgart.de/kurse/kurs4/seite25.html

>> [X,Y]=meshgrid(-2:.1:2,-1:.1:1);
>> Z=X.*exp(-X.^2-Y.^2);
>> mesh(X,Y,Z);

Aber wieso da bei den x und y ein . mit dran ist weiss ich nicht, hat bei mir aber für meine Fkt nichts gebracht. Kann mir da mal evt jemand sagen wieso das so ist? Und weshalb meine Matrix gleich sein muss, und die aus dem Bsp nicht?

Danke
Bene


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 17.12.2007, 10:52     Titel:
  Antworten mit Zitat      
Hallo Bene,

ich kann jedenfalls erklären, was die Punkte bedeuten und warum du sie wohl auch brauchst: Bei Matrizen bedeutet * im Normalfall, dass die Matrizen multipliziert werden sollen. Manchmal möchte man aber auch eine elementweise Multiplikation durchführen - das zeigt man Matlab, indem man einen Punkt vor den * setzt. Also

Code:
(A*B)_ik =sum(a_ij*b_jk)
(A.*B)_ik = a_ik*b_ik


oder mit Zahlen

Code:
[1 2;3 4] * [1 1;1 1] = [3 3;7 7]
[1 2;3 4] .* [1 1;1 1] = [1 2;3 4]


In deinem Fall möchtest Du die Quadrierung von u und t in jedem Element und nicht matrixweise, also

Code:
z=(2*u-u.^2)*exp(-t.^2);


Dass man "zu wenig" sieht, könnte daran liegen, dass Du die Intervallgrenzen aus dem Beispiel übernommen hast. u und t sind jeweils auf dem Interval [-2,2] gegeben. Du kannst in dem meshgrid-Befehl ja mal mit anderen Größen und Schrittweiten herumprobieren. Zum Beispiel

Code:
[u,t]=meshgrid(-20:0.5:20,-20:0.5:20);


erzeugt ein Gitter über [-20,20]x[-20,20] mit Punkten im Abstand von 0.5. Wenn Du in anderer Weise "mehr sehen" möchtest, beschreib das mal näher.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.