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

Mit fsolve eine Gleichung numerisch lösen

 

Nikita123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2009, 18:36     Titel: Mit fsolve eine Gleichung numerisch lösen
  Antworten mit Zitat      
Hallo,
ich habe hier eine Gleichung die ich von Hand nicht mehr lösen kann. Deswegen möchte ich das mit Matlab numerisch lösen.

Gleichung sieht etwas vereinfacht so aus:
10*log10(10^(a+x)+10^(b))+c-x=0
Also b und c sind bekannte Variablen, a wäre ein Vektor:
a=0.1:0.1:2;
und z.B.:
b=2;
c=3;

und nach x möchte ich gerne auflösen.

Folgendes habe ich bisher erreicht:
1)a nicht als Vektor definieren sondern einen festen Wert zuweisen, dann die Funktion plotten und in der Nullstelle ablesen

2)mit fsolve:
x=fsolve(@(x) 10*log10(10^(a+x)+10^(b))+c-x,5)

dabei habe ich diese Zeile so verstanden, dass @(x) angibt nach welcher Variable ich lösen will, und dass die 5 einen Startwert angibt bei dem der Algorithmus anfangen soll zu suchen.

Nun kommen dabei je nach Startwert Lösungen à la

60.2001 + 0.0000i

oder

61.0132 +13.6438i

usw. raus.

Also meine Probleme sind:
a) es kommen für alle Werte für a zwischen 0.1 und 2 das gleiche Ergebnis raus. Sollte eigentlich nicht sein.
b) Die Ergebnisse sind je nach Startwert teilweise rein imaginär. Ich möchte aber überhaupt keine komplexen Ergebnisse.
c) Vom Sinn der Gleichung her darf für jeden Wert von a nur ein gültiges reales Ergebnis rauskommen.

Bevor das Ergebnis ausgegeben wird sagt Matlab noch:

Code:

Warning: Default trust-region dogleg method of FSOLVE cannot
 handle non-square systems; using Gauss-Newton method instead.
> In fsolve at 250
  In UHFRange4_solve at 55
Optimization terminated: directional derivative along
 search direction less than TolFun and infinity-norm of
 gradient less than 10*(TolFun+TolX).
 


Wäre echt nett wenn ihr mir da helfen könntet. Jemand ne Idee wie da weiter vorzugehen ist?

Viele Grüße
Nikita


Nikita123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2009, 19:15     Titel:
  Antworten mit Zitat      
Übrigens, die Funktion geplottet mit feste Vorgaben für a sähe so aus
1.Bild a=0.1
2.Bild a=1
3.Bild a=3

3.jpg
 Beschreibung:

Download
 Dateiname:  3.jpg
 Dateigröße:  35.91 KB
 Heruntergeladen:  1570 mal
2.jpg
 Beschreibung:

Download
 Dateiname:  2.jpg
 Dateigröße:  28.86 KB
 Heruntergeladen:  1503 mal
1.jpg
 Beschreibung:

Download
 Dateiname:  1.jpg
 Dateigröße:  28.88 KB
 Heruntergeladen:  1441 mal
 
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.