Está en la página 1de 9

Ejercicio 1 Realizar una funcin script (llmala orto) que tenga como entrada una matriz cuadrada regular

A de dimensin 3 3, y devuelva la matriz ortogonal resultante de aplicar el mtodo de ortonormalizacin de Gram-Schmidt a las columnas de A.

Script Orto
%orto function P=proyeccion(A) A=sym([1 2 3; 2 5 1; 20 6 11]) invA=inv(A) M=colspace(A) P=M*(M'*M)^-1*M'

>> orto A= [ 1, 2, 3] [ 2, 5, 1] [ 20, 6, 11] invA = [ -49/219, 4/219, 13/219] [ 2/219, 49/219, -5/219] [ 88/219, -34/219, -1/219] M= [ 1, 0, 0] [ 0, 1, 0] [ 0, 0, 1] P= [ 1, 0, 0] [ 0, 1, 0] [ 0, 0, 1] ans = [ 1, 0, 0] [ 0, 1, 0] [ 0, 0, 1]

Ejercicio 2 Realizar una funcin script (llmala poligono) que tenga tres argumentos (n, r, c) y que devuelva un grfico en R2 de un polgono regular de n lados cincunscrito en una circunferencia de radio r centrada en el punto del plano c = (c1, c2). En el grfico debe aparecer la circunferencia en azul, y el polgono en rojo.

Script poligono
%poligono(n,r,c) function poligono(n,r,c) %poligono(7,5[0 1]) %n=numero de lados %r=radio circunferencia %c=[x y] coordenadas circunferencia n=7 r=5 c=[0 1] t=0:pi/360:2*pi; u=r*cos(t)+c(1); v=r*sin(t)+c(2); t2= linspace(0+pi/2,2*pi+pi/2,n+1); x = r*cos(t2)+c(1); y = r*sin(t2)+c(2); hold on figure(gcf) plot(u,v,'b'), plot(x,y,'r')

6 5 4 3 2 1 0 -1 -2 -3 -4 -5

-4

-3

-2

-1

Ejercicio 3 Realizar un script que: (a) Construya una matriz (en coordenadas homogneas) cuya transformacin afn asociada (en R2) transforme una circunferencia de radio r centrada en el origen en una elipse con las siguientes caractersticas: su semieje mayor tendr longitud 2 _ r y estar contenido en la recta y = x. su semieje menor tendr longitud r. el centro de la elipse estar situado en el punto (3, 3). (b) Realice la representacin grfica que muestre el resultado de aplicar la transformacin afn anterior a una circunferencia de radio unidad. Indicacin: Se puede utilizar los scripts de clase que pasan a coordenadas homogneas y viceversa

Script homo

%homo function Ch=homo(C) n=size(C,2); vunos=ones(1,n); Ch=[C;vunos];

Script plotfiguras2
%Plotfiguras2 function grafico=plotfiguras(Figura1,Figura2) hold off; plot(Figura1(1,:),Figura1(2,:),'r'); hold on; axis('equal');

Script plotfigura
%Plotfiguras function grafico=plotfiguras(Figura1,Figura2) hold off; plot(Figura1(1,:),Figura1(2,:),'b'); hold on; plot(Figura2(1,:),Figura2(2,:),'r'); axis('equal');

Script elipse
%elipse function elipse=plotfiguras2(Figura1) t=0:0.01:2*pi; r=3;x=r*cos(t); y=r*sin(t); C=[x;y];figure,plotfiguras2(C)

C=sym([1 1;1 1]) H=sym([0 2*r;r 0]) homo(C) homo(H) pause t=0:0.01:2*pi;x=cos(t);y=sin(t);C=[x;y];figure,plotfiguras2(H*C)

>> elipse C= [ 1, 1] [ 1, 1] H= [ 0, 6] [ 3, 0] ans = [ 1, 1] [ 1, 1] [ 1, 1] ans = [ 0, 6] [ 3, 0] [ 1, 1]

2.5 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2.5 -3 -2 -1 0 1 2 3

Pause

4 3 2 1 0 -1 -2 -3 -4 -5 -4 -3 -2 -1 0 1 2 3 4 5

function %a es el %b es el %C es el r=1 H=sym([0 homo(H)

plotEllipse(a,b,C) eje mayor eje menor centro de la elipse 2*r;r 0])

t=0:0.01:2*pi;x=r*cos(t);y=r*sin(t);C=[x;y];figure,plot(x,y) pause N=50; t=0:1/N:2*pi+1/N; a=2*r b=r C=[3 3] state(1,:) = a*cos(t); state(2,:) = b*sin(t); X = state; X(1,:) = X(1,:) + C(1); X(2,:) = X(2,:) + C(2); plot(X(1,:),X(2,:)); hold on; plot(C(1),C(2),'r*'); axis equal; grid; end

También podría gustarte