|
|
nicht-lineares Gleichungssystem lösen |
|
Moh |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 14.11.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.11.2014, 21:12
Titel: nicht-lineares Gleichungssystem lösen
|
 |
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
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.11.2014, 21:33
Titel:
|
 |
Hallo,
mit fsolve geht das.
Grüße,
Harald
|
|
|
Moh |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 14.11.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.11.2014, 22:41
Titel:
|
 |
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.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.11.2014, 23:37
Titel:
|
 |
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
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 14.11.2014, 23:43
Titel:
|
 |
Hallo,
Lies dir mal die Hilfe zu
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
Grüße
_________________
Richtig fragen
Debugging
|
|
|
Moh |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 14.11.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.11.2014, 00:18
Titel:
|
 |
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
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.11.2014, 00:32
Titel:
|
 |
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
|
|
|
Moh |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 14.11.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.11.2014, 01:19
Titel:
|
 |
|
 |
|
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
Grüß
Mo
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.11.2014, 11:00
Titel:
|
 |
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|