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

exakte lösung impulsgleichung

 

ng83
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 26.11.12
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 23.05.2014, 09:53     Titel:
  Antworten mit Zitat      
Hallo Harald,

ah!

Lt. meinem Lösungsvorschlag sieht der Plot eher so aus.
Habe ich mit dem folgenden Code hinbekommen.
Code:
syms t v(t)
vloesung = dsolve(diff(v)== I-gL*(v-EL))
figure(1)
ezplot(vloesung,[0 1500]);
pretty(vloesung)
grid on,


Das Problem ist, dass ymin=-70,ymax=30,xmin=0,xmax=25 sein sollte.
Dann bekomme ich aber nur das untere Ende von diesem Plot.
Ich sehe nicht, was falsch sein könnte, die Werte habe ich aus der Literatur.
Die Gleichung stimmt ebenfalls...
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

... was ich angesichts fehlender Definition von I, gL und EL nicht reproduzieren kann.

Die Lösung der DGL ist ja nicht das Problem, die Frage ist nur, welche Werte man einsetzt.

Willst du t auf der x-Achse haben und v auf der y-Achse, oder was?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 26.11.12
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 23.05.2014, 11:05     Titel:
  Antworten mit Zitat      
Hallo,

Code:


EL=-49;
gLbar=0.003;
I=0.1;
gL=gLbar;


syms t v(t)
vloesung = dsolve(diff(v)== I-gL*(v-EL))
figure(1)
ezplot(vloesung,[0 1500]);
pretty(vloesung)

grid on,
 


ich möchte t auf der x-Achse von 0 bis 25 und die Spannung auf der y-Achse. Letztere geht von -70 bis -30 mV.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

jetzt gibst du aber keinen Anfangswert an.

Willst du also eine Kurve (und wenn ja für welchen Anfangswert) oder willst du etwa mehrere Kurven für verschiedene Anfangswerte (und wenn ja in welchem Bereich)?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 26.11.12
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 23.05.2014, 11:18     Titel:
  Antworten mit Zitat      
Code:
EL=-49;
gLbar=0.003;
I=0.1;
gL=gLbar;


syms t v(t)
vloesung = dsolve(diff(v)== I-gL*(v-EL),v(0)==1)
figure(1)
ezplot(vloesung,[0 1500]);
pretty(vloesung)

grid on,


wie sähe denn die 2.variante aus?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.05.2014, 12:39     Titel:
  Antworten mit Zitat      
Hallo,


Zitat:
wie sähe denn die 2.variante aus?

Mit subs in einer for-Schleife verschiedene Werte für die Integrationskonstante in die Lösung einsetzen und plotten.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 26.11.12
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 23.05.2014, 13:49     Titel:
  Antworten mit Zitat      
hm.mit subs habe ich noch nicht gearbeitet. die jetzige variante wäre mir lieber...
LG Nicole
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

was neues zu versuchen schadet nicht und tut, insbesondere im Falle von MATLAB, in den seltensten Fällen weh.

Du kannst natürlich auch in einer for-Schleife mit verschiedenen Anfangsbedingungen die DGL lösen. Das wird allerdings deutlich länger dauern als nur neue Werte einzusetzen.

Wenn du einen Bereich von -70 bis -30 auf der y-Achse haben möchtest, musst du natürlich sinnvollerweise auch Anfangswerte in diesem Bereich angeben.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 26.11.12
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 23.05.2014, 15:26     Titel:
  Antworten mit Zitat      
Hallo Harald,
also ich habe jetzt die beiden varianten.
bei der variante mit den subs plottet Matlab nichts, außer das Koordinatensystem. hier habe ich auch wieder gemogelt, da t wieder auf der y-achse ist.

Code:
EL=-49;
gLbar=0.003;
I=0.1;
gL=gLbar;

syms t v(t)
vloesung = dsolve(diff(v)== I-gL*(v-EL),v(5)==-70)
figure(1)
ezplot(vloesung,[0 1500]);
pretty(vloesung)
grid on,

syms t v(t)
vloesung1 = dsolve(diff(v)== I-gL*(v-EL))
t=5;
C4=3;
subs(vloesung1),
pretty(vloesung1)
figure(2)
ezplot(vloesung1,[0 1500]),
axis([0 25 -70 30]),
grid on,
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

du siehst ja, dass sich nach dem Einsetzen an der Lösung nichts geändert hat.

Wenn du damit weiterarbeiten willst, musst du dir von subs das Ergebnis zurückgeben lassen:

Code:
EL=-49;
gLbar=0.003;
I=0.1;
gL=gLbar;

syms t v(t)
vloesung1 = dsolve(diff(v)== I-gL*(v-EL))
t=5;
C4 = 3;
vloesung2 = subs(vloesung1)
figure(2)
ezplot(vloesung2,[0 1500]),
axis([0 25 -70 30]),
grid on,


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 26.11.12
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 23.05.2014, 16:23     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich bekomme eine Fehlermeldung:
Error using ezplot (line 70)
Input must be a string expression, function name, function handle, or INLINE object.

Error in odeMethode (line 61)
ezplot(vloesung2,[0 1500]),
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.05.2014, 16:47     Titel:
  Antworten mit Zitat      
Hallo,

ich kann die Fehlermeldung auch unter R2012a nicht reproduzieren.

Allerdings war da irgendwie ein t=5 reingeraten, das wenig Sinn macht: wenn du t auch noch einsetzt, ist ja keine Funktion zum Plotten mehr übrig.

Code:
EL=-49;
gLbar=0.003;
I=0.1;
gL=gLbar;

syms t v(t)
vloesung1 = dsolve(diff(v)== I-gL*(v-EL))
C2 = 3;
vloesung2 = subs(vloesung1)
ezplot(vloesung2,[0 25])
axis([0 25 -70 30])
grid on


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 26.11.12
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 25.05.2014, 18:40     Titel:
  Antworten mit Zitat      
Hallo Harald,

wie kann ich die Skallierung ändern? Ich erhalte wieder eine Gerade, was aber nicht sein kann...

VG Nicole
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.05.2014, 21:18     Titel:
  Antworten mit Zitat      
Hallo,

mit dem axis-Befehl, den du ja die ganze Zeit schon nutzt.

Wenn man in eine Exponentialfunktion weit genug hineinzoomt, sieht es eben aus wie eine Gerade.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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 - 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.