Comandos Matlab

87
UNIVERSIDAD POLITECNICA SALESIANA SEMINARIO DE MATLAB BASICO Mgtr. XAVIER ESPINOZA ESTEBAN HERRERA

description

Comandos requeridos para uso y manipulacion en el programa de modelamiento Matlab

Transcript of Comandos Matlab

Page 1: Comandos Matlab

UNIVERSIDAD POLITECNICA SALESIANA

SEMINARIO DE MATLAB BASICO

Mgtr. XAVIER ESPINOZA

ESTEBAN HERRERA

18 DE SEPTIEMBRE DEL 2015

Page 2: Comandos Matlab

PRATICA #1clc; close all; clear all;%% TRABAJO FINAL DE SEMINARIO DE MATLAB BASICO% TEMA 1: OPERACIONES MATEMATICAS COMUMESdisp('OPERACIONES MATEMATICA COMUNES')a=9.203;b=2.908;c=3.981;a+bc/ab^c

%% TEMA 2: FORMATOS DE NUMEROSdisp('FORMATOS DE NUMEROS')disp('FORMAT SHORT')format short disp('FORMAT LONG')format long disp('FORMAT SHORT E')format short e disp('FORMAT LONG E')format long e disp('FORMAT SHORT G')format short g disp('FORMAT LONG G')format long g disp('FORMAT SHORT ENG')format short eng disp('FORMAT LONG ENG')format long eng disp('FORMAT BANK')format bank disp('FORMAT HEX')format hex disp('FORMAT RAT')format rat disp('FORMAT ')format

Page 3: Comandos Matlab

%% TEMA 3: VARIABLES COMUNESdisp('VARIABLES COMUNES')disp('ANS')ansdisp('pi')pidisp('eps')eps(2)disp('inf')inf('double')disp('nan')nan ('single')disp('i y j')4.5+8.09*sqrt(-1)disp('realmin')realmin('single')disp('realmax')realmax('double')

Page 4: Comandos Matlab

%% TEMA 4: TIEMPOdisp('TIEMPO')clockcalendar date

%% TEMA 5: FUNCIONES MATEMATICASdisp('FUNCIONES MATEMATICAS')disp('cell')cell(1.56)disp('fix')fix([1.12 4.56 9.087 1.45])disp('floor')floor([3.56 6.91 5.34])disp('round')round([5.684 1.98 5.04;4.76 87.9 4.02])

Page 5: Comandos Matlab

%% TEMA 6: FUNCIONES TRIGONOMETRICASdisp('FUNCIONES TRIGONOMETRICAS')disp('Funcion seno')sin(pi)disp('Funcion coseno')cos(pi/4)disp('Funcion tangente')tan(pi/9)disp('Funcion secante')sec(2*pi)disp('Funcion cosecante')csc(pi/7)disp('Funcion cotangente')cot(pi/3)disp('Funcion seno en grados')sind(90)disp('Funcion coseno en grados')cosd(45)disp('Funcion tangente en grados')tand(60)disp('Funcion secante en grados')secd(59)disp('Funcion cosecante en grados')cscd(189)disp('Funcion cotangente en grados')cotd(270)disp('Funcion seno hiperbolica')sinh(230)disp('Funcione coseno hiperbolica')cosh(130)disp('Funcione tangente hiperbolica')tanh(330)disp('Funcione secante hiperbolica')sech(28.9)disp('Funcione cosecante hiperbolica')

Page 6: Comandos Matlab

csch(170)disp('Funcione cotangente hiperbolica')coth(180)disp('Funcion inversa seno')asin(3*pi)disp('Funcion inversa coseno')acos(pi/4)disp('Funcion inversa tangente')atan(pi/9)disp('Funcion inversa secante')asec(2*pi)disp('Funcion inversa cosecante')acsc(pi/7)disp('Funcion inversa cotangente')acot(pi/3)disp('Funcion inversa seno hiperbolica')asinh(89.096)disp('Funcione inversa coseno hiperbolica')acosh(178)disp('Funcione inversa tangente hiperbolica')atanh(360)disp('Funcione inversa secante hiperbolica')asech(182.90)disp('Funcione inversa cosecante hiperbolica')acsch(89.161)disp('Funcione inversa cotangente hiperbolica')acoth(90.78)

Page 7: Comandos Matlab
Page 8: Comandos Matlab
Page 9: Comandos Matlab

%% TEMA 7: ALGUNAS OPERACIONESdisp('ALGUNAS OPERACIONES')disp('abs')abs(-45.87)disp('sign')sign(-8617.1)disp('exp')

Page 10: Comandos Matlab

exp(2.^6)disp('gcd')gcd(90,790)disp('lcm')lcm(80,624)disp('log')log(3.78)disp('log2')log2(3.65)disp('log10')log10(9.781)disp('mod')mod(10,678)disp('rem')rem(34,189)disp('sqrt')sqrt(2.^67-90+981)

Page 11: Comandos Matlab

%% TEMA 8: NUMEROS COMPLEJOSw=-0.87i;x=7.684;y=2.891;z=9.918;disp('NUMERO COMPLEJOS')disp('abs')abs(x)disp('angle')angle(2.56-78.8i)disp('complex')complex(y,z)disp('conj')conj(x)disp('imag')imag(z)disp('real')real(x)disp('sign')sign(y)disp('isreal')isreal(w)

Page 12: Comandos Matlab

PRACTICA #2

%% NUMEROS, VECTORES Y MATRICES% TEMA 1: COMO DEFINIRdisp('COMO DEFINIR')w=[4 91 75 64 5]x=[2 78 91 81 9]y=[1 52 78;23 76 43]z=[5 90;67 12; 43 89]

Page 13: Comandos Matlab

%% TEMA 2: DIRECCIONAMENTO DE ELEMENTO DE VECTORES Y MATRICES disp('DIRECCIONAMENTO DE ELEMENTO DE VECTORES Y MATRICES')disp('Elemento del vector')w(2)x(end)w(1:3)x(1:2:5)w([5 1 4])disp('Elemento de la matriz')y(2,1)z(:,2)y(2,2:3) z(2,[2 1]) y([2 1], 2:3) z(end, [1 2])y(5)

Page 14: Comandos Matlab

%% TEMA 3: CONSTRUCCION ABREVIADA DE ALGUNOS VECTORESdisp('CONSTRUCCION ABREVIADA DE ALGUNOS VECTORES')

Page 15: Comandos Matlab

disp('Crea un vector con un valor inicial y un final')(3:27)disp('Crea un vector similar al anterior pero con un incremento')(1:4:28)disp('Crea un vector linealmente espaciado')linspace(1,5,2)disp('Crea un vector linealmente espaciado con 100 elementos')linspace(2,6)disp('Crea un vector logaritmicamente espaciado')logspace(1,3,5)disp('Crea un vector logartmicamente espaciado con 50 elementos')logspace(1,4)

Page 16: Comandos Matlab

%% TEMA 4: CONSTRUCCION DE MATRICESdisp('zeros de nxn')zeros(5)disp('zeros de nxm')zeros(4,3)disp('ones de nxn')ones(2)

Page 17: Comandos Matlab

disp('ones de nxm')ones(5,2)disp('rand de nxn')rand(6)disp('rand de nxm')rand(2,6)disp('randn de nxn')randn(4)disp('randn de nxm')rand(3,2)disp('eye de nxn')eye(7)disp('eye de nxm')eye(1,4)disp('magic de nxn')magic(2)disp('hilb de nxn de Hilbert')hilb(5)disp('invhilb de nxn inversa de Hlbert')invhilb(5)

Page 18: Comandos Matlab
Page 19: Comandos Matlab

%% TEMA 5: OPERACIONES DE MATRICESdisp('OPERACIONES DE MATRICES')a=[1 78;6 5]; b=[2 4.5; 0.175 12]; c=[1.5-12i 3+4.6i; 20-1i 7.5+4i];disp('Suma de matrices')a+c disp('Resta de matrices')b-c disp('Multiplicacion de matrices')a*b disp('Multiplicacion de elemento a elemento')a.*b disp('Divisipm de matrices por la derecha')a/c disp('Division elemento a elemento por la derecha')b./a disp('Division por la izquierda')c\a disp('Division elemento a elemento por la izquierda')b.\c disp('Potenciacion')b^5.2 disp('Potenciacion elemento a elemento de matrices')c.^a disp('Trasnpuesta conjugada')c' disp('Transposcion de matrices')b.'

Page 20: Comandos Matlab
Page 21: Comandos Matlab

PRACTICA #3

%% TEMA 1: FUNCIONES PARA OPERAR VECTORESdisp('FUNCIONES PARA EL ANALISIS DE MATRICES')x=[6 5 1]; y=[2 4 9];disp('Producto vectorial')cross(x,y) disp('Producto escalar')dot(x,y)

Page 22: Comandos Matlab

%% TEMA 2: FUNCIONES PARA EL ANALISIS DE MATRICESdisp('FUNCIONES PARA EL ANALISIS DE MATRICES')a=[1 2 3 4;7 8 9 2; 2 4 6 8;4 3 7 9];v=[1.41234 7.51123 9.12314];disp('Numero de condicion')cond(a) disp('Determinate')det(a) disp('Crea una matriz diagonal con el vector v sobre la diagonal')diag(v) disp('Extrae la diagonal de la matric a como un vector columna')diag(a)disp('Valores propios')eig(a)disp('Matriz inversa')inv(a) disp('Maxima dimension')length(a)disp('Norma')norm(a) disp('Norma-n')norm(a,2)disp('Estima de la norma-2')normest(a)disp('Espacio nulo')null(a) disp('Ortogonalizacion')orth(a)disp('Pseudoinversa')pinv(a)disp('Polinomio caracteristico')poly(a)disp('Rango')rank(a) disp('Reduccion mediante la eliminacion de Gauss de una matriz')rref(a) disp('Dimensiones')size(a)disp('Matriz triangular inferior a partir de la matriz a')tril(a)disp('Matriz triangular superior a partit de la matriz a')triu(a)

Page 23: Comandos Matlab
Page 24: Comandos Matlab

%% TEMA 3: OTRAS OPERACIONES CON MATRICESdisp('OTRAS OPERACIONES CON MATRICES')A=[2*pi pi/9;pi/4 pi/3];disp('Devuelve los indices: find')find(A)disp('Intercambia la matriz de izquierda a derecha: flipr')

Page 25: Comandos Matlab

