Niet-lineair systeem oplossen

Moderators: ArcherBarry, Fuzzwood

Reageer
Berichten: 398

Niet-lineair systeem oplossen

Beste lezers,

Ik probeer A en B op te lossen uit de volgende vergelijkingen:
\(\frac{1}{(3+2A)^2}\frac{(A-B)(3A+B)^3}{(1-A)(2-A-B)}-0.159=0\)
\(\frac{B(3A+B)}{(A-B)(2-A-B)}-0.252=0\)
Als het goed is, is er maar 1 uitkomst voor de waarden van A en B, en beiden zouden positief moeten zijn.

Ik heb pas kort geleden kennis gemaakt met Matlab en ik heb niets gevonden in de Matlab help waar ik iets mee kan.

Iemand die me kan helpen? (niet-Matlab-methode is uiteraard ook goed!)

Gebruikersavatar
Berichten: 2.609

Re: Niet-lineair systeem oplossen

Daar bestaan algoritmen voor. Heb je een cursus Numerieke Algoritmen? Het is niet iets voor de hand liggend dat je zelf even uitvindt.

Kan je misschien ook je opleiding en niveau aangeven?

Zoek eens naar de 'Methode van Newton-Raphson'. Dit is een soort uitbreiding van de methode van Newton voor gewone vergelijkingen, maar dan voor stelsels.

Berichten: 398

Re: Niet-lineair systeem oplossen

Toch iets gevonden:

hier bij de kop Numerical solution of two or more equations in implicit forms

Ik heb het meteen naar MatLab gekopieerd en de functies veranderd. En nu blijkt dat ik verschillende uitkomsten krijg afhankelijk van de gekozen beginwaarden.

>> fminsearch('meth_reac',[-1000,1000]); x=ans(1), y=ans(2)

x = -1.2643e-004

y = -2.6073e-008

>> fminsearch('meth_reac',[1000,-1000]); x=ans(1), y=ans(2)

x = 481.2117

y = -1.4436e+003

>> fminsearch('meth_reac',[-1000,-1000]); x=ans(1), y=ans(2)

x = 0.2696

y = -0.8089

Beide beginwaarden positief levert:

>> fminsearch('meth_reac',[1000,1000]); x=ans(1), y=ans(2)



Exiting: Maximum number of function evaluations has been exceeded

- increase MaxFunEvals option.

Current function value: 4.325567

x = 2.1962e+016

y = 6.9625e+015

Die fout krijg ik ook voor kleinere beginwaarden :eusa_whistle:

Beide positief krijg ik dus niet voor elkaar...

Gebruikersavatar
Berichten: 2.609

Re: Niet-lineair systeem oplossen

Ik krijg zelf die standaard-functies niet aangeleerd. In onze oefeningenles Numerieke Algoritmen hebben we een niet-lineair stelsel opgelost door een m-file te schrijven die de methode van Newton-Raphson toepast.

Eens je waarden gevonden hebt kan je deze makkelijk checken door ze in je stelsel in te vullen en te controleren of ze voor beide vergelijkingen kloppen.

Berichten: 398

Re: Niet-lineair systeem oplossen

In onze oefeningenles Numerieke Algoritmen hebben we een niet-lineair stelsel opgelost door een m-file te schrijven die de methode van Newton-Raphson toepast.
Heb je die m-file toevallig nog? :eusa_whistle:

De output die ik nu krijg klopt in ieder geval niet (x en y invullen levert niet het goede resultaat). Ik volg het college Numerieke Methoden (TU Eindhoven), maar tot nu toe ging dat voornamelijk over matrices. Ik weet ook niet of dit aan bod gaat komen.

Het probleem ontstaat door twee gekoppelde chemische reactievergelijkingen, waarvan ik de evenwichtsligging moet bepalen. (A en B zijn de 'extents' van reactie 1 en 2).

In Matlab kan ik alleen wat basisdingen. Zelf m-files schrijven heb ik nog nooit gedaan.

Gebruikersavatar
Berichten: 24.578

Re: Niet-lineair systeem oplossen

Zie bv. hier.
"Malgré moi, l'infini me tourmente." (Alfred de Musset)

Berichten: 398

Re: Niet-lineair systeem oplossen

Zie bv. hier.


Bedankt voor de reactie, maar ik begrijp helaas helemaal niets van dat bestand :eusa_whistle:

Ik zal eens na gaan vragen hoe klasgenoten dit oplossen.

Gebruikersavatar
Berichten: 24.578

Re: Niet-lineair systeem oplossen

Je kan natuurlijk iets zelf maken, maar dit is een min of meer "gebruiksklaar" programma voor de methode van Newton.
"Malgré moi, l'infini me tourmente." (Alfred de Musset)

Berichten: 398

Re: Niet-lineair systeem oplossen

'Gebruiksklaar' voor mensen met een klein beetje Matlab-kennis dan toch :eusa_whistle:

Maar oke, ik hoef op zich ook niet te begrijpen hoe de m-file er uit ziet, als ik hem maar kan gebruiken.

Dus, hoe laat ik de m-file code dan los op mijn 2 functies? wat typ ik dan in? (stel de functies heten Y1 en Y2 en de 2 variabelen die erin zitten heten X1 en X2)

Reageer