Exemple d'extrems condicionats: Moviment d'un satèl·lit
Anem a veure visualment com localitzar extrems condicionats.
Un satèl.lit artificial gira al voltant de la Terra en òrbita el.líptica. En un sistema de referència en que la Terra es troba a l'origen de coordenades, l'òrbita del satèl.lit ve donada per l'equació:
on (x,y) són les coordenades del satèl·lit. Es demana en quins punts es troba el satèl.lit més a prop (pericentre) i més lluny (apocentre) de la Terra.
Funció objectiu
Primer netegem variables i tanquem possibles finestres de gràfics, i definim la funció objectiu (recordem que per al Matlab és una expresió simbòlica de moment).
sympref('FloatingPointOutput',true);
f=x^2+y^2
f = 
Dibuixem algunes corbes de nivell d'aquesta funció. Recordem que hem de fer una graella de punts i passar l'expressió a funció Matlab:
[X,Y]=meshgrid(-2:0.1:2,-2:0.1:2);
ffun = matlabFunction(f);
contour(X, Y, Z, nc) %contour(X, Y, Z, nc,'ShowText','on')
hold on; % deixem el grafic obert per dibuixar mes coses a sobre
Varia el nombre de corbes de nivell. Quina informació ens dona aquest gràfic?
Restricció
La restricció sobre la posició del satèl·lit és l'el·lipse que segueix. Definim la funció:
g=-18*sqrt(3)*x*y+36*sqrt(3)*y-36+36*x+21*y^2+39*x^2
g = 
La restricció és g(x,y)=0. Això és la corba de nivell 0 de la funció g. Dibuixem-la:
contour(X,Y,G,[0,0],'r',"LineWidth",1)
Modifica el que calgui en aquesta o la secció anterior per tal de visualitzar tota la restricció i sense etiquetes dels nivells. Identifica gràficament on es poden trobar els punts on el satèl·lit es troba a distància màxima i mínima del planeta.
Vectors gradients
Anem a dibuixar alguns vectors gradients. Primer calculem el vector gradient i el convertim a funció de Matlab. A continuació canviarem una mica la malla de punts on grafiquem les corbes de nivell i els vectors gradients:
gradf = gradient(f)
gradf =

vx = matlabFunction(gradf(1));
vy = matlabFunction(gradf(2));
[X, Y] = meshgrid(-6:.5:2,-6:.5:2);
quiver(X, Y, vx(X), vy(Y), 1,'b') %Observem que cada component del gradient depen només d'una variable
Dibuixem també el gradient sobre la restricció:
gradg=gradient(g)
gradg =

wx = matlabFunction(gradg(1));
wy = matlabFunction(gradg(2));
quiver(X, Y, wx(X,Y), wy(X,Y), 2,'r') %Observeu que cal dir que les dues components depenen de les dues variables
Pots assegurar amb seguretat que existeixen punts a distància màxima i mínima? Quins resultat matemàtics utilitzes per a la justificació?
Càlcul dels extrems condicionats
Segons el mètode dels multiplicadors de Lagrange, el(s) màxim(s) i mínim(s) es troben dins el conjunt de totes les solucions de les equacions
Introduim una nova variable simbòlica L (el multiplicador) i les equacions. Solucionem el sistema.
Eq=[gradf(1)-L*gradg(1),gradf(2)-L*gradg(2),g]
Eq = 
[Sx,Sy,SL]=vpasolve(Eq,[x,y,L]);
Les variables Sx,Sy,SL contenen les solucions que ha trobat. El valor del multiplicador L no ens interessa:
Sy
Sy =

Hem trobat dos punts:
[Sx(1),Sy(1)]
ans = 
[Sx(2),Sy(2)]
ans = 
E=[[Sx(1),Sy(1)];[Sx(2),Sy(2)]];
scatter(E(:,1),E(:,2),50,'filled','k')
© Numerical Factory ( by Esther Barrabés i Joan Saldaña)