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

nicht-lineares Gleichungssystem lösen

 

Moh
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2014, 21:12     Titel: nicht-lineares Gleichungssystem lösen
  Antworten mit Zitat      
Hallo,

ich habe eine Frage.

wie kann man so nicht-lineares Gleichungssystem lösen.

leider ich bin nur Anfänger, ich brauche Ihre Hilfe.

(Q*A*R)/d + B*V*a*(a+b)- (B*V - C*a)*(a+b)^2/2 -C/6*(a+b)^3 = 0;

(C/A+B)*(B+V/A)+C/2*V*(b^2-a^2)+(C/A+B)*(a-V/A)*exp(A/V*(a+b))=0;

wie kann ich die Gleichung nach a und b lösen. alle andere Parameter sind bekannt, aber ich will ein Programm, wo ich die auch mit verschiedene Werte eingeben kann.

danke schön am voraus Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

mit fsolve geht das.
Code:


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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2014, 22:41     Titel:
  Antworten mit Zitat      
danke für deine schnelle Antwort, wie kann ich fsolve schreiben, ich habe nicht zu viel Ahnung von Matlab, ich muss das lösen. bis nun bin ich durch einander.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.11.2014, 23:37     Titel:
  Antworten mit Zitat      
Hallo,

schau dir bitte das Beispiel in der Doku an. Dort findest du eine schrittweise Anleitung für das Lösen von zwei Gleichungen mit zwei Unbekannten - genau die gleiche Situation, die du hast.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 14.11.2014, 23:43     Titel:
  Antworten mit Zitat      
Hallo,

Lies dir mal die Hilfe zu
Code:
durch, insbesondere die Abschnitte 'Syntax', 'Description' & 'Examples'. Wenn du etwas nicht verstehst oder nicht weiter weißt, einfach fragen.

Edit: Ah zu langsam, hätte ich nach dem Spiel eher hier rein schauen müssen Very Happy

Grüße
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Moh
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2014, 00:18     Titel:
  Antworten mit Zitat      
Hallo,

danke für deine Antwort und Hilfe.

ich habe noch eine Frage, meine konstanten Parameter sind Buchstaben und keine Zahlen, ich will die erst später eingeben, um bestimmte a und b zu erhalten. wie kann ich die in Editor schreiben ? oder deklarieren ? es ist egal welsche Anfangswert gebe?

und vielen vielen dank für deine Mühe

Grüß
Moh
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.11.2014, 00:32     Titel:
  Antworten mit Zitat      
Hallo,

ich würde zunächst damit anfangen, die Parameter hart reinzukodieren.

Wenn man sie flexibel halten möchte, siehe hier
http://de.mathworks.com/help/optim/.....ing-extra-parameters.html
(übrigens aus der Doku von fsolve verlinkt)

Nein, der Anfangswert ist nicht egal. Hinter fsolve steckt ein Gradientenverfahren, d.h. es wird ausgehend vom Anfangswert in der (lokal) besten Richtung nach einer Lösung gesucht. Je nach Anfangswert kann es sein, dass eine andere Lösung als die gewünschte gefunden wird - oder auch gar keine.

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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2014, 01:19     Titel:
  Antworten mit Zitat      
Hallo,
danke für deine Antwort, dann alles gut erklärt, hier ist mein Programm

V=3;
Q=15000;
d=45;
R=70;
eta=6.9;
cf=1.57;
my=10;

A=-(cf+my)/eta;
B=my;
C=(cf*my)/eta;

b0=V^2/((A^2)*R)*((C/A)+B)-(V/(A*R))*((C/A)+B)*a;
b1=(V^2/(A*R))*((C/A)+B)-(V/(A*R))*C*a;
b2=(V^2/(A*R))*C/2;


x=-40:0.1:40;

for n=1:length(x)
Pb(n)=b0*(1-exp(A*(a-x(n))/V))+b1*(a-x(n))/V+
(b2*(a-x(n))^2)/V^2;

end

plot(x,Pb)
hold on

%Be-Entlastung,starr 1
%für 0<=x<=a

b0=V^2/((A^2)*R)*((C/A)+B)-(V/(A*R))*((C/A)+B)*a;
b1=(V^2/(A*R))*((C/A)+B)-(V/(A*R))*C*a;
b2=(V^2/(A*R))*C/2;

x=0:0.01:40;

for n=1:length(x)
Pe(n)=b0*(1-exp(A*(a-x(n))/V))+b1*(a-x(n))/V+
(b2*(a-x(n))^2)/V^2;

end

plot(x,Pe,'k')


legend('Belastung,starr','Be- und Entlastung,starr')


%Be-Entlastung, starr 1
%für -b<=x<0


A=-(cf+my)/eta;
B=my;
C=(cf*my)/eta;

b0=V^2/((A^2)*R)*((C/A)+B)-(V/(A*R))*((C/A)+B)*a;
b1=(V^2/(A*R))*((C/A)+B)-(V/(A*R))*C*a;
b2=(V^2/(A*R))*C/2;


x=-40:0.01:0;

for n=1:length(x)
Pe2(n)=b0*(1-exp(A*(a)/V))+b1*(a)/V+
(b2*(a)^2)/V^2+eta*V*x(n)/R-cf/2/R*(x(n))^2;

end

plot(x,Pe2,'k')

grid on;
axis([-40 40 0 40]);
xlabel('x-koordinate [cm]');
ylabel('kontaktdruck [N/cm^2]');

für x=-40:0.1:40 muss gelten, dass Q/d = integral (von -b bis a ) für Pb(n).

a und b kann ich denn nur von beiden Gleichungen rauskriegen.

(Q*A*R)/d + B*V*a*(a+b)- (B*V - C*a)*(a+b)^2/2 -C/6*(a+b)^3 = 0;

(C/A+B)*(B+V/A)+C/2*V*(b^2-a^2)+(C/A+B)*(a-V/A)*exp(A/V*(a+b))=0;

für 0<x<a ist das gleiche.

aber für -b<x<0

Q/d = integral (von -b bis 0) von Pe2(n) + integral (von 0 bis a) von Pe(n)

habe ich andere Gleichungen:

(Q*A*R)/d - (eta*V^2*b) - (V/2*((eta*A+cf)*b^2) - ((cf*A/3)*b^3) +(B*V/2*a^2) + C/3*a^3 =0

[-V*e(A/V*a*(V/A-a)) + V^2/A] * [C/A+B] - C/2*a^2 - eta*V*A*b - cf*A/2*b^2 = 0

ich wöllte die nicht linear Gleichungen extra lösen und dann einsetzen. aber hast du mir gesagt, geht es nicht wegen die Startwert.

jetzt meine fragen, was wäre besser a und b extra lösen und dann in Programm einfügen ? oder ich kann die Gleichungen irgendwie umformen und direkt Plotten?
zusammengefasst : ich kenne Wert von mein Integral (Q/d) in den beiden Fählen aber ich kenne die Grenzen von mein Integral nicht und die muss ich von meine nicht linear Gleichungen bestimmen

ich hoffe, dass du mir weiter helfen kannst. dafür werde ich sehr dankbar, denn ich habe seit einer Woche aber bis nun keine Lösung Sad

Grüß
Mo
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

letztlich geht es doch darum, die anfangs beschriebenen Gleichungen zu lösen?

fsolve ist dafür sehr wohl eine Möglichkeit. Allerdings kann es vom Startwert abhängen, ob eine Lösung gefunden wird. Wenn man keine guten Startwerte hat, kann man über mehrere Startwerte iterieren oder eine der Funktionen aus der Global Optimization Toolbox nutzen.

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.