fliplr(A)disp('Intercambia la matric de arriba a abajo: flipud')flipud(A)disp('Devuelve una matriz mxn; reshape')reshape(A,1,4)disp('Gira la matriz 90 grados antihorario: rot90')rot90(A) disp('Gira la matriz nx90 grados: rot90')rot90(A,3)disp('Matriz exponencial: expm')expm(A)disp('Matriz logaritmica: logm')logm(A)disp('Matriz de raices cuadradas: sqrtm')sqrtm(A)disp('Evalua la funcion que se indique: funm')funm(A,@cos)disp('VE son los vectores propios y VA son los valores propios: [VE,VA]')[VE,VA]=eig(A)disp('Factorzizacion en LU')[L,U]=lu(A)disp('Factorizacion en QR')[Q,R]=qr(A)

Page 26: Comandos Matlab
Page 27: Comandos Matlab

%% TEMA 4: TEXTOdisp('TEXTO')disp('Cadenas de caracteres b y c')b='carro'; c='perro'; b+cdisp('Vemos la representacion ASCII de la cadena')b+0 disp('Otra forma de ver la representacion ASCII de la cadena')abs(b) disp('Tercera forma de ver la representacion ASCII de la cadena')double(b) disp('Convertimos un vector de numero enteros')setstr(ans) disp('Calculamos la diferencia entre minusculas y mayusculas')abs('b')-abs('A') disp('Se escribe los caracteres conociendo la representacion ASCII')setstr(b-32)disp('Escribe el valor almacenado en la variable b')disp(b) disp('Ecribe el texto que vaya entre las comillas')disp('escribe esto')

Page 28: Comandos Matlab

%% TEMA 5: HIPERMETRICESdisp('HIPERMATRICES')disp('Se define la primera capa')HM(:,:,1)=[1.12 2.65 3.78;0.34 1.65 5.76]; disp('Se define la segunda capa')HM(:,:,2)=[7.01 8.98 9.84;0.11 2.61 0.12] ;disp(' ')disp('OPERACIONES CON HIPERMATRICES')q=ones(4,3); w=zeros(4,3); % definimos dos matrices de las mismas dimensionesdisp('Concatena una debajo de la otra: cat')cat(1,q,w) disp('Concatena una al lado de la otra')cat(2,q,w) disp('Concatena como distintas capas de una hipermatriz')cat(3,q,w)

Page 29: Comandos Matlab

PRACTICA #4

Page 30: Comandos Matlab

%% PASOS GUIAS PARA GRAFICARdisp('PASOS GUIA PARA GRAFICAR')figure (1);title('GRAFICO 1');x=[-4 -2 2 5 6 8]; y=[4 1 4 0 3 10];plot(x,y);

figure (2);ylabel('GRAFICO 2');X=[-2 -1 5 0 4 6];Y=[3 -1 5 6 -4 8]; Z=[4 -5 6 8 1 2];plot(X,Y,X,Z);

figure (3);title('GRAFICO 3');plot(x,y,'*');grid;

%% OTROS COMANDOSfigure(15)subplot(2,5,1),area(x,y),xlabel('AREA') % colorea el area bajo la grafica

Page 31: Comandos Matlab

subplot(2,5,2),bar(x,y),xlabel('BAR') % diagrama de barras(verticales)subplot(2,5,3),hist(x),xlabel('HIST') % histogramasubplot(2,5,4),pie(x),xlabel('PIE') % sectoressubplot(2,5,5),rose(x,y),xlabel('ROSE') % histograma polarsubplot(2,5,6),stairs(x,y),xlabel('STAIRS') % grafico de escalerasubplot(2,5,7),stem(x,y),xlabel('STEM') % secuencia de datos discretossubplot(2,5,8),loglog(x,y),xlabel('LOGLOG') % como plot pero con escala logaritmica en ambos ejessubplot(2,5,9),semilogx(x,y),xlabel('SEMILOGX') % como plot pero escala logaritmica en el eje xsubplot(2,5,10),semilogy(x,y),xlabel('SEMILOGY') % como plot pero escala logaritmica en el eje y

%%figure(4)a=1:360;y1=cosd(a);y2=tand(a);y3=exp(-a);y4=exp(a);subplot(2,2,1),plot(a,y1),title('coseno')subplot(2,2,2),plot(a,y2),title('tangente')subplot(2,2,3),plot(a,y3),title('-exponencial')subplot(2,2,4),plot(a,y4),title('exponencial')

figure(5)A=[-1 2 3 6 -2];B=[-4 8 0 0 4];plot(A,B)

Page 32: Comandos Matlab

figure (6)plot(A,B,'r')

%% GRAFICOS EN 3Dfigure(7)q=-640:640; w=cosd(q);e=tand(q);plot3(q,w,e)

figure(8)Q=[3 0 1 3 2];fill3(A,B,Q,'b')

Page 33: Comandos Matlab

figure(9)W=-12:0.5:12;E=-12:0.5:12;[o,p]=meshgrid(W,E);i=sin(sqrt(o.^2+p.^2))./sqrt(o.^2+p.^2+0.1);mesh(o,p,i)

figure(10)[O,P]=meshgrid(-12:0.5:12);I=sin(sqrt(o.^2+p.^2))./sqrt(o.^2+p.^2+0.1);mesh(O,P,I)

figure(11)surf(o,p,i)

Page 34: Comandos Matlab

figure(12)contour(o,p,i)

figure(13)pcolor(o,p,i)

figure(14)surf(o,p,i)view(10,70)

Page 35: Comandos Matlab

PRACTICA #5

%% TEMA 1: PROGRAMACION BAJO MATLAB. ESTRUCTURAS, SENTENCIAS Y BUCLES% ESTRUCTURAdisp('ESTRUCTURA')alum.nombre='Esteban'; % introducimos el campo nombre en la estructura alumalum.primer_apellido='Herrera'; % introducimos el campo apellido1 en la estructura alumalum.segundo_apellido='Cisneros'; % introducimos el campo apellido2 en la estructura alumalum.edad=20; % introducimos el campo edad en la estructura alumalum.carrera='Ingenieria Electrica'; % introducimos el campo carrera en la estructura alumalum.nivel='Quinto'; % introducimos el campo nivel en la estructura alumalum.hobby='Ciclismo'; % introducimos el campo hobby en la estructura alumalum % escribe por pantalla informacion almacenada en la estructura alum % USO DEL STRUCTdisp('CON EL STRUCT')alum2=struct('nombre','Bladimir','primer_apellido','Herrera','segundo_apellido','Cisneros','edad',20,'carrera','Ingenieria Electrica','hobby','Ciclismo')

Page 36: Comandos Matlab

%% TEMA 2: OPERACIONES CON ESTRUCTURASdisp('Devuelve los campos de la estructra alum')fieldnames(alum) disp('Devuelve 1 por ser cierto que nombre es un campo de alumno')isfield(alum,'nombre') disp('Devuelve 1 porque es cierto que alum es una estructura')isstruct(alum)disp('Elimina el campo que se asigne de la estructura alum')rmfield(alum,'segundo_apellido')

%% TEMA 3: VECTORES Y MATRICES COMO CELDASdisp('VECTORES Y MATRICES COMO CELDAS')

Page 37: Comandos Matlab

disp('CREAMOS UN VECTOR DE CELDAS DEFINIENDO CELDA A CELDA')celda(1)={[3 5 5;3 8 9;7 4 1]}; celda(2)={'cadena de caracteres'};celda(3)={eye(3)};celda(4)={-8};% Matriz por celdasdisp('Matriz por celdas')disp('Otra forma de crear celdas')c={[4 1;2 4],'caracteres',eye(4),-9};disp('Hipermatriz de celdas se haria de forma similar')cell(2,3) % crea una matriz de celdas vaciascelldisp(c) % escribe el contenido de las celdas de ccellplot(c) % representa graficamente como son las celdas de c iscell(c)A=eye(3,2);num2cell(A)celda

Page 38: Comandos Matlab

%% TEMA 4: OPERACIONES, RELACIONS Y LOGICASdisp('Creamos dos variables y comparamos entre ellas')x=6;y=5;x<yx>=yy~=xx= ydisp('Como matriz')X=4:2;Y=X-2;X<YY<=XY>X% Operadores logicos and, not y or(&,~,|)a=[5 0 6 2 7];b=[-6 0 3 4 4];d=[8 8 8 8 8];d>a & d>ba>b | a>d disp('Otros ejemplos')e=[Inf 2 4 -5 NaN 9.4];exist('e') % pregunta si existe alguna variable llamada eisnan(e) % pregunta cuando e es NaN, devuelve 1 cuando es verdadero y 0 cuando es falsoisinf(e) % pregunta cuando e es Inf, devuelve 1 cuando es verdadero y 0 cuando es falsoisfinite(e) % pregunta cuando e es finito, devuelvo 1 cuando es verdadero y 0 cuando es falsoall(e)any(e)

Page 39: Comandos Matlab
Page 40: Comandos Matlab

%% TEMA 5: SENTENCIA FORdisp('Sentencia for') for t=1:4 disp('El valor de t es: ') % escribe por pantalla el texto que se indica entre comillas disp(t) % escribe el valor de la variable tend

disp('Sentencia while')r=input('Ingrese el numero: ')while r<=8 disp('r es menor que 8') disp(r) r=r+1;end

Page 41: Comandos Matlab

disp('Sentencia if')f=input('Ingrese un numero al azar: ');if f==0 disp('No gana nada')elseif f==5 disp('Su premio es de un cupon de descuento de 50%')elseif f==7 disp('Su premio es de un cupon de descuento del 75%')elseif f==12 disp('Su premio es de un cupon de descuento del 100%')else disp('Intento de nuevo XD')end

disp('Sentencia break')for B=0:16 if B==4 break end disp('Aun no termina la secuencia')end

disp(' ')disp('Sentencia continue')fid = fopen('magic.m','r');count = 0;while ~feof(fid) line = fgetl(fid); if isempty(line) || strncmp(line,'%',1) || ~ischar(line) continue end count = count + 1;

Page 42: Comandos Matlab

endfprintf('%d lines\n',count);fclose(fid);

PRACTICA #6

%% TEMA 1: ANALISIS DE DATOSdisp('ANALISIS DE DATOS')x1=[4 1 2 3 5;1 2 6 3 2;8 0 5 2 1;6 0 0 2 1];cov(x1)diff(x1)corrcoef(x1)cumprod(x1) % Matriz de productos acumuladoscumsum(x1) % Matriz de sumas acumuladasstd(x1)mean(x1) % Media de cada columnamedian(x1) % Mediana de cada columnaprod(x1) % Producto de todos los elementos de cada columnasort(x1) % Ordena los valores de cada columnasum(x1) % Suma todos los elementos de cada columnavar(x1) % Varianza de los elemento de cada columnamax(x1) % Valor maximo de cada columnamin(x1) % Valor minimo de cada columnaiqr(x1) % Rango intercuartilico de cada columnadisp(' ')y1=[1 5 4 7 8 5 4 3 4 6 9 0 2 3 4 5 6 ];tabulate(y1) % Tabla de frecuencias generando a partir de una serie de valoresrange(x1) % Rango de cada columna (diferencia entre el maximo y el minimo)

Page 43: Comandos Matlab
Page 44: Comandos Matlab

%% TEMA 2: POLINOMIOSdisp('POLINOMIOS')p=[2 -9 0 9]; % representa al polinomio x^4-9x^3+13x^2-9x-14roots(p) % calculamos sus raicespoly(ans) % devuelve el polinomio generado por esas cuatro raicesdisp(' ')disp('Otras caracteristicas')P=[3 5 9];Q=[4 0 2];c=conv(P,Q) % producto de los polinomios p y qdeconv(c,Q) % cociente de dividir el polinomio c entre el polinomio q polyder(P) % derivada del polonomio ppolyder(P,Q) % derivada del producto de los polinomios p y q polyval(P,[5 6 0.5]) % evalua el polinomio en 0,1 y 5 es decir, halla p(0), p(1) y p(5)polyval(P,[5 3 2;-9 -1 -2;1 0 4]) % igual pero toma los valores de una matriz

Page 45: Comandos Matlab

%% TEMA 3: ANALISIS NUMERICOsyms x ydisp('ANALISIS NUMERICO')fplot('tan',[-3*pi,3*pi],'c');ylabel('Funcion tangente')xlabel('Tiende desde -3pi a 3pi')

Page 46: Comandos Matlab

disp(' ')disp('Otras caracteristicas')f=(x-1)/(sqrt(x.^2-6*x+3)-cos(sec(x)));f2=@(x)x./(sqrt(2*x.^7.5));g=(x*y+sqrt(x.^y))/(y+3*x);e=@(x)x.^3+2*x.^2-x+3;f1=@cos;x0=5;X=[1 2 3 4 5 6];Y=[23 56 78 98 89 6];diff(f) % derivada de la funcion respecto a xdiff(g,y) % derivada parcial de la funcion con respecto a tdiff(f,3) % derivada n-esima de la funcion respecto a xq=fminbnd(e,1,3) % calcula el minimo de una funcion de una variablefzero(f1,x0) % busca el cero de una funcion unidimensional de f mas proximo al punto aquad(f2,1,4) % aproxima la integral definida (segun la cuadratura de SimpsonZ=trapz(X,Y) % integral numerica trapezoidal de la funcion formada al emparejar los puntos de los vectores x e y

Page 47: Comandos Matlab

%% TEMA 4: INTEGRACION POR CALCULO O CALCULO DE PRIMITIVASdisp('INTEGRACION')s=sqrt(2*x)-sin(x);int(s)disp('Integracion en funcion de una sola variable')s1=sin(x)*cos(y)+tan(y);int(s1,y)% Otra forma de resolverint(sqrt(x)-exp(x.^3)-sin(x),x)

PRACTICA #7

%% PEQUEÑOS EJEMPLOSdisp('Calculo del volumen de un cilindro')h=15.89;r=6.18;volumenc=pi*r.^2*hdisp('Dibujar un circulo')subplot(1,2,1)xc=3;yc=-5;r1=6;n=40; k=1:n;fi=2*pi*k/n;x1=xc+r1*cos(fi);y1=yc+r1*sin(fi);plot(xc,yc,'x',x1,y1);axis([-5 10 -10 6]), axis equal;gridsubplot(1,2,2)wx=25;wy=15;delta=8;t=0:360;x2=sind(wx*t);y2=sind(wy*t+delta);

Page 48: Comandos Matlab

plot(x2,y2,'r');text(0,0.2,'\omega_x/\omega_y=2/1')xlabel('x'); ylabel('y')title('Figuras de Lissajous')

%% TEMA 2: MAXIMOS Y MINIMOS% Dada la funcion f(x,y)=x^2+y^2-2x+4y+6, se pide:% - Representar la funcion % - Calcular los puntos criticos % - Calcular los extremos relativos de f.¿Alcanza esta funcion un maximo o un minimo absoluto?disp('a')figure (2)[X,Y]=meshgrid(-3:0.2:3);Z=X.^2+Y.^2-2*X+4*Y+6;subplot(1,2,1)surf(X,Y,Z)subplot(1,2,2)

Page 49: Comandos Matlab

contour(X,Y,Z,25)disp('b')syms x2 y2;f3=x2.^2+y2.^2-2*x2+4*y2+6;fx=diff(f3,x2);fy=diff(f3,y2);disp('Puntos criticos')[a1,b1]=solve(fx,fy);puntos=double([a1 b1])disp('c')fxx=diff(fx,x2);fxy=diff(fx,y2);fyy=diff(fy,y2);H=fxx*fyy-fxy.^2;valor_hessiano=subs(H,{x2,y2},{a1,b1})valor_fxx=subs(fxx,{x2,y2},{a1,b1})

% Dada la funcion fxy=y^3x+y^2-4yx+2x+10 en el dominio D dado por el% triangulo T de vertices A(2,0),B(4,2) y C(0,2), se pide:% - Representar la superficie en un rectangulo que contenga al triangulo T% - Calcular los extremos de f y determinar cuales de ellos se encuentran% en el interior de T.% - Representar en el dominio el segmento que une los puntos A y B y su% imagen por f. ¿Cual es el valor maximo y minimo que toma la funcion sobre este segmento?% - Representar en el dominio el segmento que une los puntos B y C y su% imagen por f. ¿Cual es el valor maximo y minimo que toma la funcion sobre este segmento?% - Representar en el dominio el segmento que une los puntos C y A y su% imagen por f. ¿Cua es el valor maximo y minimo que toma la funcion sobre este segmento?% ¿Cual es el valor maximo y minimo que toma la funcion f si se considera como dominio el triangulo T? disp('Solucion')% Literal Afigure(3)

Page 50: Comandos Matlab

[X,Y]=meshgrid(0:.25:4,0:0.25:3);Z=(Y.^3).*X+Y.^2-4*Y.*X+3*X+10;subplot(1,2,1)h1=surf(X,Y,Z)% Dibujamos la superficie con color magenta, con transparencia 0.5 y color% de la reticula en blancoset(h1,'FaceColor','magenta','FaceAlpha',0.5,'EdgeColor','w')% Etiquetamos los ejesxlabel('Eje x')ylabel('Eje y')zlabel('Eje z')title('Grafica de f(x,y)=x^2*y+y^2-4*x+2*y+10')view(22,22)hold onpX=[2 4 0 2];pY=[0 2 2 0];pZ=[0 0 0 0];line(pX,pY,pZ,'linewidth',2,'color','blue') % Literal Bsyms x3 y3f1=y3.^3*x3+y3.^2-4*y3*x3+3*x3+10;fx1=diff(f1,x3)fy1=diff(f1,y3)[a3,b3]=solve(fx1,fy1);Puntos=double([a3 b3])fxx1=diff(fx1,x3);fxy1=diff(fx1,y3);fyy1=diff(fy1,y3);H1=fxx1*fyy1-fxy1.^2;valor_Hessiano=subs(H1,{x3,y3},{a3,b3})valor_fxx=subs(fxx1,{x3,y3},{a3,b3}) % Literal C% Parametrizamos el segmento que pasa por (2,0,0) y (4,2,0)t1=linspace(0,1);X1=2+t1*2;Y1=0+t1*2;Z1=0*t1;% La dibujamos con grosor 2 y color azulZ1=(Y1.^3).*X1+Y1.^2-4*Y1.*X1+3*X1+10;line(X1,Y1,Z1,'linewidth',2,'color','blue')% Calculamos los extremos de f sobre este segmentosyms uf_sobre_AB=subs(f1,{x3,y3},{2+u*2,2*u});der1=diff(f_sobre_AB);puntos=solve(der1);puntos_AB=double(puntos)valorf_puntosCritiosAB=double(subs(f_sobre_AB,u,[0 puntos(2) 1])) % Literal D% Parametrizamos el segmento que pasa por (4,2,0) y (0,2,0)t2=linspace(0,1);X2=4-t2*4;Y2=2+t2*0;Z2=0*t2;% La dibujamos con grosor 2 y color azulZ2=(Y2.^3).*X2+Y2.^2-4*Y2.*X2+3*X2+10;line(X2,Y2,Z2,'linewidth',2,'color','yellow')% Calculamos los extremos de f sobre este segmento

Page 51: Comandos Matlab

f_sobre_BC=subs(f1,{x3,y3},{4-4*u,2});der2=diff(f_sobre_BC);puntos1=solve(der2);puntos_BC=double(puntos1)%valorf_puntosCritiosBC=double(subs(f_sobre_BC,u,[0 puntos1(1) 1])) % Literal E% Parametrizamos el segmento que pasa por (4,2,0) y (0,2,0)t3=linspace(0,1);X3=0+t3*2;Y3=2-t3*2;Z3=0*t3;% La dibujamos con grosor 2 y color azulZ3=(Y3.^3).*X3+Y3.^2-4*Y3.*X3+3*X3+10;line(X3,Y3,Z3,'linewidth',2,'color','cyan')% Calculamos los extremos de f sobre este segmentof_sobre_CA=subs(f1,{x3,y3},{2*u,2-u*2});der3=diff(f_sobre_CA);puntos2=solve(der3);puntos_CA=double(puntos2)valorf_puntosCritiosCA=double(subs(f_sobre_CA,u,[0 puntos2(2) 1]))

Page 52: Comandos Matlab
Page 53: Comandos Matlab

%% TEMA 2: METODO NUMERICOdisp('Interpolacion del punto fijo')xf(1)=input('Ingrese el valor inicial: ');tol=input('Ingrese el porcentaje de error: ');syms x;f=input('Ingrese la función f(x), despejada g(f(x)): '); i=1;ea(1)=100;while abs(ea(i))>=tol, xf(i+1) = subs(f,x,xf(i)); ea(i+1) = abs((xf(i+1)-xf(i))/xf(i+1))*100; i=i+1;endfprintf('i xf(i) Error aprox (i) \n');for j=1:i; fprintf('%2d \t %11.7f \t %7.3f \n',j-1,xf(j),ea(j));end

Page 54: Comandos Matlab

ANEXOS

Page 55: Comandos Matlab

PRACTICA #1

%Datos personales%Nombre: Esteban Herrera%Nivel: Quinto%Fecha: 10 de septiembre del 2015%Operaciones matematicas comunes clc; close all; clear all;a=7 % damos un valor a la variable ab=4 % damos un valor a la variable ba+b % suma de las dos variablesa/ba^bwho;whos; %*******************FORMATOS DE NUMEROS********************+% format short formato como fija con 4 digitos despues de la coma% format long fija con 14 0 15 digitos despues de la coma% format short e formato flotante con 4 digitos despues de la coma % format long e formato flotante con 14 o 15 digitos despues de la coma % format short g la mejor entre la coma fija o flotante con 4 digitos despues de la coma% format long g la mejor entre coma fija o flotante con 14 o 15 digitos% despues de la coma % format short eng notacion cientifica con 4 digitos despues de la coma y% un exponente de 3% format long eng notacion cientifica con 16 digitos significantes y un% exponente de 3% format bank formato como fija con 2 digitos despues de la coma% format hex hexadecimal % format rat aproximacion racional % format + positivo, negativo o espacio en blanco %*************VARIABLES COMUNES***************% ans: variables usada por defecto para lamacenar el ultimo resultado% pi: razon de una circunferecnia a su diametro% eps: numero mas pequeño, tal que cuando se le suma 1, crea un numero en% coma flotante en el computador mayor que 1% inf: infinito% nan: magnitud no numerica% i y j: i=j=sqrt(-1)% realmin: el numero real positivo mas pequeño que es utilizable% realmax: el numero real positivo mas grande que es utilizable %**********TIEMPO**********% clock: años, mes, dia% calendar% date %****************FUNCIONES MATEMATICAS COMUNES***********

Page 56: Comandos Matlab

% cell(x): redondea hacia el infinito% fix(x): redondea hacia cero% floor(x): redondea hacia menos infinito% round(x): redondea hacia el entero mas proximo ---> round([564684 6546465% 3553453]) %*****************FUNCIONES TRIG0NOMETRICAS*****% ...(x): el angulo se expresa en radianes% sin(x)% cos(x)% tan(x)% cos(x)% sec(x)% cot(x)% ...d(x): se expresa el angulo en grados% ...h(x): funciones hiperbolicas% a...(x): inversa de la funcion trigonometrica con el resultados% expresado en radianes% a...h(x): inversa de la funcion trigonometrica hiperbolica con el% resultado expresado en radianes %********ALGUNAS OPERACIONES*******% abs(x): valor absoluto o magnitud de una numero complejo% sign(x): signo del argumento si x es un valor real (-1 si es negativo, 0% si es cero, 1 si es positivo)% exp(x): exponencial% gcd(m,n): maximo comun divisor% lcm(m,n): minimo comun multiplo% log(x): logaritmo neperiano o natural% log2(x): logaritmo en base 2% log10(x): logaritmo decimal% mod(x,y): modulo despues de la division% rem(x,y): resto de la division% sqrt(x): raiz cuadrada% athroot(x,n): raiz n-esimna de x %**********NUMEROS COMPLEJOS*************% abs(x): magnitud del numero complejo x% angle(x): angulo (en radianes ) del complejo x% complex(y,z): genera el complejo y+zi% conj(x): conjugado del numero complejo x% imag(x): parte imaginaria del numero complejo x% real(x): parte real del numero complejo x% sign(x): divide el complejo x por si magnitud devuelve un numero complejo% con el mismo angulo de fase pero con magnitud 1% isreal(x): devuelve 1 si es real y 0 si es complejo

PRACTICA # 2

% Practica 2% Esteban Herrera% Quinto nivel% 11 de septiembre del 2015

Page 57: Comandos Matlab

% Numeros, Vectores, Matrices% Tamaño del vector --> size(v)%***********COMO DEFINIR*****************************% Para crea un vector introducimos los valores deseados separados por% espacios o comas todo ello entre corchetes. Si lo queremos es crear una% matriz lo hacemos de forma analoga pero separando las filas con puntos y% comas (;)% Generalmente usaremos letras mayusculas cuando nombremos a las matrices y% minusculas para vectores y escalares. Esto no es imprecindible y Matlab% no lo exige, pero resulta util. x=[5 7 -2 4 -6] % Es un vector los elementos separados por espacioy=[2,1,3,7] % elementos separados con comasz=[0 1 2,3 4,5]A=[1 2 3;4 5 6] % Es una matriz con 2 filas y 3 columnas %************DIRECCIONAMIENTO DE ELEMENTO DE VECTORES Y MATRICES******% Para acceder a los elementos individuales de un vector lo haremos% utilizando subindices, asi x(n) seria el n-esimo elemento del vector x.% Si queremos acceder al ultimo podemos indicarlo usando end como subindice X=[5 7 -2 4 -6]X(2) % Segundo elemento del vector XX(end) % Ultimo elemento del vector X % Para acceder a un bloque de elemento a la vez, se usa la notacion de dos% puntos (:), asi x(m;n) nos da todos los elementos desde el m-esimo hasta% el n-esimo del vector x X(2:4) % Devuelve desde el segundo al cuarto elemento del vector x % Si introducimos un numero entre el primero y el segundo tambien separado% por dos punto(:) se mostrara los elementos del primer al ultimo indicado,% incrementados segun el numero que aparece en el centro (o decrementando% si el numero es negativo) X(1:2:5) % Devuelve el primero el tercero y quinto elemento del vector x % Otra forma de obtener un conjunto concreto de elementos del vector es% indicado entre corchetes [] las posiciones de los elementos que queremos% obtener poniendo parentesis fuera de los corchetes X([3 5 1]) % Devuelve el tercer, quinto y primer elemento del vector x % Para acceder a los elementos de una matriz necesitamos dar dos valores,% el primer indica la fila y el segundo la columna

Page 58: Comandos Matlab

a=[1 2 3;4 5 6]a(2,1) % elemento de la matriz que esta en la fila 2 y en la columna 1 % Si queremos que escriba toda una fila usaremos los dos puntos para% indicar que queremos todos los elementos a(2,:) % Escribe la segunda fila de la matriz % Y similar si queremos que escriba toda la columna pero ahora situamos los% dos puntos en el lugar de las filas para indicar todas las filas de esa% columna a(:,2); % Al igual que con los vectores podemos escribir una serie de filas o% columnas, la manera de hacerlo seria muy parecido. a(2,2:3) % Escribe la segunda fila de la matriz, las columnas de la 2 a la 3a(2,[3 1]) % Escribe de la segunda fila de la matriz, la columnas 3 y 1a([2 1], 2:3) % Escribe de las filas 2 y 1 de la matriz. las columnas de la 2 a la 3a(end, [1 3]) % Escribe de la ultima fila, las columnas 1 y 3 a(5) % accede al elemento 5 de la matriz, es decir, igual que si escribieramos a(1,3) %*************CONSTRUCCION ABREVIADA DE ALGUNOS VECTORES***************% A parte de definir un vector introduciendo cada uno de sus elementos,% tambien podemos crearlo haciendo uso de las siguientes sentencias:% (a:b) crea un vector que comienza en el valor a y acaba en el valor b% aumentando de 1 en 1% (a:c:b) crea un vector que comienza en el valor a y acaba en b aumentando% de c en c% linspace(a,b,c) genera un vector linealmente espaciado entre los valores% de a y b con c elementos% linspace(a,b) genera un vector linealmente espaciado entre los valores% a y b con 100 elementos% logspace(a,b,c) genera un vector logaritmicamente espaciado entre los% valores 10^a y 10^b con c elementos% logspace(a,b) genera un vector logaritmicamente espaciado 10^a y 10^b con% 50 elementos (1:7) % crea un vector que comienza en 1 y aumenta de 1 en 1 y termina en 7(1:3:10) % crea un vector que comienza en 1, aumenta de 3 en 3 y acaba en 10

Page 59: Comandos Matlab

(1:4:10) % crea un vector que comienza en 1, aumenta de 4 en 5 y hasta el 10 y por eso acaba en 9(50:-7:1) % crea un vector comenzando en 50 disminuyendo de 7 en 7 hasta 1linspace(2,6,3) % genera un vector desde 2 al 6 con 3 elementos equidistanteslinspace(2,6,4) % genera un vector desde el 2 al 6 con 4 elementos equidistanteslogspace(0,2,4) % genera un vector logaritmicamente espaciado entre 10^0 y 10^2 con 4 elementos %********CONSTRUCCION DE MATRICES*******************% Al igual que pasa con los vectores, existen unas sentencias que nos ayuda% a crear mas rapidamente algunas matrices que matlab ya tiene predefinidas% (m y n deben tomar valores naturales)% zeros (n) crea una matriz cuadrada nxn de ceros% zeros (n,m) crea una matriz nxm de ceros% ones(n) crea una matriz cuadrada de nxn de unos% ones(m,n) crea una matriz mxn de unos% rand(n) crea una matriz cuadrada de nxn de numeros aleatorios con% distribucion uniforme (0,1)% rand(m,n) crea una matriz de mxn de numeros aleatorios con distribucion% uniforme (0,1)% randn(n) crea una matriz cuadrada de nxn de numeros aleatorios con% distribucion normal (0,1)% randn(m,n) crea una matriz mxn de numeros aleatorios con distribucion% normal (0,1)% eye(n) crea una matriz cuadrada nxn de unos en la diagonal y ceros en el% resto% eye(m,n) crea una matriz mxn de unso en la diagonal y ceros el resto% magic(n) crea una matriz cuadrada nxn de enteros de modo que sumen lo% mismo las fila y las columnas% hilb(n) crea una matriz cuadrada de nxn de Hilbert, es decir, los% elementos (i,j) responden a la expresion (1/(i+j-1))% invhilb(n) crea una matriz cuadrada nxn que es la inversa de la matriz de% Hilbert zeros(3) % Crea una matriz cuadrada de 3x3 de ceroszeros(2,5) % matriz de 2x5 de cerosones(2,3) % matriz de unosrand(2,4) % matriz de valores aleatorios entre 0 y 1 segun la uniformerandn(2,5) % matriz de valores aleatorios segun la normal (0,1)eye(2) % matriz identidad o unidadmagic(4) % matriz magica de 4x4hilb(3) % matriz de Hilbert 3x3invhilb(3) % inversa de la matriz de Hilbert 3x3 %******OPERACIONES CON MATRICES**************% a+b suma de matrices% a-b resta de matrices% a*b multiplicacion de matrices% a.*b multiplicacion elemento a elemento de matrices% a/b division de matrices por la derecha% a./b division elemento a elemento de matrices por la derecha

Page 60: Comandos Matlab

% a\b division de matrices por la izquierda% a.\b division elemento a elemento de matrices por la izquierda% a^n potenciacion (n debe ser un numero, no una matriz)% a.^b potenciacion elemento a elemento de matrices% a' transposicion compleja conjugada% a.' transposicion de matrices %**************PRACTICA**************** q=[3 24;6 8]w=[1 0.5; 0.75 11]e=[1+12i 2+2.5i; 30+1i 4.6+7i] q+e % suma de matricesw-e % resta de matricesq*w % multiplicamos dos matricesq.*w % multiplicacion de elemento a elementoq/e % division de matrices por la derechaw./q % division elemento a elemento por la derechae\q % division por la izquierdaw.\e % division elemento a elemento por la izquierdaw^5.2 % potenciacione.^q % potenciacion elemento a elemento de matricese' % transpuesta conjugadaw.' % transposicion de matrices

PRACTICA #3

%Practica 3%Esteban Herrera% Continuacion de matrices %**************FUNCIONES PARA OPERAR CON VECTORES************% cross(x,y) producto vectorial entre los vectores x e y % dot(x,y) producto escalar entre los vectores x e y x=[1 2 3]; y=[4 5 6];cross(x,y) % Producto vectorialdot(x,y) % Producto escalar %**********FUNCIONES PARA EL ANALISIS DE MATRICES********% cond(A) numero de condicion% det(A) determinante% diag(V) crea una matriz diagonal con el vector V sobre la diagonal% diag(A) extrae la diagonal de la matriz A como un vector columna% eig(A) valores propios% inv(A) matriz inversa% length(A) maxima dimension% norm(A) norma% norm(A,n) norma-n% normest(A) estimacion de la norma-2% null(A) espacio nulo% orth(A) ortogonalizacion% pinv(A) pseudoinversa% poly(A) polinomio caracteristico% rank(A) rango% rref(A) reduccion mediante la eliminacion de Gauss de una matriz% size(A) dimensiones% trace(A) traza % tril(A) matriz triangular inferior a partir de la matriz A

Page 61: Comandos Matlab

% triu(A) matriz triangular superior a partir de la matriz A% Con A matriz, v vector y n un numero natural v=[1 2 3];diag(v) % Crea una matriz diagonal a partir de un vector vA=[1 2 3 4;7 8 9 2; 2 4 6 8];diag(A) % crea un vector columna a partir de la diagonal de la matriz Asize(A) % devuelve las dimensiones de la matriz como un vector filalength(A) % devuelve la mayor de las dos dimensiones de la matriz%trace(A) % traza de la matriz solo matrices cuadradadasrank(A) % rango de la matrizrref(A) % reduccion mediante GaussI=tril(A) %convierte a ceros todos los elementos que quedan encima de la diagonal principal y lo guarda en la variable Iu=triu(A) %convierte en ceros todos los elementos que quedan debajo de la diagonal principal y lo guarda en la variable u %************OTRAS OPERACIONES CON MATRICES***********% find(A) devuelve los indices donde las entradas de A son distintos de% cero% fliplr(A) intercambia la matriz de izquierda a derecha% flipud(A) intercambia la matriz de arriba a abajo% reshpe(A,m,n) devuelve una matriz mxn cuyos elementos se toman por% columnas de A, si A no contiene mxn elementos daria error% rot90(A) gira la matriz 90 grados en sentido contrario a la agujas del% relog% rot90(A,n) gira la matriz nx90 grados% expm(A) matriz exponecial% logm(A) matriz logaritmica% sqrtm(A) matriz de raices cuadradas% funm(A,@funcion) evalua la funcion que indiquemos en la matriz A% exp, log, sqrt... operan elemento a elemento% [VE,VA]=eig(A) VE son los vectores propios y VA son los valores propios% [L,U]=lu(A) factorizacion LU% [Q,R]=qr(A) factorizacion QR% (con A matriz, m y n naturales) a=[pi 0;pi/4 pi/3];find(a) % devuelve los indices como un vector columnareshape(a,1,4)rot90(a) % gira la matriz 90 gradosrot90(a,3) % gira la matriz 270 grados (90*3=270)funm(a,@sin) % calcula el seno de cada elemento de la matrizexpm(a) %************************TEXTO********% Una cadena de caractere es texto rodeando por comillas simples '' y se% maneja como vectores filas. Se direccionan y manipulan igual que los% vectores. Son posibles las operaciones matematicas sobre cadenas. Una% vez hecha una operacion matematica sobre la cadena, esta se ve como un% vector de numeros ASCII.% Para ver la representacion ASCII de una cadena, podemos utiliza las% funciones abs, double o sumamos cero. Para restaurarla y verla de nuevo

Page 62: Comandos Matlab

% como cadena de caracteres, usamos la funcion setstr. Si queremos cambiar% a minusculas añadiremos la diferencia entre 'a' y 'A'.% Si queremos que escriba algo en pantalla podemos utilizar el comando% disp. b='casa'; c='gato'; % b y c cadenas de caracteres (se manejaran como vectores) b+cb+0 % vemos la representacion ASCII de la cadenaabs(b) % otra forma de ver la representacion ASCII de la cadenadouble(b) % otra tercera forma de ver la representacion ASCII de la cadenasetstr(ans) % convertimos un vector de numero enteros en caracteresabs('b')-abs('A') % calculamos la diferencia entre minusculas y mayusculassetstr(b-32) % escribimos los caracteres conociendo la representacion ASCIIdisp(b) % escribe el valor almacenado en la variable adisp('escribe esto') % escribe el texto que vaya entre las comillas %***********HIPERMATRICES**********% COMO DEFINIRLAS% Matlab permite trabajar con matrices d mas de dos dimensiones. Los% elementos de una hipermatriz pueden ser numeros, caracteres, estructuras% y vectores o matrices de celdas. Las funciones que operan con matrices de% ms de dos dimensiones son analogas de las funciones vistas anteriormente% aunque con algunas diferencias, por ejempo, a la hora de definirlas. HM(:,:,1)=[1 2 3;4 5 6]; % definimos la primera capaHM(:,:,2)=[7 8 9;10 11 12] % definimos la segunda capa %************OPERACIONES CON HIPERMATRICES*************% Algunas funciones para generar matrices admiten mas de dos subindices y% pueden ser utilizadas para generar hipermatrices como rand, randn, zeros% y ones, tambien se pueden emplear con hipermatrices las funciones size y% reshape entre otra. La funcion cat permite concatenar matrices segun las% distintas dimensiones. q=zeros(2,3); w=ones(2,3); % definimos dos matrices de las mismas dimensionescat(1,q,w) % las concatena una debajo de la otracat(2,q,w) % las concatena una al lado de la otracat(3,q,w) % las concatena como distintas capas de una hipermatriz % Respecto al resto de funciones debemos tener en cuenta que:% 1.- Las fumciomes que operam sobre escalares, como sin, cos, etc. se% aplican sobre hipermatrices elemento a elemento (igual que ocurre al% aplicarlas sobre vectores y matrices)% 2.- Las funciones que opera sobre vectores, como sum, max, etc. se% aplican a matricres e hipermatrices segun la primera dimension,% resultando un array de una dimension inferior.

Page 63: Comandos Matlab

% 3.- Las funciones matriciales propias del algebra lineal, como det, inv,% etc. no se pueden aplicar a hipermatrices, para aplicarlas habria que% extraer las matrices correspondientes.

PRACTICA #4

% PRACTICA #4% Esteban Herrera% 14 de Septiembre del 2015 %************PASOS GUIAS PARA GRAFICAR*********% Graficas% La orden plot genera una grafica. Los argumentos deben ser vectores de la% misma longitud.figure (1);xlabel('GRAFICO 1');x=[-2 -1 0 1 2 3]; y=[4 1 0 1 4 9];plot(x,y);% Si queremos cambiar la apariencia de la grafica basta pinchar en el% ultimo boton de la barra de herramientas y se abrira unos cuadros en los% laterales que nos permitiran ir haciendo los cambios deseados como darle% nombre a los ejes % La funcion plot nos permite otras opciones como superponer graficas sobre% los mismos ejes:figure (2);ylabel('GRAFICO 2');X=[-2 -1 0 1 2 3];Y=[4 1 0 1 4 9]; Z=[6 5 3 7 5 2];plot(X,Y,X,Z); % Tambien podemos usar distintos tipos de lineas para el dibujo de la% grafica:figure (3);title('GRAFICO 3');plot(x,y,'*');grid; % Ademas podemos colocar etiquetas o manipular la grafica:% etiqueta sobre la X de la grafica actual: xlabel('texto')% etiqueta sobre la Y de la grafica actual: ylabel('texto')% titulo en la cabecera de la grafica actual: title('texto')% texto en el lugar especificado despues con el raton: text(x,y,'texto')% texto, el lugar lo indicamos despues con el raton: gtext('texto')% dibujar una rejilla: grid% fija los valores maximo y minimo de los ejes: axis([xmin xmax ymin ymax])% fija que la escala en los ejes sea igual: axis equal% fija que la grafica sea un cuadrado: axis square% desactiva axis equal y axis square axis normal

Page 64: Comandos Matlab

% abre una ventana de grafico: hold on% borra lo que hay en la ventana de grafico: hold off % Todas estas ordenes se las podemos dar desde la propia ventana de la% grafica una vez que hemos abierto las opciones con el boton% indicado anteriormente% Otros comandos con las graficas son los siguientes:% % area colorea el area bajo la grafica% bar diagrama de barras(verticales)% barth diagrama de barras (horinzontales)% hist histograma% pie sectores% rose histograma polar% stairs grafico de escalera% stem secuencia de datos discretos% loglog como plot pero con escala logaritmica en ambos ejes% semilogx como plot pero escala logaritmica en el eje x% semilogy como plot pero escala logaritmica en el eje y % Para obtener una informacion mas detallada se recomienda utilizar la% ayuda de Matlab% help <orden>% Una ventana grafica se puede dividir en m particiones horizontales y en n% verticales, de modo que cada subventana tiene sus propios ejes, y para% hacer esto vamos a usar subplot(m,n,p) donde p indica la subdivision que% se convierte en activa.figure(4)a=1:360;y1=sind(a);y2=cosd(a);y3=exp(a);y4=exp(-a);subplot(2,2,1),plot(a,y1),title('seno')subplot(2,2,2),plot(a,y2),title('coseno')subplot(2,2,3),plot(a,y3),title('exponencial')subplot(2,2,4),plot(a,y4),title('-exponencial') % Para volver al modo por defecto basta escribir: subplot(1,1,1).% Para dibujar poligonos podemos usar la funcion plot pero teniendo en% cuenta que el ultimo punto de ambos vectores deben coincidir para que la% grafica quede cerrada. Pero si lo que queremos es que quede coloreado% todo el interior del poligono debemos mejor usar la funcion fill, tiene% tres argumento, los dos vectores que forman los puntos y un tercer% argumento para indicar el colorfigure(5)A=[-2 0 2 0 -2];B=[4 8 4 0 4];plot(A,B)figure (6)plot(A,B,'r') %********GRAFICOS EN 3D***************% Tambien podemos crear graficos en 3 dimensiones, se trata de extender la% orden plot(2D) a plot3(3D) donde el formato sera igual pero los datos

Page 65: Comandos Matlab

% estaran en tripletes:figure(7)q=-720:720; w=sind(q);e=cosd(q);plot3(q,w,e) % Podemos hacer girar la grafica usando la barra de herramientas el boton o% hacerla mas grande o mas pequeña con la lupa. Al final que ocurria con% las graficas en dos dimensiones podemos nombrar los ejes o hacer% modificaciones entrando en opciones con el boton.% Si queremos representar un poligono en 3 dimensiones lo haremos con la% funcion fill3 de forma similar a fill pero ahora con 4 argumentos, siendo% el cuarto el que indica el color.figure(8)Q=[3 5 10 5 3];fill3(A,B,Q,'b') % Superficie de malla% La orden [X,Y]=meshgrid(x,y) crea una matriz X cuyas filas son copias del% vector x y una matriz Y cuyas columnas son copias del vector y. Para% generar la grafica de malla se usa la orden mesh(X,Y,Z), mesh acepta un% argumento opcional para controlar los colores. Tambien puede tomar una% matriz simple como argumento: mesh(Z).figure(9)W=-10:0.5:10;E=-10:0.5:10;[o,p]=meshgrid(W,E);i=sin(sqrt(o.^2+p.^2))./sqrt(o.^2+p.^2+0.1);mesh(o,p,i) % Hubiera dado igual si hubieramos escrito:figure(10)[O,P]=meshgrid(-10:0.5:10);I=sin(sqrt(o.^2+p.^2))./sqrt(o.^2+p.^2+0.1);mesh(O,P,I) % Grafica de la superficies% Es similar que la grafica de malla, pero aqui se rellenan los espacios% entre lineas. La orden que usamos es surf con los mismo argumentos que% para meshfigure(11)surf(o,p,i) % Las graficas de contorno en 2-D y en 3-D se generan usando% respectivamente las funciones contour y contour3.figure(12)contour(o,p,i) % Dibuja las lineas de contorno % La funcion pcolor transforma la altura a un conjunto de coloresfigure(13)pcolor(o,p,i) % Manipulacion de graficos%

Page 66: Comandos Matlab

% fija el angulo de vision especificado al ezimut y la elevacion >>view(az,el)% coloca su vista en un vector de coordenada cartesiana(x,y,z) en el% espacio 3-D >>view([x,y,z])% almacena en az y el los valores del azimut y de la elevacion de la vista% actual: >> [az,el]=view% añade etiquetas de altura a los graficos de contorno: >>clabel(C,h)% añade una barra de color vertical mostrando las transformaciones: >>colorbarfigure(14)surf(o,p,i)view(10,70)

PRACTICA #5

% PRACTICA 5% Esteban Herrera% 15 de septiembre del 2015 %*********PROGRAMACION BAJO MATLAB. ESTRUCTURAS, SENTENCIAS Y BUCLES******% ESTRUCTURA% Es una agrupacion de datos de tipo diferente bajo un mismo nombre. A los% datos les llamamos campos. No hace falta definir previamente el modelo de% la estructura, podemos ir creando los distintos campos uno a uno o bien% con el comando struct, donde los nombres de los campos se escriben entre% apostrofes (') seguidos del valor que se les quiere asignar.% Ejemplos:alumno.nombre='Esteban'; % introducimos el campo nombre en la estructura alumnoalumno.apellido1='Herrera'; % introducimos el campo apellido1 en la estructura alumnoalumno.apellido2='Cisneros'; % introducimos el campo apellido2 en la estructura alumnoalumno.edad=20; % introducimos el campo edad en la estructura alumnoalumno.carrera='Ingenieria Electrica'; % introducimos el campo carrera en la estructura alumnoalumno.nivel='Quinto'; % introducimos el campo nivel en la estructura alumnoalumno.hobby='Ciclismo'; % introducimos el campo hobby en la estructura alumnoalumno % escribe por pantalla informacion almacenada en la estructura alumno= % 2.- Uso de structalumno2=struct('nombre','Bladimir','apellido1','Herrera','apellido2','Cisneros','edad',20) % alumno2= % otro modo de introducir los campos % 3.- Pueden crearse vectores y matrices, por ejemplo:%alumno(1)=struct('nombre','Esteban','apellido1','Herrera','apellido2','Cisneros','edad',20) %**********OPERACIONES CON ESTRUCTURAS****************************

Page 67: Comandos Matlab

% % fieldnames(E) devuelve el nombre de los campos de la estructura E% isfield(E,'c') devuelve 1 si c es un campo de la estructura E y 0 si% no lo es% isstruct(E) devuelve 1 si es E es una estructura y 0 si no lo es% rmfield(E,'c') elimina el campo c de la estructura E (E es una% estructura y c es un campo)% Ejemplos: fieldnames(alumno) % devuelve los campos de la estructura alumnoisfield(alumno,'nombre') % devuelve 1 por ser cierto que nombre es un campo de alumnoisstruct(alumno) % devuelve 1 porque es cierto que alumno es una estructurarmfield(alumno,'edad') % elimina el campo edad de la estructura alumno %*****************VECTORES Y MATRICES COMO CELDAS******************% Un vector de celdas es un vector cuyos elemenos son cada uno de ellos una% variable de cualquier tipo. En todo vector sus elementos pueden ser% numeros o cadenas de caracteres, pero en un vector de celdas el primer% elemento puede ser un numero, el segundo una matriz, el tercero una% estructura,etc. % Para crear un vector de celdas usaremos llaves({})celda(1)={[0 1 2]}; % creamos un vector de celdas definiendo celda a celdacelda(2)={'cadena de caracteres'};celda(3)={eye(2)};celda(4)={-7};celda % CELDA A CELDA DE OTRA FORMA:cel{1}=[0 1 2]; % creamos otro vector de celdas definiendo celda a celda de forma distintacel{2}='cadena de caracteres';cel{3}=eye(2);cel{4}=-7;cel % MATRICES%% cell(m,n) crea una matriz de celdas con m filas y n columnas% celldisp(c) muestra el contenido de todas las celdas de c% cellplot(c) muestra la representacion grafica de las celdas de c% iscell(c) devuelve 1 si es una matriz de celdas y 0 si no lo es % num2cell(x) convierte el vector o matriz numerica en celdas% Nota: m y n numeros naturales, c celdas y x vector o matriz% Ejemplo:disp('Matriz por celdas')c={[0 1 2],'cadena de caracteres',eye(2),-7}; % otra forma de crear celdas si queremos crear una matriz o una% hipermatriz de celdas se haria de forma similarcell(2,3) % crea una matriz de celdas vaciascelldisp(c) % escribe el contenido de las celdas de ccellplot(c) % representa graficamente como son las celdas de c iscell(c)

Page 68: Comandos Matlab

A=eye(3,2);num2cell(A)disp('end')%*****OPERACIONES RELACIONES Y LOGICAS************% Como entradas a las expresiones relacionadas y logicas, Matlab considera% que cero es falso y que cualquier numero distinto de cero es verdadero.% La salida de expresiones de este tipo produce 1 si es verdadero y 0 si es% falso% OPERADORES RELACIONALES% < menor que% <= menor o igual que% > mayor que% >= mayor o igual que% = igual a% ~= distinto de % OPERADORES LOGICOS% & y% | o% ~ nox=5;y=1;x<y% Como matrizX=1:5;Y=X-4;X<Y% Nota comparacion falsa para los primeros cuatro, no para el ultimo% Ejemplo 2: Operadores logicos and, not y or(&,~,|)a=[1 2 3 4 5];b=[-2 0 2 4 6];d=[8 8 8 8 8];d>a & d>ba>b | a>d % Ademas de los operadores relacionales y logicos basicos anteriores,% matlab proporciona una serio de funciones relacionales y logicas% adicionales que incluyen: % xor(x,y) operaciones "o" exculsiva, devuelve 0 si ambas son falsas o% ambas verdaderas y devuelve 1 si una es falsa y la otra verdadera% any(x) devuelve 1 si algun elemento en un vector x es no nulo y% devuelve 0 si son todos nulos, si se trata de una matriz da una respuesta% por cada columna% all(x) devuelve 1 si todos los elementos en un vector x son no nulos y% 0 si existe alguno nulo y si se trata de una matriz da una respues por% cada columna% exist('x') devuelve 1 su existe y 0 si no existe% isnan(x) devuelve unos en magnitudes no numericas (NaN) en x % isinf(x) devuelve unos en magnitudes infinitas (Inf) en x% isfinite(x) devuelve unos en valores finitos en x % Nota: Podemos ver muchos mas casos pero todos serian similares: ischar,% isempty, isequal, isfloat, isinteger, islogical, isnumeric, isprime,% isreal, isscalar, isspace,.....

Page 69: Comandos Matlab

% Nota: Existe un orden de precedencia para operadores aritmeticos, logicos% y relacionales, en la siguiente tabla van de mayor a menor precedencia: % Orden de precedencia de operadores%% 1° .'.'% 2° */.*./.% 3° +-~+(unario)-(unario)% 4° :><>=<===~=% 5° |& q=1:9;w=5-q; % definimos dos vectoresr1=q<6 % pregunta si q es menor que 6, devuelve 1 cuando es verdadero y 0 cuando es falsor2=q==w % pregunta si q es igual a w, devuelve 1 cuando es verdadero y 0 cuando es falsor3=q~=w % pregunta si q es distinto a w, devuelve 1 cuando es verdadero y 0 cuando es falsor4=(q>w)&(w>-3) % pregunta si q>w y w>-3, devuelve 1 cuando es verdadero y 0 cuando es falsoe=[Inf 0 5 -8 NaN 94];exist('e') % pregunta si existe alguna variable llamada eisnan(e) % pregunta cuando e es NaN, devuelve 1 cuando es verdadero y 0 cuando es falsoisinf(e) % pregunta cuando e es Inf, devuelve 1 cuando es verdadero y 0 cuando es falsoisfinite(e) % pregunta cuando e es finito, devuelvo 1 cuando es verdadero y 0 cuando es falso %***********SENTENCIA FOR*******************% Un bloque for en cada iteracion asigna a la variable la columna i-esima% de la expresion y ejecuta las ordenes. En la practica las expresiones% suelen ser del tipo escalar: escalar en cuyo caso las columnas son% escalaresdisp('Sentencia for') for t=1:5 disp('t toma el valor') % escribe por pantalla el texto que se indica entre comillas disp(t) % escribe el valor de la variable tend % Sentencia While% Un bloque while ejecuta las ordenes mientras todos los elementos de la% expresion sean verdaderosdisp('Sentecia while')r=3;while r<5 disp('r es menor que 5 ya que vale') disp(r) r=r+1;end % SENTENCIA IF% Un bloque if puede escribirse de varias maneras distintas. Lo que hace es

Page 70: Comandos Matlab

% evaluar una expresion logica y si es cierta las ordenes que encuentre% antes del end. % Puede que nos interese que en caso de no ejecutar dicha orden ejecute% otra distinta. Esto se lo indicaremos usando else dentro del bloque. % Si queremos dar una estructura mucho mas compleja, usaremos la mas% general donde solo se evaluan las ordenes asociadas con la primera% expresion verdadera de todas. En cuanto la evalue deja de leer el resto y% se dirige directamente al end.% if <expresion1>% <ordenes evaluadas si la expresion1 es verdadera>% elseif <expresion2>% <ordenes evaluadas si la expresion2 es verdadera>% elseif <expresion3>% <ordenes evaluadas si la expresion3 es verdadera>% elseif% ......% ......% else% <ordenes evaluadas si la expresion es verdadera>% end disp('Sentencia if')f=2;if f==0 disp('f vale 0')elseif f==1 disp('f vale 1')elseif f==2 disp('f vale 2')elseif f==3 disp('f vale 3')else disp('b no vale ni 0 ni 2 ni 3')end % Sentencia break% Si queremos que en un momento dado determine la ejecucion de un bucle for% o un bucle while usaremos break % Sentencia Continue% La sentencia continue hace que se pase inmediatamente a la siguiente% iteracion del bucle for o del bucle while saltando todas las ordenes que% hay entre el continue y el fin del bucle en la iteracion actual.% Ejemplo:% Podemos mezclar en un programa varias sentencias de este sitio. Aqui% podemos ver un programa que escribe los primos de 1 al 100 usando las% sentencias if, while y fordisp('Estos son los numeros primos menores de 100')disp(2)for i=2:100 n=2; while n<= sqrt(i) if rem(i,n)==0

Page 71: Comandos Matlab

n=i; else n=n+1; end end if n~=i disp(i) endend

PRACTICA #6

% PRACTICA 6% Esteban Herrera% 16 de septiembre del 2015 %***POLINOMIOS-ANALISIS NUMERICO****%%% *****ANALISIS DE DATOS*********% Matlab ejecuta analisis estadistico sobre conjuntos de datos. Estos% conjuntos de datos se almacenan en matrices orientadas por columnas.% Matlab incluye, entre, otras, las siguientes funciones estadisticas: % corrcoef(x) coeficientes de correlacion% cov(x) matriz de covarianzas% cumprod(x) producto acumulativo de columnas% cumsum(x) suma acumulativa de columnas% diff(x) diferencias entre elementos adyacentes de x% hist(x) histograma o diagrama de barras% iqr(x) rango intercuartilico de la muestra% max(x) maximo de cada columna% mean(x) media de los valores de vectores y columnas% median(x) mediana de los valores de vectores y columnas% min(x) minimo de cada columna% prod(x) producto de elementos en columnas% rand(n) numeros aleatorios distribuidos uniformemente% randn(n) numeros aleatorios distribuidos normalmente% range(x) rango de cada columna% sort(x) ordena columnas en orden ascendente% std(x) desviacion estandar de la muestra% sum(x) suma de elementos de cada columna% tabulate(v) tabla de frecuencias del vector% var(x) varianza de la muestradisp('EJEMPLOS')x=[5 7 9 2 9;3 1 7 5 1;3 9 2 7 5;1 5 5 1 8];cumprod(x) % Matriz de productos acumuladoscumsum(x) % Matriz de sumas acumuladasmean(x) % Media de cada columnamedian(x) % Mediana de cada columnaprod(x) % Producto de todos los elementos de cada columnasort(x) % Ordena los valores de cada columnasum(x) % Suma todos los elementos de cada columnavar(x) % Varianza de los elemento de cada columnamax(x) % Valor maximo de cada columnamin(x) % Valor minimo de cada columnaiqr(x) % Rango intercuartilico de cada columnadisp(' ')y=[5 7 9 2 9 3 1 7 5 1 3 9 2 7 5 1 5 5 1 8];tabulate(y) % Tabla de frecuencias generando a partir de una serie de valores

Page 72: Comandos Matlab

range(x) % Rango de cada columna (diferencia entre el maximo y el minimo) %% ******POLINOMIOS******% RAICES% Un polinomio se representa por un vector fila con sus coeficientes en% orden descendiente, no debemos olvidar colocar los terminos con% coeficiente nulo.% Asi por ejemplo si queremos indicar el polinomio 5x^4+2x^2-x+7 escribimos% [5 0 2 -1 7].% Para encontrar las raices de un polinomio p usaremos la funcion roots(p).% Si conocemos las raices de un polinomio es posible contruir el polinomio% asociado mendiante la funcion poly(r).% Matlab trabaja con los polinomios como vectores fila y con las raices% como vectores columnas.disp('Ejemplos')p=[1 -9 13 9 -14]; % representa al polinomio x^4-9x^3+13x^2-9x-14roots(p) % calculamos sus raicespoly(ans) % devuelve el polinomio generado por esas cuatro raices % OTRAS CARACTERISTICAS% conv(p,q) multiplica los dos polinomios p,q% deconv(c,q) divide el polinomio c entre q% polyder(p) calcula la derivada del polinomio p% polyder(p,q) calcula la derivada del producto de los polinomios p y q% polyval(p,A) evalua el polinomio p en todos los valores de la matriz A% Matlab no tiene incorporado una funcion sumar polinomios.P=[1 2 7];Q=[1 3 6];c=conv(P,Q) % producto de los polinomios p y qdeconv(c,Q) % cociente de dividir el polinomio c entre el polinomio q polyder(P) % derivada del polonomio ppolyder(P,Q) % derivada del producto de los polinomios p y q polyval(P,[0 1 5]) % evalua el polinomio en 0,1 y 5 es decir, halla p(0), p(1) y p(5)polyval(P,[0 1 2;-1 -2 -3;4 0 7]) % igual pero toma los valores de una matriz %% ******ANALISIS NUMERICO******% REPRESENTACION GRAFICA% Existe la funcion fplot que evalua la funcion que se desea representar en% la grafica de salida. Como entrada, necesita conocer el nombre de la% funcion como una cadena de caracteres, y el rando de representacion como% un vector de dos elementos: fplot('nombre',[valor min, valor max]). disp('EJEMPLOS')fplot('sin',[-3*pi,3*pi],'c');ylabel('Funcion seno')xlabel('Tiende desde -3pi a 3pi')% Otras caracteristicas

Page 73: Comandos Matlab

%% diff('f') derivada de la funcion respecto a x% diff('f',t) derivada parcial de la funcion con respecto a t% diff('f',n) derivada n-esima de la funcion respecto a x% feval('f',a) evalua la funcion en a% fminbnd('f',a,b) calcula el minimo de una funcion de una variable% fzero('f',a) busca el cero de una funcion unidimensional de f mas% proximo al punto a% quad('f',a,b) aproxima la integral definida (segun la cuadratura de% Simpson)% trapz(x,y) integral numerica trapezoidal de la funcion formada al% emparejar los puntos de los vectores x e y %% (f funcion, n numero natural, a y b valores numericos, x e y vectores del% mismo tamaño)% Matlab incorpora una serie de funciones para resolver ecuaciones% diferenciales ordinarias. Si se trata de un problema rigido deberiamos% unar: ode15s, ode23s, ode23t u ode23tb, si por el contrario se trata de% un problema sin rigidez: ode113, ode 23 y ode45. Para saber mas de estas% funciones consultar la ayuda de Matlab.disp(' ')disp('EJEMPLOS')syms x;syms y;h= sin(7*x);q=diff(h)% derivada respecto a xw=exp(x)*cos(3*x*y);a=diff(w,y) % derivada parcial respecto a yf= sin(x.^2);df=diff(f,2) % segunda derivada con respecto a xg=cos(3*x.^4)+tan(x);d1=diff(g,3) % tercera derivadag1=sec(0235*x);d2=diff(g1) % derivadag2=cos(x.^y);d3=diff(g2,y) % derivada en funcion de y % - El comando diff tiene distintos parametros por ejemplo: diff(S) o diff(S,var).% - S puede ser una expresion simbolica completa o el nombre de una% expresion sumbolica existente.% - En el comando diff(S), si la expresion contiene una sola variable% simbolica, el calculo se llevara a cabo con respecto a esa variable. Si% la expresion contiene mas de una variable, el caculo se llevara a cabo% con respecto a la variable simbolica por defecto. % - El comando diff(S,var) se utiliza para el calcular la derivada de una% expresion con mas de una variable simbolica.% - Las segundas derivadas ( y otras de mayor orden) se pueden calcular% mediante la sintaxis diff(S,n) o diff(S,var,n), donde n es un numero% positivo

Page 74: Comandos Matlab

% - Es posible utilizar tambien el comnado diff introduciendo la ecuacion% que se va a derivar en forma de cadena, aunque se recuerda, al igual que% en los comandos vistos anteriormente, que las variables simbolicas% contenidas en la cadena se utilizan solo para el calculo, y no podran ser% utilizadas posteriormente como variable simbolicas independientes.% - Note que, aunque el resultados de la derivacion pareza ser un numero,% es una variable simbolica. Con la finalidad de usarla en el calculo de% Matlab, necesitara convertirla a un numero punto flotante de precision% doble.disp(' ')disp('EJEMPLOS')f1=sin(5*x);diff(f1)f2=exp(x)*cos(x)-exp(x)*sin(x);diff(f2,2)diff(diff(f2)) %% ***INTEGRACION CON CALCULO O CALCULO DE PRIMITIVAS********% El calculo de primitivas con Matlab es muy sencillo. La integracions se% lleva utilizando el comando int, empleando las sintaxis% int(S) o int(S,var)% - S puede ser una expresion simbolica o el nombre de una expresion% simbolica% - En el comando int(S), si la expresion contiene una unica variable% simbolica, el calculo se llevara a cabo con respecto a esa variable. Si% la expresion contiene mas de una variable, la integracion se realizara% con respecto a la variable simbolica por defecto (x).% - En el comando int(S,var), la integracion se realizara con respecto a la% variable var. Esta sintaxis se utiliza para integrar expresiones con mas% de una variable simbolica.% Del mismo modo que la derivacion, la integracion se puede extender a% vectores y matrices.disp(' ')disp('EJEMPLO DE INTEGRALES')s=2*cos(x)-6*x;int(s) % Matlab no incluye la constante de integracion que se debe tener en cuenta% en el calculo de primitivas s1=(sqrt(cos(x)))-2.^x;int(s1)s2=cos(sqrt((2*x)/1-x));int(s2)s3=sin(2*x)*cos(3*x);int(s3) % Si no esta definida x como una variable simbolica, utilizaremos la% siguiente expresion

Page 75: Comandos Matlab

% int('S','x')% En caso del ejemplo anterior, tendriamos lo siguiente:int(2*cos(x)-6*x)% La integral se resuelve sin poner las comillasint((x+1)/((x.^2+1)*(x.^2+4)),x)int(exp(4*x),x)int(x.^5,x)int(cos(sin(x)))

PRACTICA #7

%% PRACTICA 7% Esteban Herrera% 17 de septiembre del 2015% Analisis numerico basico% Modelo matematico% Algoritmo % Soluciones% METODOS NUMERICOS% 1.- PEQUEÑOS EJEMPLOS 23.45+1.67*sqrt(32.74)/(1+exp(-2))disp('Calculo de area y volumen de la esfera')r=17.4; are=4*pi*r.^2volumen=4/3*pi*r.^3disp('Hacer una pequeña tabla y plotear la curva')subplot(2,5,1)x=0:6, y=sin(pi*x/6),plot(x,y)disp('Dibujar dos parabolas')subplot(2,5,2)a=-10:10;b=a.*a-100;f1=0.2*b;f2=0.5*b;plot(a,f1,a,f2),title('Dos parabolas')disp('Escribir vectores usando operaciones elemeno a elemento')subplot(2,5,3)q=[0.1 0.6 log(3) sqrt(2) 3*pi/4]f=7*q.*exp(-q)g=q.^2+f./qplot(q,f,'o',q,f,q,g)resultado = [q' f' g']disp('Una espiral dada en forma parametrica')subplot(2,5,4)t=0:0.2:30;e=t.*cos(t);z=t.*sin(t);plot(e,t);title('Espiral')disp('Otras funciones Matlab utiles')subplot(2,5,5)r=rand(1,7),plot(1:7,r,'x') % 7 valores al azar entre 0 y 1ymax=max(r) % Maximo de las componentes de rs=sum(r) % Suma de componentesr=round(100*r) % Ahora r es un vector de enteros entre 0 y 100z1=sort(r) % Ordena el vector en forma crecientezz=fliplr(z1) % Da vuelta al vector (flipud lo da vuelta vertical)disp('Estrellas: se plotea 100 estrellas y 400 puntos al azar')subplot(2,5,6)xs=rand(1,100); ys=rand(1,100);xd=rand(1,400); yd=rand(1,400);plot(xs,ys,'*',xd,yd,'.');title('Estrellas en el cielo')disp('Circulo: dibujar un circulo')

Page 76: Comandos Matlab

subplot(2,5,7)xc=3;yc=-3;r1=6.5;n=50; k=0:n;fi=2*pi*k/n;x1=xc+r1*cos(fi);y1=yc+r1*sin(fi);plot(xc,yc,'x',x1,y1);axis([-5 10 -10 6]), axis equal;griddisp('')subplot(2,5,8)wx=25;wy=15;delta=8;t=0:360;x=sind(wx*t);y=sind(wy*t+delta);plot(x,y,'r');text(0,0.2,'\omega_x/\omega_y=2/1')xlabel('x'); ylabel('y')title('Figuras de Lissajous') %% MAXIMOS Y MINIMOS% Analizar los extremos relativos y absolutos de una funcion de dos% variables en un dominio abierto y en un dominio cerrado y acotado % Calculo de los puntos criticos % Dada la funcion fxy=x^3+y^3-3x-12y+25% - Representar la funcion % - Calcular los puntos criticos % - Calcular los extremos relativos de f.¿Alcanza esta funcion un maximo o un minimo absoluto?disp('a')figure (2)[X,Y]=meshgrid(-3:0.2:3);Z=X.^3+Y.^3-3*X-12*Y+25;subplot(1,2,1)surf(X,Y,Z)subplot(1,2,2)contour(X,Y,Z,25)disp('b')syms x2 y2;f3=x2.^3+y2.^-3*x2-12*y2+25;fx=diff(f3,x2);fy=diff(f3,y2);disp('Puntos criticos')[a1,b1]=solve(fx,fy);puntos=double([a1 b1])disp('c')fxx=diff(fx,x2);fxy=diff(fx,y2);fyy=diff(fy,y2);H=fxx*fyy-fxy.^2;valor_hessiano=subs(H,{x2,y2},{a1,b1})valor_fxx=subs(fxx,{x2,y2},{a1,b1}) % Dada la funcion fxy=x^2y+y^2-4xy+2y+10 en el dominio D dado por el% triangulo T de vertices A(2,0),B(4,2) y C(0,2), se pide:% - Representar la superficie en un rectangulo que contenga al triangulo T% - Calcular los extremos de f y determinar cuales de ellos se encuentran

Page 77: Comandos Matlab

% en el interior de T.% - Representar en el dominio el segmento que une los puntos A y B y su% imagen por f. ¿Cual es el valor maximo y minimo que toma la funcion sobre este segmento?% - Representar en el dominio el segmento que une los puntos B y C y su% imagen por f. ¿Cual es el valor maximo y minimo que toma la funcion sobre este segmento?% - Representar en el dominio el segmento que une los puntos C y A y su% imagen por f. ¿Cua es el valor maximo y minimo que toma la funcion sobre este segmento?% ¿Cual es el valor maximo y minimo que toma la funcion f si se considera como dominio el triangulo T? disp('Solucion')% Literal Afigure(3)[X,Y]=meshgrid(0:.25:4,0:0.25:3);Z=(X.^2).*Y+Y.^2-4*X.*Y+2*Y+10;subplot(1,2,1)h1=surf(X,Y,Z)% Dibujamos la superficie con color magenta, con transparencia 0.5 y color% de la reticula en blancoset(h1,'FaceColor','magenta','FaceAlpha',0.5,'EdgeColor','w')% Etiquetamos los ejesxlabel('Eje x')ylabel('Eje y')zlabel('Eje z')title('Grafica de f(x,y)=x^2*y+y^2-4*x+2*y+10')view(22,22)hold onpX=[2 4 0 2];pY=[0 2 2 0];pZ=[0 0 0 0];line(pX,pY,pZ,'linewidth',2,'color','blue') % Literal Bsyms x3 y3f1=x3.^2*y3+y3.^2-4*x3*y3+2*y3+10;fx1=diff(f1,x3)fy1=diff(f1,y3)[a3,b3]=solve(fx1,fy1);Puntos=double([a3 b3])fxx1=diff(fx1,x3);fxy1=diff(fx1,y3);fyy1=diff(fy1,y3);H1=fxx1*fyy1-fxy1.^2;valor_Hessiano=subs(H1,{x3,y3},{a3,b3})valor_fxx=subs(fxx1,{x3,y3},{a3,b3}) % Literal C% Parametrizamos el segmento que pasa por (2,0,0) y (4,2,0)t1=linspace(0,1);X1=2+t1*2;Y1=0+t1*2;Z1=0*t1;% La dibujamos con grosor 2 y color azulZ1=(X1.^2).*Y1+Y1.^2-4*X1.*Y1+2*Y1+10;

Page 78: Comandos Matlab

line(X1,Y1,Z1,'linewidth',2,'color','blue')% Calculamos los extremos de f sobre este segmentosyms uf_sobre_AB=subs(f1,{x3,y3},{2+u*2,2*u});der1=diff(f_sobre_AB);puntos=solve(der1);puntos_AB=double(puntos)valorf_puntosCritiosAB=double(subs(f_sobre_AB,u,[0 puntos(2) 1])) % Literal D% Parametrizamos el segmento que pasa por (4,2,0) y (0,2,0)t2=linspace(0,1);X2=4-t2*4;Y2=2+t2*0;Z2=0*t2;% La dibujamos con grosor 2 y color azulZ2=(X2.^2).*Y2+Y2.^2-4*X2.*Y2+2*Y2+10;line(X2,Y2,Z2,'linewidth',2,'color','yellow')% Calculamos los extremos de f sobre este segmentof_sobre_BC=subs(f1,{x3,y3},{4-4*u,2});der2=diff(f_sobre_BC);puntos1=solve(der2);puntos_BC=double(puntos1)valorf_puntosCritiosBC=double(subs(f_sobre_BC,u,[0 puntos1(1) 1])) % Literal E% Parametrizamos el segmento que pasa por (4,2,0) y (0,2,0)t3=linspace(0,1);X3=0+t3*2;Y3=2-t3*2;Z3=0*t3;% La dibujamos con grosor 2 y color azulZ3=(X3.^2).*Y3+Y3.^2-4*X3.*Y3+2*Y3+10;line(X3,Y3,Z3,'linewidth',2,'color','cyan')% Calculamos los extremos de f sobre este segmentof_sobre_CA=subs(f1,{x3,y3},{2*u,2-u*2});der3=diff(f_sobre_CA);puntos2=solve(der3);puntos_CA=double(puntos2)valorf_puntosCritiosCA=double(subs(f_sobre_CA,u,[0 puntos2(2) 1])) %%% Los metodos iperativos son procedimientos para acercarse a la respuesta% mediante aproximanciones sucesivas. Estos metodos incluyen formulas que% tienen la propiedad de producir un resultado mas cercano a la respuesta% a partir de un valor estimado inicial. El resultado obtenido se puede% usar nuevamente como valor anterior para continuar mejorando la% respuesta.% Se deben considerar algunos aspectos tales como la elevacion del valor% inicial, la propiedad de convergencia de la formula y el criterio para% terminar las iteraciones.% Estos metodos son auto-correctivos. La precision de la respuesta esta% dada por la distancia entre el ultimo valor calculado y la respuesta% esperada. Esto constituye el error de truncamiento.

Page 79: Comandos Matlab

% El siguiente grafico describe la estructura de un metodo iterativo % Valor anterior----> Formula iterativa---->Valore mejorado% | |% |________________________________________|% Iteracion % Cada ciclo se denomina iteracion. Si la formula converge, en cada% iteracion la respuesta estara mas cerca del resultado buscado. Aunque en% general . % Ejempl: Instrumentar un metodo iterativo para calcular la raiz cuadrada% de r de un numero real positivo n mediante operaciones basicas % Metodo numerico% Se usara una formula que recibe un valor para la raiz cuadrada y produce% un valor mas cercano a la respuesta. Si se usa repetidamente la formula% cada resultado tendere a un valor final que suponemos es la respuesta% buscada. La obtencion de estas formulas se realizara posteriormente% Sean:% x: valor estimado para la raiz r% formula iterativa: y=(1/2)*(x+n/x) % Algoritmo% 1.- Dados m y la precision requerida E% 2.- Elegir el valor inicial de x% 3.- Repetir% 4.- Calcular y=(1/2)*(x+n/x)% 5.- Asignar x a y% 6.- Finalizar si \x-y\ es menor que E% 7.- El ultimo valor x sera un valor aproximando para la raiz r con% precision E % Calcular r=sqrt(7) con la formula anterior% Usaremos x=3 como valor inicialformat longn1=7;x4=3;y=0.5*(x4+n1/x4)x4=y;y=0.5*(x4+n1/x4)x4=y;y=0.5*(x4+n1/x4)x4=y;y=0.5*(x4+n1/x4)x4=y;y=0.5*(x4+n1/x4)x4=y;y=0.5*(x4+n1/x4)x4=y;y=0.5*(x4+n1/x4)

Page 80: Comandos Matlab