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

Anwendung von fSolve-Funktion auf große Anzahl von GLS

 

MoBrock
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 17.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.11.2016, 13:20     Titel: Anwendung von fSolve-Funktion auf große Anzahl von GLS
  Antworten mit Zitat      
Hallo zusammen,

ich brauche mal dringend einen Denkanstoß von euch. Wink

Ich habe mir eine Matrix (2x16 sym) generiert in der Ausdrücke in Abhängigkeit von x und y stehen. Jeweils eine Spalte der Matrix soll 'Nullgesetzt' werden und anschließend eine Lösung für dieses nichtlineare GLS gefunden werden.

Hierfür benutze ich, wie folgend dargestellt, die fsolve-Funktion.
Zur Zeit löse ich das Problem, indem ich manuell die erste Spalte in eine Funktion schreibe und x durch x(1) und y durch x(2) ersetze.

Das sieht (gekürzt) so aus:
Code:
function [ F ] = root2d( x )
 
F(1)=((2*x(1) - 9800)*(((x(1) - 4900)^2 + x(2)^2)^(1/2) - ..... ;
F(2)=((2*x(2) - 13600)*(((x(2) - 6800)^2 + x(1)^2)^(1/2) - ..... ;
 
end


und wird anschließend mit entsprechendem Startwert aufgerufen:
Code:

x0=[0 0];
ergebnis=fsolve(@root2d, x0)
 


Ich brauche nun eine Vorgehensweise, um alle 16 Gleichungssysteme aus meiner Matrix "auf Knopfdruck" lösen zu können.

Mein erster Ansatz sah in etwa so aus:
Code:

function [ F ] = root2d( x )

x=x(1); %Deklarieren von x(1) und x(2)
y=x(2);

F(1)=Matrix(1,1) %Auslesen aus der (16x2 sym) "Gleichungs-Matrix"
F(2)=Matrix(1,2)
 
end

Ist jedoch nicht zielführend.



Wäre für einen Ansatz/Denkanstoß sehr dankbar. Idea

Beste Grüße
Mo
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: 22.11.2016, 20:49     Titel:
  Antworten mit Zitat      
Hallo,

reproduzierbare Beispiele sind generell einfacher nachvollziehbar.
Wenn ein Beispiel nicht reproduzierbar ist, dann sind Aussagen wie "nicht zielführend" weniger hilfreich, weil man ja nicht nachvollziehen kann, wo das Problem liegt.

Meine Vermutung wäre, dass du für fsolve die symbolischen Ausdrücke in numerische umwandeln musst, z.B. mit matlabFunction:

Code:
syms x y
z = [x^2 + y^2, x*y];
z = matlabFunction(z)


Grüße,
Harald
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 - 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.