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

Visualisierung einer inhomogenen DGL 2. Ordnung

 

Ovid
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 81
Anmeldedatum: 25.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2011, 21:23     Titel:
  Antworten mit Zitat      
Ah, okay...jetzt versteh ich das so allmählich...

dy ist mein Rückgabewert;
vdp1000 ist der Name der Funktion;
(t,y) sind meine Input-Werte

Und bei der Zeile [T,Y] werden diesen Werten die Funktion mit den Parametern von t und y übergeben, wobei t ein Vektor ist mit [0 3000] und y ein Vektor ist mit [2 0].

Danach plottet Matlab T und Y...was bedeutete nochmal der Doppelpunkt und die 1 nach dem Komma...? =>(:,1) ?

Habt erbarmen, ist schon spät...-.-
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 01.07.2011, 21:45     Titel:
  Antworten mit Zitat      
(:,1) = Alle Elemente der 1. Spalte
Private Nachricht senden Benutzer-Profile anzeigen
 
Ovid
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 81
Anmeldedatum: 25.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2011, 21:53     Titel:
  Antworten mit Zitat      
Okay, dann habe ich das jetzt erstmal verstanden...
Aber mit der DGL muss ich erstmal nochmal schauen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Ovid
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 81
Anmeldedatum: 25.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2011, 22:10     Titel:
  Antworten mit Zitat      
Ich habe mal mit meinen Komilitonen geredet, also ich kann doch auch die DGL symbolich lösen, mit dsolve. Das ginge doch erstmal dann so:

[code]
dsolve('D2y+(2*Dy)-3*y=3*(x^2)-4*x','x')
[/code]

Nur, wie kann ich das ohne Startwerte jetzt plotten?
Bei der Eingabe:
[code]
ezplot(ans)
[/code]

gibts nur diese Fehlermeldung...:

[code]
??? Error using ==> char
Cell elements must be
character arrays.

Error in ==> ezplot at 158
fmsg = char(f);

Error in ==> sym.ezplot at
45
h = ezplot(char(f));
[/code]

Was meint Matlab jetzt detailiert damit...?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.07.2011, 10:35     Titel:
  Antworten mit Zitat      
Hallo,

auch dieser Ansatz ist möglich.
Allerdings musst du in der Lösung der DGL die Konstanten angeben, z.B. so:

Code:
sol = dsolve('D2y+(2*Dy)-3*y=3*(x^2)-4*x','x')
syms C2 C3
sol12 = subs(sol, {C2, C3}, {1, 2})
ezplot(sol12)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Ovid
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 81
Anmeldedatum: 25.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2011, 13:29     Titel:
  Antworten mit Zitat      
Okay, nur was bedeutet subs und das {1,2} ?

Grüße

Ovid
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.07.2011, 14:04     Titel:
  Antworten mit Zitat      
Hallo,

was subs bedeutet, kannst du leicht in der Hilfe nachschlagen:
Code:

Die Befehle sind sogar hier im Forum verlinkt, so dass du eigentlich nur draufklicken musst.

Kurz gesagt: subs steht für substitute (ersetzen).
In dem Fall werden C2 = 1 und C3 = 2 eingesetzt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Ovid
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 81
Anmeldedatum: 25.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2011, 14:29     Titel:
  Antworten mit Zitat      
Aber wieso wird für C2 und C3 was eingesetzt? Ich habe doch keine Startwerte? Kann Matlab das nicht symbolisch plotten, sprich nur die allgemeine Lösung mit einem, ich glaube das nennt man Zeichenbereich...?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.07.2011, 17:38     Titel:
  Antworten mit Zitat      
Hallo,

Wie soll so ein symbolischer Plot denn aussehen? 4D??
Startwerte wirst du wohl brauchen. Wenn du keine hast, kannst du ein paar Startwerte oder Parameter wählen und jeweils die Lösungen plotten, um eine Art Lösungsschar zu bekommen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 03.07.2011, 00:57     Titel:
  Antworten mit Zitat      
du verstehst noch nicht mal den mathematischen Hintergrund... klar könnte matlab auch das plotten, wenn auch du den Plot weder erstellen noch verstehen könntest. Das Problem ist doch nicht der plot...

Die sache ist die, dass man dass einfach nicht so rechnen kann (und matlab auch nicht - dass ist der Teil mit dsolve). Deswegen brauchst du Startwerte.
http://de.wikipedia.org/wiki/Anfangsbedingung
http://de.wikipedia.org/wiki/Anfangswertproblem
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Ovid
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 81
Anmeldedatum: 25.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2011, 12:20     Titel:
  Antworten mit Zitat      
Ah, okay...dann werd ich das nachher mal ausprobieren, danke auf jeden Fall erstmal bis hierhin...^^
Private Nachricht senden Benutzer-Profile anzeigen
 
Ovid
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 81
Anmeldedatum: 25.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2011, 13:21     Titel:
  Antworten mit Zitat      
hm...er gibt immer noch einen Fehler aus:

[code]
??? Error using ==> char
Cell elements must be
character arrays.

Error in ==> ezplot at 158
fmsg = char(f);

Error in ==> sym.ezplot at 45
h = ezplot(char(f));
[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
Ovid
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 81
Anmeldedatum: 25.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2011, 13:31     Titel:
  Antworten mit Zitat      
Ah, ich weiß was los ist...

Matlab benutzt nicht mehr, aus welchen Gründen auch immer, C2 und C3, sonder nun sind C6 und C7 seine Konstanten...

also musste ich nur bei soll12 anstelle C2 und C3, C6 und C7 benutzen und vorher C6 und C7 als syms deklarieren...^^

Aber, trotzalledem zeigt er nur eine Lösung an, wie bekomme ich eine Lösungsschar von 20 Kurven hin??
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.07.2011, 13:35     Titel:
  Antworten mit Zitat      
Hallo,

in dem du - wie bereits vorher erwähnt - über verschiedene Parameter iterierst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Ovid
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 81
Anmeldedatum: 25.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2011, 14:01     Titel:
  Antworten mit Zitat      
HaHA, ich hab einen Lösungsansatz...sehet und staunet...^^:

[code]
n=0;
for i=1:22
C(i)= n+1;
C(i+1)= n+2;
n= n+1;
end
[/code]

Ich habe eine for Schleife kreiert, die von i=1 bis 22 zählt.

Dabei erhöht sich halt der Index von den Konstanten un der darüber jeweils um 1, sowie die Werte sich auch um 1 erhöhen.

Dann habe ich deinen Code etwas umgewandelt:

[code]
sol12 = subs(sol,{C(i), C(i+1)},{(n+i), (n+i+1)})
[/code]

Um halt den Konstanten die Werte zuzuweisen...

wenn ich halt dann halt das mache:
[code]
ezplot(sol12)
[/code]

dann gibt er mir wieder die folgende Fehlermeldung zurück:
[code]
??? Error using ==> char
Cell elements must be
character arrays.

Error in ==> ezplot at 158
fmsg = char(f);

Error in ==> sym.ezplot at
45
h = ezplot(char(f));
[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2, 3  Weiter

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.