Springen naar inhoud

Matlab, vergelijkingen numeriek oplossen


  • Log in om te kunnen reageren

#1

VatoG

    VatoG


  • 0 - 25 berichten
  • 15 berichten
  • Gebruiker

Geplaatst op 12 oktober 2011 - 21:03

Hallo,

ik ben een beginnende matlab gebruiker.
Ik zou graag proberen volgende vergelijkingen numeriek op te lossen in matlab:

LaTeX

hierbij gaat LaTeX van 15° tot 145°.

Ik dacht te verstaan dat je dit kan doen door:

1) vergelijking twee te nemen, een waarde voor LaTeX te kiezen, en daarbij de bijhorende waarden voor LaTeX te berekenen

2) dit herhalen voor vele verschillende waarden van LaTeX

3) de verkregen resultaten in vergelijking één stoppen en ...

Is er iemand die mij hier een beetje kan bij helpen?


Om het doel wat te verduidelijken:

dit is de eigenlijke opdracht:

Geplaatste afbeelding

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

#2

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 12 oktober 2011 - 21:27

Zoek eens in de matlab documentatie op fminsearch
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#3

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 12 oktober 2011 - 21:35

Kijk eens Bericht bekijken
Zoek eens in de matlab documentatie op fminsearch[/quote]

Dat lijkt voor minimalisatieproblemen te zijn?

#4

VatoG

    VatoG


  • 0 - 25 berichten
  • 15 berichten
  • Gebruiker

Geplaatst op 13 oktober 2011 - 14:22

Kijk eens hier voor uitleg over fsolve. Example 1 onderaan de pagina maakt het misschien duidelijk.

Heb je iets van numerieke analyse gezien? De methode van Newton Rhapson is vrij eenvoudig zelf te programmeren.


Daar heb ik weinig kaas van gegeten ;)

#5

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 13 oktober 2011 - 16:18

Nu ik het zelf probeer in te geven zie ik dat je 2 vergelijkingen en 3 onbekenden hebt. Is er geen verband tussen die 3 hoeken dat je nog kan gebruiken?

Edit: ik zie dat teta een parameter is en geen onbekende, even kijken dan ;)

#6

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 13 oktober 2011 - 16:43

Naar analogie van example 1 op deze pagina:

Eerst herschrijf je het stelsel zodat er rechts steeds een 0 staat.
Dan schrijf je een functie die de matrix bij het stelsel kan berekenen.

function F = myfun(x)
teta = pi/4;
	F = [0.4 - 0.15*sin(teta) - 0.35*sin(x(1)*pi/180) - 0.15*sin(x(2)*pi/180);
		0.35*sin(x(2)*pi/180) - 0.15*sin(teta) - 0.35*sin(x(1)*pi/180)
		];
end
(Ik zoek de hoeken hier in graden omdat ik in radialen geen goeie waarden kreeg, te afhankelijk van de beginwaarde.)

Vervolgens geef je een beginwaarde x0 = [kies iets, kiest iets]; (0,0 ofzo).

En het antwoord kan je dan krijgen door
>> [x,fval] = fsolve(@myfun,x0)

In fval zie je dan de functiewaarde ervan, hoe dichter je bij de 0 zit, hoe beter je resultaat.

Nu wordt teta gedefinieerd in myfun, om het allemaal wat vlotjes te laten lopen kan je daar iets creatievers voor verzinnen zoals hier bijvoorbeeld. Het is 'lastig' dat fsolve de functie als function-handle (@) wil krijgen.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures