Springen naar inhoud

Niet-lineair systeem oplossen


  • Log in om te kunnen reageren

#1

Olezgus

    Olezgus


  • >250 berichten
  • 391 berichten
  • Ervaren gebruiker

Geplaatst op 05 maart 2010 - 17:16

Beste lezers,

Ik probeer A en B op te lossen uit de volgende vergelijkingen:
LaTeX
LaTeX

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!)

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 05 maart 2010 - 17:39

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.

#3

Olezgus

    Olezgus


  • >250 berichten
  • 391 berichten
  • Ervaren gebruiker

Geplaatst op 05 maart 2010 - 17:41

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...

#4

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 05 maart 2010 - 17:48

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.

#5

Olezgus

    Olezgus


  • >250 berichten
  • 391 berichten
  • Ervaren gebruiker

Geplaatst op 05 maart 2010 - 19:17

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.

Veranderd door Olezgus, 05 maart 2010 - 19:18


#6

TD

    TD


  • >5k berichten
  • 24052 berichten
  • VIP

Geplaatst op 07 maart 2010 - 17:37

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

#7

Olezgus

    Olezgus


  • >250 berichten
  • 391 berichten
  • Ervaren gebruiker

Geplaatst op 07 maart 2010 - 18:51

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.

#8

TD

    TD


  • >5k berichten
  • 24052 berichten
  • VIP

Geplaatst op 07 maart 2010 - 19:17

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)

#9

Olezgus

    Olezgus


  • >250 berichten
  • 391 berichten
  • Ervaren gebruiker

Geplaatst op 07 maart 2010 - 20:06

'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)





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures