MATLAB … una introducción
Guión l¿Por Qué Matlab? lComandos básicos lConstantes. Operaciones. lVariables. ðAsignar. Eliminar. ðGuardar. Recuperar. lFunciones. lVectores. Matrices. lGráficas.
¿Por qué MATLAB? lCalidad científica lPotencia lFlexibilidad lFacilidad de uso lInteractividad lTransparencia lGráficos
Comandos básicos help, help topic dir diary fichero lComentarios: % lEdición de líneas de comando lFunciones de edición de Windows
Constantes lMatrices de números complejos çA = [2+3i, 4; 5-i, 2i] çVectores, escalares, números reales. lCadenas de caracteres 'Esto es una cadena' çEsto no es una cadena
Operaciones lSuma y resta: + - lProducto, cociente y potencia: * / ^ çUso del punto:.*./.^ Precisión aparente çformat long çformat short
Variables Asignar a=3, b=4 lListar çans who whos lEliminar çclear b lGuardar save fichero lRecuperar çload fichero
Funciones z asin z acos z atan z log lhelp elfun lsin lcos ltan lexp lezplot sin(x)
Números Complejos Módulo y argumento abs(z) ---> 5 angle(z) Representación gráfica çcompass(z) Forma binómica z = 3 + 4i Parte real e imaginaria real(z) ---> 3 imag(z) ---> 4 Complejo conjugado çconj(z), z'
Vectores çv = [ ] Valores de funciones x = 0 : 0.01 : 1 y = sin(2*pi*x) plot(x,y) Normas çnorm(v,2) çnorm(v,1) çnorm(v,inf)
Operaciones çn=5; çx=1:n Transpuesta: x' ç2*x ¡Ojo!: x*x Prod. escalar: x*x' Cuadrado: x2=x.*x çsum(x2) Matriz rango 1: x'*x Gráficos çplot(x,x2) çplot(x2,x) plot(x,x2,'*') Voltear çfliplr(x) çflipud(x')
Ejercicio: n Lenguaje programación n=5; suma=0; for k=1:n suma=suma+k; end suma MATLAB n=5; x=1:n; suma=sum(x) Ejercicio: 1 p +2 p +...+n p
Polinomios p=[ ] ¡De mayor a menor grado! Valor de p en x: polyval(p,x) Multiplicación: conv(p,q) División con resto: [q,r] = deconv(p,d)
Matrices çA = [1, 9; 9, 8] çeye(2) çeye(size(A)) çzeros(3,4) çones(1,10) çrand(1,10) çA' çfliplr(A) çflipud(A) çdet(A) çinv(A) çrank(A)
Gráficos lVectores lFunciones de una variable ÿCoordenadas cartesianas ÿCoordenadas polares ÿEcuaciones paramétricas lMatrices lFunciones de dos variables
Gráficos de vectores çx = [ ]; çy = [ ]; çplot(x,y,’r*:’), title('Indice general de la Bolsa de Madrid'), xlabel('Septiembre 1998')
Coordenadas cartesianas Tabla de valores çx = 0:0.1:2*pi; çy = sin(x); çplot(x,y) label('y=sin(x)') Orden de MATLAB çfplot('sin(x)',[0 2*pi]) y=sin(x)
Coordenadas polares Diagramas de radiación de antenas çz = 0:0.1:2*pi; çr = sin(5*z); çpolar(z,r)
Ecuaciones paramétricas Curvas de Lisajoux çt = 0:2*pi/100:2*pi; çx =sin(2*t); çy =sin(3*t); çplot(y,x)
Gráficos de matrices çmesh(A) çsurf(A) çcontour(A)
Funciones de dos variables çhelp grafxyz çx = -1:0.1:1; y = x; ç[X,Y] = meshgrid(x,y); çZ = X.* Y; çsurf(Z) çmesh, contour, surfc
Archivos.m lContienen órdenes de MATLAB lSe invocan desde la ventana de órdenes, o desde otro archivo.m lSe editan y graban como ficheros ASCII.
Archivos.m de Función Empiezan por function y = nomdefun(x) lLas variables definidas no modifican las existentes en el espacio de trabajo. lExtienden las funciones de MATLAB. lPermiten el paso de parámetros.
La instrucción WHILE lBucle controlado por una condición. lSintaxis: while condición instrucciones end lLas instrucciones se repiten mientras la condición se verifique.
La instrucción FOR lBucle que se repite un número de veces. lSintaxis: for x = array instrucciones end lLas instrucciones se ejecutan una vez para cada columna en el array. l Podemos anidar sentencias for.
La instrucción IF lBifurcación condicional. Sintaxis: if condición instrucciones end lLas instrucciones se realizan si la condición se verifica.
Operadores lógicos y relacionales Operadores lógicos: Conjunción & Disyunción | O exclusiva xor Negación ~ Nota: ~ es [Alt] Operadores de comparación: Mayor, menor Mayor o igual >= Menor o igual <= Igual = = Distinto ~=
Archivo pfijo.m function a = pfijo(fun,x0,tol,maxiter) % Aproxima por el método del punto fijo una raíz de la ecuación fun(x)=x %cercana a x0, tomando como criterio de parada abs(fun(x)-x)<tol o la cota sobre % el numero de iteraciones dada por maxiter. % % Variables de entrada: % fun(x): función a iterar, se debe introducir con notación simbólica (eg. 'g') % x0: estimación inicial para el proceso de iteración % tol: tolerancia en error absoluto para la raíz % maxiter: máximo numero de iteraciones permitidas % % Variables de salida: % a: valor aproximado de la raíz fprintf(1, 'Método del punto fijo \n'); incr=1;iter=1; while (incr>tol) & (iter<maxiter) a = feval(fun,x0);% Itera la función g incr = abs(a-x0);% Calcula la variación fprintf(1, 'iter= %i, a= %x0, incr= %e \n', iter, a, incr); iter = iter + 1; x0 =a;% Cuenta los pasos y actualiza x0 end;% Salida