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

Lösung geht gegen unendlich bei zu vielen Stützstellen.

 

jojo1234
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 12.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2013, 12:54     Titel: Lösung geht gegen unendlich bei zu vielen Stützstellen.
  Antworten mit Zitat      
Hallo,
ich habe eine Frage bzgl. des Differenzenverfahrens. Ist es normal, dass bei zu großer Stützstellenanzahl die Lösung irgendwas macht, nur nicht mehr gegen den exakten Wert konvergiert oder passiert das nur, wenn es falsch programmiert ist.

MfG,
Joachim
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: 14.06.2013, 13:48     Titel:
  Antworten mit Zitat      
Hallo,

"Differenzenverfahren" kann je nach Anwendung sehr unterschiedliche Dinge bedeuten. Bitte genauer erklären, um welche Art Differenzenverfahren es geht.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 12.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2013, 19:16     Titel:
  Antworten mit Zitat      
Hallo Harald,
ich habe die zentralen Differenzenformeln verwendet um die DGL zu approximieren.

y'(x)=1/(2*dx)*(yi+1-yi-1)
y''(x)=1/dx^2*(yi+1-2*yi+yi-1)
y'''(x)=1/(2*dx^3)*(yi+2-2*yi+1+2*yi-1-yi-2)
y''''(x)=1/dx^4*(yi+2-4*yi+1+6*yi-4*yi-1+yi-2)

Bei der DGL handelt es sich um:

y''''+L*y''=0

dx steht für die Schrittweite. Als Vergleich diente mit der 1. Eulerfall.

MfG,
Joachim
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: 14.06.2013, 22:35     Titel:
  Antworten mit Zitat      
Hallo,

Differenzenquotienten werden für sehr kleine Schrittweiten instabil, da dann etwa gleich große Zahlen voneinander abgezogen werden und es somit zur Auslöschung kommt.
Ein kleines Beispiel:

Code:
h = 10.^(-1:-1:-16);
dx = zeros(size(h));
for I = 1:length(h)
    dx(I) = (exp(1+h(I)) - exp(1))/h(I);
end

format shortg
[dx', dx' - exp(1)]



2.8588 0.14056
2.7319 0.013637
2.7196 0.0013596
2.7184 0.00013592
2.7183 1.3591e-05
2.7183 1.3585e-06
2.7183 1.3551e-07
2.7183 -5.1012e-08 <-- bis hierhin ist alles gut
2.7183 -2.2865e-07 <-- es wird trotz kleinerer Schrittweite schlechter
2.7183 -2.8932e-06
2.7183 -1.1775e-05
2.7183 -1.1775e-05 <-- und schlechter
2.7134 -0.0048968
2.6645 -0.053747 <-- ziemlich miserabel
2.6645 -0.053747
0 -2.7183


Grüße,
Harald

P.S.: bei den Formeln solltest du die Indizes in Klammern setzen. Sonst ist das etwas verwirrend ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
jojo1234
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 12.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2013, 11:50     Titel:
  Antworten mit Zitat      
Herzlichen Dank für die schöne Erklärung Harald, hat sich mein Verdacht also bestätigt.

P.S.: Nächstes Mal setze ich die Indizes in Klammern. =)

MfG,
Joachim
Private Nachricht senden Benutzer-Profile anzeigen
 
jojo1234
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 12.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2013, 14:06     Titel:
  Antworten mit Zitat      
Harald ich hätte noch eine Frage.
Ich habe ein lineares Gleichungssystem, in dem mehrere abhängige Gleichungen vorkommen. Gibt es einen Matlabbefehl, der mir das Gleichungssystem verkleinert oder müsste ich dies per Hand machen.

MfG, Joachim
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: 15.06.2013, 14:09     Titel:
  Antworten mit Zitat      
Hallo,

ich kann mir das nicht so ganz vorstellen. In welchem Sinne "verkleinern"? Vielleicht hilft ein Beispiel?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 12.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2013, 21:02     Titel:
  Antworten mit Zitat      
Hi Harald,
entschuldige, dass ich erst so spät antworte. Ich hatte viel zu tun am Wochenende. Hier mein Beispiel:
Ich habe 3 Gleichungen mit 5 Unbekannten, die Unbekannten hängen aber über Rand- und Übergangsbedingungen voneinander ab. Anstatt diese jetzt per Hand in die Gleichungen zu integrieren, erweitere ich einfach das Gleichungssystem um 2 Gleichungen und mache so aus einer 3x5 Matrix eine 5x5 Matrix. Jetzt zum Thema was ich mit "verkleinern" meinte. Ist Matlab in der Lage die zusätzlichen Gleichungen einzusetzen und die Matrix auf 3x3 runterzubrechen oder kann ich das nur per Hand machen?

MfG,
Joachim
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: 16.06.2013, 21:53     Titel:
  Antworten mit Zitat      
Hallo,

ein konkretes Beispiel könnte mir helfen, das zu verstehen - bis jetzt klappts nicht ;) Insbesondere: welcher Gestalt sind diese "Rand- und Übergangsbedingungen"?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 12.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2013, 18:39     Titel:
  Antworten mit Zitat      
Hi Harald,
hier einmal ganz konkret mit Zahlen.

Gleichungen:
v0+2*v1-v2+4*v3=0
v1+3*v2+v3=0

Bedingungen:
v0=0
v3-v1=0

Matrix mit Gleichungen:
A=
[1 2 -1 4;
0 1 3 1]; 2x4 Matrix, nicht lösbar.

Wird jetzt erweitert um Bedingungen:

A'=
[1 2 -1 4;
0 1 3 1;
1 0 0 0;
0 -1 0 1]; 4x4 Matrix ist lösbar.

Per Hand kann ich durch einsetzten der Bedingungen, dass Gleichungssystem auf eine 2x2 Matrix runterbrechen.

A''=
[6 -1;
2 3];

Nun wieder zu meiner Frage, kann Matlab mir das Einsetzten per Hand abnehmen und das GLS verkleinern?

MfG, Joachim
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: 17.06.2013, 19:23     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe offen gesagt nicht, warum du zwischen Gleichungen und Bedingungen unterscheidest. Die Bedingungen sind doch im Grunde auch nur Gleichungen?

Dieses Einsetzen kann ich mir nur über symbolische Berechnungen vorstellen. Allerdings verstehe ich nach wie vor nicht den tieferen Sinn des ganzen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 12.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2013, 19:44     Titel:
  Antworten mit Zitat      
Würde mich einfach nur interessieren, da kleinere Matrizen einfach schöner zum rechnen sind. Aber vielleicht rechne ich auch einfach nur zu viel analytisch. Very Happy
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: 17.06.2013, 19:49     Titel:
  Antworten mit Zitat      
Hallo,

was heißt "schöner zu rechnen"? Schneller?

MATLAB löst 1000 Gleichungen mit 1000 Unbekannten in weniger als 1 Sekunde. Besteht da wirklich Bedarf, das zu verbessern?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 12.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2013, 16:33     Titel:
  Antworten mit Zitat      
Ne auf keinen Fall. Ich wollte auch mit meiner letzten Antwort nur aussagen, dass ich daran halt noch nicht so gewöhnt bin, da ich normalerweise alles vereinfache, so weit es möglich ist. Das man das bei Matlab nicht braucht, daran muss ich mich erst noch gewöhnen.
Private Nachricht senden Benutzer-Profile anzeigen
 
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.