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

numerische Lösung einer Gleichung

 

paxxie
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 14:14     Titel: numerische Lösung einer Gleichung
  Antworten mit Zitat      
Hey,

ich will derzeit eine Gleichung numerisch lösen, habe es jedoch noch nie davor gemacht u bin leider langsam am Ende meiner Ideen.
Das hier ist mein bisher versuchter Code
Code:

C=1e-5;
G=1;
G_2ableitung=2.5e-11;
omega=0.1;
RR=@(R)(2.*C(1).^2.*R.*(G(1).*R+1).*(-3.*C(1).^2.*R.^2.*omega.^2+G(1).^2.*R.^2+2.*G(1).*R+1))./(C(1).^2.*R.^2.*omega.^2+G(1).^2.*R.^2+2.*G(1).*R+1).^3-G_2ableitung
R=fsolve(RR,10)

Das hier ist das erste Problem
Warning: Trust-region-dogleg algorithm of FSOLVE cannot handle non-square systems; using Levenberg-Marquardt algorithm instead.

Und leider ist die Lösung falsch. Dadurch, dass G_2ableitung so klein ist bricht das Lösungsverfahren zu früh ab. Die Lösung ist damit 10 anstatt der Richtigen Lösung 1.

Vielleicht könnt ihr mir ja weiterhelfen.
Vielen Dank schon im Vorraus.
Philipp

Zuletzt bearbeitet von paxxie am 06.02.2013, 14:24, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.02.2013, 14:21     Titel:
  Antworten mit Zitat      
Hallo,

welchen Wert hat omega?

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
paxxie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 14:24     Titel:
  Antworten mit Zitat      
Entschuldige, das ging wohl beim Rauskopieren unter. Ist nachgetragen
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.02.2013, 14:28     Titel:
  Antworten mit Zitat      
Code:

clc
C=1e-5;
G=1;
G_2ableitung=2.5e-11;
omega=.1;
RR=@(R)(2.*C(1).^2.*R.*(G(1).*R+1).*(-3.*C(1).^2.*R.^2.*omega.^2+G(1).^2.*R.^2+2.*G(1).*R+1))./(C(1).^2.*R.^2.*omega.^2+G(1).^2.*R.^2+2.*G(1).*R+1).^3-G_2ableitung;
options = optimset('TolFun',eps);
R=fsolve(RR,10,options)

t=linspace(0,5);
y=RR(t);

plot(t,y)
 


Der plot soll verdeutlichen, dass es zwei Nullstellen gibt.
Private Nachricht senden Benutzer-Profile anzeigen
 
paxxie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 14:34     Titel:
  Antworten mit Zitat      
Das war der Grund warum ich mit dem Startwert von 10 von "oben" kommen wollte. Warum wird mir dennoch kein Wert ausgegeben?

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.02.2013, 14:35     Titel:
  Antworten mit Zitat      
Wieso, R ist doch 1, wie von dir erwartet?!
Private Nachricht senden Benutzer-Profile anzeigen
 
paxxie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 14:39     Titel:
  Antworten mit Zitat      
das ist die Antwort bei mir

Equation solved at initial point.

fsolve completed because the vector of function values at the initial point
is near zero as measured by the selected value of the function tolerance, and
the problem appears regular as measured by the gradient.

R=10

was mach ich noch falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.02.2013, 14:44     Titel:
  Antworten mit Zitat      
Seltsam, ich habe es mit Octave berechnet. Hier eine alternative Definition der Funktion:

Code:

RR=@(R) 1E10*((2.*C(1).^2.*R.*(G(1).*R+1).*(-3.*C(1).^2.*R.^2.*omega.^2+G(1).^2.*R.^2+2.*G(1).*R+1))./(C(1).^2.*R.^2.*omega.^2+G(1).^2.*R.^2+2.*G(1).*R+1).^3-G_2ableitung);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
paxxie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 14:49     Titel:
  Antworten mit Zitat      
ja es einfach in eine andere Größenordnung zu heben war ich grad auch dran^^
funktioniert auch, nur leider bekomme ich so die andere Nullstelle. Gibt es da noch einen Trick?

Tausend Dank für deine Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.02.2013, 14:51     Titel:
  Antworten mit Zitat      
Ich komme mit 1E10 auf die 1. Es geht auch nicht anders. Das Maximum ist durch die Skalierung nicht betroffen. Was kommt denn bei dir raus? Ich bin verwundert...
Private Nachricht senden Benutzer-Profile anzeigen
 
paxxie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 14:54     Titel:
  Antworten mit Zitat      
R=0.2361

also die 2. Nullstelle
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.02.2013, 14:55     Titel:
  Antworten mit Zitat      
Mit der Skalierung kannst du Zeile
Code:

options = optimset('TolFun',eps);
 

natürlich weglassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.02.2013, 14:58     Titel:
  Antworten mit Zitat      
Also hier nochmal mein Code:

Code:

clc
C=1e-5;
G=1;
G_2ableitung=2.5e-11;
omega=.1;
RR=@(R) 1E10*((2.*C(1).^2.*R.*(G(1).*R+1).*(-3.*C(1).^2.*R.^2.*omega.^2+G(1).^2.*R.^2+2.*G(1).*R+1))./(C(1).^2.*R.^2.*omega.^2+G(1).^2.*R.^2+2.*G(1).*R+1).^3-G_2ableitung);
R0=fsolve(RR,10)
 


Es kann eigentlich nichts anderes als 1 herauskommen für R0.
Private Nachricht senden Benutzer-Profile anzeigen
 
paxxie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 15:02     Titel:
  Antworten mit Zitat      
Das ist echt dubios. Wenn ich diesen Code 1:1 kopiere kommt R0=0.2361 raus.
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.02.2013, 15:05     Titel:
  Antworten mit Zitat      
Das ist wahrlich dubios! Gib mal die Iterationen mit aus:

Code:

options = optimset('Display','iter');
R0=fsolve(RR,10,options)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  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 - 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.