Você está na página 1de 11

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA

2006_II

Ing. Daniel Osorio Maldonado

Pgina 1

Tema:

Matlab

Ing. Daniel Osorio Maldonado


Control de los formatos de salida y de otras opciones de MATLAB

Los formatos de salida en la ventana principal de MATLAB se pueden controlar fcilmente a partir del cuadro de dilogo que se abre con el comando Preferences del men File. En la siguiente figura puede apreciar que se ven dos reas; en el rea de la izquierda ud. Puede variar la visualizacin; mientras que en el rea de la derecha las opciones de la izquierda.

format compact elimina las lneas en blanco citadas (opcin recomendada) format rat expresa los nmeros racionales como cocientes de enteros MATLAB aplica un factor de escala general a las matrices cuando los elementos ms grandes o ms pequeos son superiores o inferiores respectivamente a una determinada cantidad (103 y 10-3). Hay que aadir que MATLAB trata de mantener el formato de los nmeros que han sido definidos como enteros (sin punto decimal). Si se elige la opcin format rat el programa trata de expresar los nmeros racionales como cocientes de enteros. El cuadro de dilogo Command Window Font de la 2da Figura ofrece la posibilidad de elegir el tipo de letra as como el tamao y el color, tanto de las letras como del fondo con la que se escribe en la ventana de comandos de MATLAB. Es mejor utilizar tipos de letra de tamao constante (Fixedsys o Courier New), para que la salida se alinee bien en la pantalla.

Otras formas de definir matrices

MATLAB dispone de varias formas de definir matrices. El introducirlas por teclado slo es prctico en casos de pequeo tamao y cuando no hay que repetir esa operacin muchas veces. Recurdese que en MATLAB no hace falta definir el tamao de una matriz. Las matrices toman tamao al ser definidas y este tamao puede ser modificado por el usuario mediante adicin y/o borrado de filas y columnas. A continuacin se van a ver otras formas ms potentes y generales de definir y/o modificar matrices.

TIPOS DE MATRICES PREDEFINIDOS


El cuadro de dilogo de lera Figura permite elegir un editor de programas distinto del que trae MATLAB, as como elegir el directorio donde estn los ficheros Help. Respecto a los formatos numricos con que MATLAB muestra los resultados (recurdese que siempre calcula con la mxima precisin), se pueden activar las mismas posibilidades por medio de comandos tecleados en la lnea de comandos de MATLAB. Los ms importantes de estos comandos son los siguientes: format short coma fija con 4 decimales (defecto) format long coma fija con 15 decimales format hex cifras hexadecimales format bank nmeros con dos cifras decimales format short e notacin cientfica con 4 decimales format short g notacin cientfica o decimal, dependiendo del valor format long e notacin cientfica con 15 decimales format long e notacin cientfica o decimal, dependiendo del valor format loose introduce algunas lneas en blanco en la salida (defecto) Existen en MATLAB varias funciones orientadas a definir con gran facilidad matrices de tipos particulares. Algunas de estas funciones son las siguientes: eye(4) forma la matriz unidad de tamao (4x4) zeros(3,5) forma una matriz de ceros de tamao (3x5) zeros(4) dem de tamao (4x4) ones(3) forma una matriz de unos de tamao (3x3) ones(2,4) idem de tamao (2x4) linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y x2 logspace(d1,d2,n) genera un vector con n valores espaciados logartmicamente entre 10^d1 y 10^d2. Si d2 es pi6, los puntos se generan entre 10^d1 y pi rand(3) forma una matriz de nmeros aleatorios entre 0 y 1, con distribucin uniforme, de tamao (3x3) rand(2,5) idem de tamao (2x5) randn(4) forma una matriz de nmeros aleatorios de tamao (4x4), con distribucin normal, de valor medio 0 y varianza 1.

Ing. Daniel Osorio Maldonado

Pgina 2

magic(4) crea una matriz (4x4) con los nmeros 1, 2, ... 4*4, con la propiedad de que todas las filas y columnas suman lo mismo hilb(5) crea una matriz de Hilbert de tamao (5x5). La matriz de Hilbert es una matriz cuyos elementos (i,j) responden a la expresin (1/ (i+j-1)). Esta es una matriz especialmente difcil de manejar por los grandes errores numricos a los que conduce invhilb(5) crea directamente la inversa de la matriz de Hilbert kron(x,y) produce una matriz con todos los productos de los elementos del vector x por los elementos del vector y. Equivalente a x'*y, donde x e y son vectores fila compan(pol) construye una matriz cuyo polinomio caracterstico tiene como coeficientes los elementos del vector pol (ordenados de mayor grado a menor) vander(v) construye la matriz de Vandermonde a partir del vector v (las columnas son las potencias de los elementos de dicho vector) Existen otras funciones para crear matrices de tipos particulares. Con Help/Help Window se puede obtener informacin sobre todas las funciones disponibles en MATLAB, que aparecen 6 pi es una variable predefinida en MATLAB, que como es fcil suponer representa el nmero .

FORMACIN DE UNA MATRIZ A PARTIR DE OTRAS

MATLAB ofrece tambin la posibilidad de crear una matriz a partir de matrices previas ya definidas, por varios posibles caminos: recibiendo alguna de sus propiedades (como por ejemplo el tamao), por composicin de varias submatrices ms pequeas, modificndola de alguna forma. A continuacin se describen algunas de las funciones que crean una nueva matriz a partir de otra o de otras, comenzando por dos funciones auxiliares: [m,n]=size(A) devuelve el nmero de filas y de columnas de la matriz A. Si la matriz es cuadrada basta recoger el primer valor de retorno n=length(x) calcula el nmero de elementos de un vector x zeros(size(A)) forma una matriz de ceros del mismo tamao que una matriz A previamente creada ones(size(A)) dem con unos A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los

elementos de un vector ya existente x x=diag(A) forma un vector x a partir de los elementos de la diagonal de una matriz ya existente A diag(diag(A)) crea una matriz diagonal a partir de la diagonal de la matriz A blkdiag(A,B) crea una matriz diagonal de submatrices a partir de las matrices que se le pasan como argumentos triu(A) forma una matriz triangular superior a partir de una matriz A (no tiene por qu ser cuadrada) tril(A) dem con una matriz triangular inferior rot90(A,k) Gira k*90 grados la matriz rectangular A en sentido antihorario. k es un entero que puede ser negativo. Si se omite, se supone k=1 flipud(A) halla la matriz simtrica de A respecto de un eje horizontal fliplr(A) halla la matriz simtrica de A respecto de un eje vertical reshape(A,m,n) Cambia el tamao de la matriz A devolviendo una matriz de tamao mxn cuyas columnas se obtienen a partir de un vector formado por las columnas de A puestas una a continuacin de otra. Si la matriz A tiene menos de mxn elementos se produce un error. Un caso especialmente interesante es el de crear una nueva matriz componiendo como submatrices otras matrices definidas previamente. A modo de ejemplo, ejectense las siguientes lneas de comandos y obsrvense los resultados obtenidos: A=rand(3) B=diag(diag(A)) C=[A, eye(3); zeros(3), B] En el ejemplo anterior, la matriz C de tamao (6x6) se forma por composicin de cuatro matrices de tamao (3x3). Al igual que con simples escalares, las submatrices que forman una fila se separan con blancos o comas, mientras que las diferentes filas se separan entre s con intros o puntos y comas. Los tamaos de las submatrices deben de ser coherentes.

DIRECCIONAMIENTO DE VECTORES Y MATRICES A PARTIR DE VECTORES

Los elementos de un vector x se pueden direccionar a partir de los de otro vector v. En este caso, x(v) equivale al vector x(v(1)), x(v(2)), ... Considrese el siguiente ejemplo: v=[1 3 4] v= 134 x=rand(1,6) x= 0.5899 0.4987 0.7351 0.9231 0.1449 0.9719

Ing. Daniel Osorio Maldonado

Pgina 3

x(v) ans = 0.5899 0.7351 0.9231 De forma anloga, los elementos de una matriz A pueden diseccionarse a partir de los elementos de dos vectores f y c. Vase por ejemplo: f=[2 4]; c=[1 2]; A=magic(4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 1 5 1 A(f,c) ans = 5 11 4 14 El siguiente ejemplo continuacin del anterior - permite comprobar cmo los elementos de una matriz se pueden direccionar con un slo ndice, considerando que las columnas de la matriz estn una a continuacin de otra formando un vector: f=[1 3 5 7]; A(f), A(5), A(6) ans = 16 9 2 7 ans = 2 ans =11 Ms adelante se ver que esta forma de extraer elementos de un vector y/o de una matriz tiene abundantes aplicaciones, por ejemplo la de modificar selectivamente esos elementos. Este operador es muy importante en MATLAB y puede usarse de varias formas. Se sugiere practicar. mucho sobre los ejemplos contenidos en este apartado, introduciendo todas las modificaciones que se le ocurran y haciendo pruebas abundantes (Probar es la mejor forma de aprender!). Para empezar, defnase un vector x con el siguiente comando: x=1:10 x = 1 2 3 4 5 6 7 8 9 10 En cierta forma se podra decir que el operador (:) representa un rango: en este caso, los nmeros enteros entre el 1 y el 10. Por defecto el incremento es 1, pero este operador puede tambin utilizarse con otros valores enteros y reales, positivos o negativos. En este caso el incremento va entre el valor inferior y el superior. x=1:2:10 x = 1 3 5 7 9 x=1:1.5:10 x = 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000 x=10:-1:1 x = 10 9 8 7 6 5 4 3 2 1 Puede verse que, por defecto, este operador produce vectores fila. Si se desea obtener un vector columna basta trasponer el resultado. El siguiente ejemplo genera una tabla de funciones

seno y coseno. Ejectese y obsrvese el resultado (recurdese que con (;) despus de un comando el resultado no aparece en pantalla). x=[0.0:pi/50:2*pi]'; y=sin(x); z=cos(x); [x y z] El operador dos puntos (:) es an ms til y potente y tambin ms complicado- con matrices. A continuacin se va a definir una matriz A de tamao 6x6 y despus se realizarn diversas operaciones sobre ella con el operador (:). A=magic(6) A = 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11
Recurdese que MATLAB accede a los elementos de una matriz por medio de los ndices de fila y de columna encerrados entre parntesis y separados por una coma. Por ejemplo: A(2,3) ans = 7 El siguiente comando extrae los 4 primeros elementos de la 6 fila: A(6, 1:4) ans = 4 36 29 13 Los dos puntos aislados representan "todos los elementos". Por ejemplo, el siguiente comandoextrae todos los elementos de la 3 fila: A(3, :) ans = 31 9 2 22 27 20 Para acceder a la ltima fila o columna puede utilizarse la palabra end, en lugar del nmero correspondiente. Por ejemplo, para extraer la sexta fila (la ltima) de la matriz: A(end, :) ans = 4 36 29 13 18 11 El siguiente comando extrae todos los elementos de las filas 3, 4 y 5: A(3:5,:) ans = 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 1 2da PARTE APLICACIONES CON MATLAB Desde el Prompt del Matlab (ventana de comandos) escribir: >>A=45; >> B=31; >> C=A+B; Realice las operaciones de resta, multiplicacin y divisin; Principales comandos: clear sin argumentos, clear elimina todas las variables creadas previamente clear A, b borra las variables indicadas. clear global borra las variables globales.

OPERADOR DOS PUNTOS (:)

Ing. Daniel Osorio Maldonado

Pgina 4

clear functions borra las funciones. MATLAB puede almacenar informacin en variables tales como : a = 100 "<Ctrl> <ENTER> para evaluar la celda " Cada vez que capturamos informacin en MATLAB y presionamos <ENTER> staes desplegada inmediatamente ( letras en color azul ), pero si ponemos un puntoy coma al final de la instruccin MATLAB omite el desplegado de informacin. Por ejemplo : b = 50 ; Si se quiere saber el valor de alguna variable capturada slo se tiene queponer el nombre de la variable y <ENTER> y MATLAB lo despliega. Estasvariables residen en el espacio de trabajo de MATLAB. b Las variables son sensibles a las maysculas, por lo que las siguientesvariables son diferentes : Variable = 1 variable = 1 Las variables pueden contener hasta 19 caracteres. stas deben empezar conuna letra, seguida por cualquier nmero de letras, dgitos o guiones desubrayado. Los caracteres de puntuacin no son permitidos en las variables. Cuando se trabaja con muchas variables estas son difcil de recodar. El comando who muestra un desplegado de todas aquellas variables que se hanestado utilizando. who whos Muestralas variables con informacin adicional. Caracteres especiales [ ] Son usados para formar vectores y matrices [ 1 2 3 ; 4 5 6] ( ) Usados para expresiones matemticas. sqrt(2) = Usado para hacer asignaciones. x = 5 ' Transpuesta de una matriz A' Usado para separar texto 'texto' . Punto decimal 3.1415 ... Al final de una lnea indican que continua 2,3,4,5,6 .... en el siguiente rengln. 7,8,9,10 ] , Para separar elementos [1,2,3,4] ; Para separar filas en las matrices. [ 1 2; 3 4] Para evitar que se despliegue la informacin capturada. [3] ; % Para hacer comentarios % este programa,etc. ! Para ejecutar un comando del Ms-dos !dir Operaciones bsicas SUMA C=a+b RESTA d=a-b MULTIPLICACION e=a*b DIVISION F=a/b F=a\b POTENCIA a^2 Como este ltimo clculo no tena variable asignada, la respuesta seguarda en la variable ans (answer ). Borrado de variables. Para borrar el valor de una variable simplemente ponemos clear a Borrala variable " a " a Checar queeste borrada. clear a b c Borralas variables " a ", " b " y " c " " CLEAR " Borra todas las variables y no se pueden recuperar.

Funciones trigonomtricas sin ( 0.5) Senode (0.5) As mismo COS ( X ) TAN ( X ) ASIN ( X ) ACOS ( X ) ATAN ( X ) Inversa SINH ( X ) COSH ( X ) TANH ( X ) Hiperblica ASINH ( X ) ACOSH ( X ) ATANH ( X ) Inversa- Hiperblica ATAN2 ( X,Y ) Inversa de la tangente en los cuatro cuadrantes. LOGARITMOS log (0.5) Logaritmonatural LOG10 ( X ) Logaritmo decimal. Funciones matemticas especiales. abs ( -3) Valorabsoluto o magnitud de un nmero complejo ceil ( 123.123123) Redondeahacia ms infinito FLOOR ( X ) Redondea hacia menos infinito FIX ( X ) Redondea hacia cero ROUND ( X ) Redondea hacia el entero ms prximo imag ( 30 - 5j ) Parte imaginaria deun nmero complejo REAL ( X ) Parte real de un nmero complejo ANGLE ( X ) Angulo de un nmero complejo CONJ ( X ) Complejo conjugado sign ( -5) Funcinsigno : Devuelve el signo del argumento (1 si es positivo, -1 si es negativo ) exp ( 1 ) Exponencial: e( x ) REM ( X,Y ) Resto despus de la divisin ( x / y) sqrt (2) Razcuadrada Operaciones Lgicas En MATLAB se pueden hacer operaciones lgicas, por ejemplo. 1<2 Como 1 es menor que 2, la respuesta es cierta por lo que obtenemos un 1. 1<1 Obtenemos un 0, porque 1 no es menor que 1. Como se puede observar las nicas respuestas posibles con las operaciones lgicasson : Cierto = 1 y Falso = 0. Operadores relacinales : > Mayor que < Menor que >= Mayor o igual a <= Menor o igual a == Igual a ~= No igual a Existen tres operadores lgicos : AND & OR | NOT ~ Para que la operacin AND sea verdadera las dos relaciones deben serverdaderas. Recordemos AND = 0 0 | 0 Falso 0 1 | 0 Falso 1 0 | 0 Falso 1 1 | 1 Verdadero ( 1 < 2 ) & ( 2 < 3) Verdadero. ( 1 < 2) & ( 2 < 1 ) Falso. Para la operacin OR : 0 0 | 0 01|1 10|1 11|1 ( 1 < 2 ) | ( 2 < 1 ) Verdadero. Para la operacin NOT : ~ 0 | 1 ~1|0 ~ ( 2 < 1) Verdadero. La variable NaN (Not a Number)

Ing. Daniel Osorio Maldonado

Pgina 5

Cuando en un lenguaje de programacin como basic, pascal o C, se da unasituacin que el programa no pueda manejar, como una divisin como 0/0 elprograma se detiene, marcando un error. Cuando en MATLAB se presenta una situacin similar el programa no sedetiene, slo da una pequea advertencia de que se present una divisinentre cero. Y el resultado es un NaN, que es una variable interna no es un nmero). 0/ 0 Ejemplo: defina a=[1 2 0] y b=[1 2 0] ahora pida la divisin elemento aelemento (comando "./") a ./ b Solucin de ecuaciones de segundo grado. MATLAB se puede resolver fcilmente ecuaciones del tipo ax+ bx + c = 0, hacindolo como si fuera una sola instruccin. La frmula pararesolver una ecuacin de segundo grado de este tipo es :

Otra forma de hacer arreglos, es con linspace : Linspace ( Valor inicial , Valor final , Nmero de elementos ) Regresando al ejemplo del coseno de 0 a 1 con incremento de 0.01 escribimos : Note el uso de comas (#, #, #) Z = linspace(0 , 10, 101) Linspace describe una relacin lineal de espaciado entre sus elementos. Logspace describe una relacin de espaciado " logartmica ". Logspace ( Primer exponente , ltimo exponente , Cantidad de valores ) Logspace (0 , 2 , 10 ) Hemos creamos un arreglo que comienza en 10 0 y termina en 10 2,conteniendo 10 valores. Otra forma de crear arreglos es : x1 = 1 : 5 Arreglode 1 a 5, con incremento de 1 x2 = 10 : 5 : 100 Arreglode 10 a 100, con incrementos de 5. Si se quiere concatenar x1 y x2 C = [ x1 x2 ]

Si tenemos los siguientes valores : a = 1, b = 2, c = 3 Escribimos la formula para x1 : x1 = ( -b + sqrt ( b ^ 2 - 4 * a * c )) / 2 * a Para x2 : x2 = ( -b - sqrt ( b ^ 2 - 4 * a * c )) / 2 * a Podemos hacer la comprobacin para x1. a * x1^ 2 + b * x1 + c Comprobacinx1 Arreglos (Arrays) Vectores. Si se desea calcular el seno de " 0 a 1 " con incrementos de 0.25,se pueden capturar los valores y despus mandar llamar el seno de la funcin. Seno de 0 a 1 con incrementos de 0.25 x = [ 0, 0.25, 0.5, 0.75, 1 ] Se pueden omitir las comas cuando se capturan los nmeros. Con los nmeros capturados, se obtiene el seno de la variable x escribiendosimplemente : sin (x) MATLAB opera en radianes, donde 2P= 360 grados. Ahora se requiere obtener el coseno de cero a uno con incrementos de 0.01; loque equivale a capturar 101 elementos. Para evitar capturarlos a mano, MATLAB nos permite crear un vector de lasiguiente manera : Variable = ( Valor inicial : Con incrementos de : Valor final ) R = (0 : 0.01 : 1) COS ( R ) Ahora se puede obtener el coseno de la variable R. Hagamos el siguiente vector : Y = ( 0 : 1 : 10) Si queremos saber cual es el cuarto elemento del vector ponemos : Y (4) Si nos interesan los elementos 5 al 10 : Y( 5 : 10 ) Otras opciones son : Y( 1 : 2 : 9) Tomalos elementos del 1 al 9 con incrementos de 2 Y([ 1, 3, 7,10]) Tomalos elementos 1, 3, 7 y 10 del array Modificaciones de los arreglos Si el noveno elemento del array debi ser el nmero 20 en vez de 8,corregimos de la siguiente manera : Y(9) = 20

Ing. Daniel Osorio Maldonado

Pgina 6

1.

Haciendo uso de la ventana de comandos calcule el rea de un trapecio sabiendo que la formula a aplicar es la siguiente: S=(basemayor+basemenor)*altura/2. Hagamos basemayor = B; basemenor= b; altura = h; Desde el prompt>>B=15;b>>=20;h=25;S=(B+b)*h/2; 2. Hallar el rea y la longitud de una circunferencia, sabiendo que el radio es igual 10. 3. Se quiere hacer un programa que simule un cajero. Se sabe que el cajero slo da billetes de 200, 100, 50,20 y 10 nuevos soles. %Programa del CAJERO function y=billete() C=input('Ingrese Una Cantidad '); b200=floor(C/200); C=rem(C,200); b100=floor(C/100); C=rem(C,100); b50=floor(C/50); C=rem(C,50); b20=floor(C/20); C=rem(C,20); b10=floor(C/10); fprintf('Billetes de 200= %4d',b200); fprintf('\nBilletes de 100=%4d',b100); fprintf('\nBilletes de 50=%4d',b50); fprintf('\nBilletes de 20=%4d',b20); fprintf('\nBilletes de 10=%4d',b10); Algoritmos a desarrllar con Matlab 1. Algoritmo que permite hallar el rea de un triangulo conociendo sus tres lados; 1.1 Leer los 3 lados a,b,c; 1.2 Calcular el semiperimetro->p = (a+b+c)/2 1.3 S=sqrt(p(p-a)(p-b)(p-c)) 1.4 Imprimir resultados 1.5 Fin 2. Realice un algoritmo que permita convertir los grados Fahrenheit a grados Celsius. 2.1 Inicio 2.2 Leer grados Farenheit 2.3 Aplicar la formula C=(F-32)*5/9 2.4 Escribir Resultado 2.5 Fin del programa 3. Realice un algoritmo que desglose cierta cantidad de segundos introducidos por teclado en su equivalente en semanas, das, horas minutos y segundos. 4. Realice un algoritmo de un representante de ventas quena gana 1575.00 nuevos soles mensuales mas un 3 por 100 de comisin sobre las ventas mensuales

realizadas. Si al total obtenido hay que descontarle un 12.75 por 100 de impuestos, indicar el sueldo neto al mes. Instrucciones de control 5. %Divisibilidad entre 02 numeros function y=divi() a=input('Ingrese a: '); b=input('Ingrese b; '); if(a>b) if(mod(a,b)==0) fprintf('a es divisible por b '); else fprintf('a no es divisible por b '); end else fprintf('a debe ser mayor que b '); end 6. %calcula el mayor de 03 numeros function M=mayor() a=input('\nIngrese primer nmero:'); b=input('\nIngrese segundo nmero:'); c=input('\nIngrese Tercer Numero :'); if (a>b) if(a>c) fprintf('\n Entonces El mayor es :%2d',a); else fprintf('\n Entonces El mayor es :%2d',c); end else if(b>c) fprintf('\n Entonces El mayor es :%2d',b); else fprintf('\n Entonces El mayor es : end

%2d',c);

end

7.

%Programa que ordena 03 numeros function y=ordena() a=input('Ingrese el Valor de a '); b=input('Ingrese el Valor de b '); c=input('Ingrese el Valor de c '); if a>c aux=a; a=c; c=aux; end if b>c aux=b; b=c; c=aux; end if a>b aux=a; a=b; b=aux; end

Ing. Daniel Osorio Maldonado

Pgina 7

fprintf('El Oden es %2d %2d %2d',a,b,c) 8. %funcion que calcula los digitos pares y los digitos impares function y=dig()%[dpar,dimpar]=dig() N=input('\nIngrese Un Numero de varias Cifras: '); digpar=0; digimpar=0; while N~=0 if rem(N,2)==0 digpar=digpar+1; else digimpar=digimpar+1; end N=floor(N/10); end fprintf('\nLos Digitos Pares son :%5d',digpar); fprintf('\nLos Digitos Impares son : %5d',digimpar); 9. %Una Funcion que calcula el Valor aproximado de senx % senx= x-(x^3/3!) + (x^5/5!) - (x^7/7!)+... function y =senx( ) x=input('Ingrese el Valor real de x en radianes '); N=input('Ingrese el Valor entero de N '); Termino=x; senx=x; k=1; for i =1:N Termino =(-1)*Termino*(x*x)/((k+1).*(k+2)); senx=senx+Termino; k=k+2; display([ i, senx, sin(x)]); end

2. Tambin se puede escribir : c=a+b dando como resultado: c = 2.5000 7.5000 12.5000 17.5000 22.5000 3. El operador : es muy utilizado en arreglos con matlab; por ejemplo se puede escribir un vector dando un valor inicial luego el paso y finalmente el ultimo numero sea: s=[1:2:9]; dando como resultado los valores de nmeros impares: 1 3 5 7 9. 4. Una comilla despus del nombre de un vector lo identifica como un vector transpuesto que significa vector columna. Ejercicio: Genera un vector cuyos elementos representen una particin del intervalo [-1,1],con un paso igual 0.2; Ejercicio: Genera un vector cuyos elementos representen una particin del intervalo [-1,1];en 20 subintervalos. Ejercicio: >Es posible construir un vector mediante la notacin dos puntos de tal forma que las componentes vayan decreciendo en valor? Prueba con 4:-2:-15. Ejercicio: >Qu ocurre si ponemos 4:2:-15? Matrices Las matrices son arreglos bidimensional, para acceder a sus elementos se hace uso de ndices, como que conforman la matriz en si, por ejemplo una matriz de 3x3 esta declarada como a(3,3). Sea la matriz A=[1 2 3;4 5 6;7 8 9]; B =[-2 3 1;4 5 7;1 5 9]; entonces es posible la siguiente operacin C=2A y D=3B cuyos resultados son : C= 2 4 6 D = -6 9 3 12 15 21 12 15 21 3 15 27 3 15 27 Sea A=[1 2 3 4;5 6 7 8;9 10 11 12]; se puede escribir B=A B= 1 5 9 2 6 10 3 7 11 4 8 12 crear una matriz de orden de orden 2x4 >>g=[1 2 3 4;5 6 7 8]; crear una matriz de otra manera g=[1 2 3 4 5 6 7 8] Restar 2 a cada elemento de g; Realizar >>2*g-1; >>h=[1 1 1 1 ;2 2 2 2;3 3 3 3]; Realice >>g+h;>>ans-h;>>2*g-h

ARREGLOS EN MATLAB Los arreglos en matlab pueden ser unidimensionales o bidimensionales, los primeros suelen llamarse vectores, mientras que los segundos matrices, al respecto existe una amplia gama de comandos que permite soluciones eficaces. Por ejemplo un vector esta declarado como: A=[1 2 3 4 5 ]; Una matriz de 3x3, como B=[1 2 3;4 5 6;7 8 9]; Al digitar el vector dar como resultado : 1 2 3 4 5, mientras que una matriz sera de la forma : 1 2 3 456 789 1. Sea el vector a=[1 3 5 7 9], entonces es posible escribir otro vector tal como b=ax1.5 b = 1.5000 13.5000 4.5000 7.5000 10.5000

Ing. Daniel Osorio Maldonado

Pgina 8

Multiplque cada elemento de g por d=cada elemento de h; Es posible la operacin >>g*h?; y esta ptra g*h Pruebe y analice los siguientes comandos: g./h ; h./g; Resuelva la siguiente ecuacin 2 a + 3b + c =6; 4a +b + 2c = 7; 6 a + b + 7c = 4; mediante \

%d=[-0.0200s^3 1.2800];

0.2000s^2 -0.4000s

%Valores pequenios para s xx=[1:.1:10]; %a=-0.0200*s.^3 + 0.2000*s.^2 -0.4000*s +1.2800; yy=polyval(d,xx) plot(x,y,'o',xx,yy);gris

Crear una matriz de orden 3x3 formada unicamente por unos y otra de orden 2x5 formada por ceros Pruebe >>size(g); >>ones(size(g) Recupere la matriz A y modifique la la cuarta columna. Forma una nueva matriz inviertiendo el orden de las filas. Crear una matiz W aadiendo todas las filas de la primera y tercera columna de B a la derecha de A. Crear B extrayendo las primeras dos filas y las dos primeras columnas de A.

5. Un conjunto de datos esta dado por xd = [0 0.2000 0.4000 0.6000 0.8000 1.000] yd = [0.3927 0.5672 .06982 .07941 .08614 . 09053] Estime todas las derivadas para x = a =0.3 con poly_drv y despus con polyfit. 6. %Interpolacion de Lagrange %Objetivo:Interpolar datos mediante la Interpolacion de Lagrange %Sintaxis: yi=Lagran_(c,y,xi) % x,y: Tabla de Datos en forma de arreglo % xi: arreglo de abscisas para las cuales se calculara el valor de y yi :arreglo de valores y calculados mediante interpolacion de Lagrange. function fi=Lagran_(x,f,xi) fi=zeros(size(xi)); np1=length(f); for i=1:np1 z=ones(size(xi)); for j=1:np1 if i~=j, z=z.*(xi-x(j))/(x(i)-x(j));end end fi=fi+z*f(i); end return

POLINOMIOS 1. Sea el polinomio s 4 + 3s 3 + 9 s 2 + 1 su representacin en matlab es como sigue: >>p=[1 3 9 0 1]; >>p = 1 3 9 0 1 >>z = polyval (p,2); z= 77; roots(p) ans= -1.5187 + 2.5877i -1.5187 - 2.5877i 0.0187 + .3328i 0.187 0.5528i 2. Sea la expression ( s + 1)( s 2 + 2 s + 1) = ? >>p1 = [1 1]; p2 = [1 2 1]; >>p3=conv(p1,p2) p3= 1 3 3 1 3. Se tienen las siguientes expresiones, resuelva; x 4 33 + 2 x 2 + x + 2 3x 4 + 2 x 3 + x 2 + 7 4. %Graficar el Polinomio interpolante en el rango %s ->[1,10] x=[1 2 3 5]; y=[1.06 1.12 1.34 1.78]; d=polyfit(x,y,length(x)-1) %ans = -0.0200 0.2000 -0.4000 1.2800

1. Integracin Numrica usando comandos con matlab


quad y quad8. Sea la funcin : function y=intequad(x) y = 1./((x-.3).^2+.01)+1./((x-.9).^2+.04)-6; Guardarla con el nombre intquad luego desde la ventana de comandos x=-1:0.1:2; plot(x,intequad(x)); para hallar la Integral: area = quad('intequad', 0, 1) area = 29.8583 2. probar con quad8. 3. Integracin con procedimientos en Matlab

Ing. Daniel Osorio Maldonado

Pgina 9

3.1 %trapezoide con grafico function I=trapez_g(f_name,a,b,n) hold off h=(b-a)/n; x=a+(0:n)*h; f=feval(f_name,x); I=(h/2)*(f(1)+ f(n+1)); if n>1 I=I+ h*sum(f(2:n)); end h2=(b-a)/100; xc=a+(0:100)*h2; fc=feval(f_name,xc); plot(xc,fc,'r');hold on; title('REGLA TRAPEZOIDAL');xlabel('Eje de las X'); ylabel('Eje de las Y'); plot(x,f); plot(x,zeros(size(x))); for i=1:n; plot([x(i),x(i)],[0,f(i)]); end % f_name es la funcin a la cual se la va a Integrar, los limites son a y b % por ejemplo probar con intequad 3.2 % Mtodo de Simpson function p=Simpson3(f,a,b,n) % Datos % f =el nombre de la funcion como string % a =limite inferior % b=limite inferior % h =longitud de segmento % x=es el vector x % y =es el vector F(x) % n =numero de segmentos % Resultados % p =Integracin h = (b-a)/n; n = n + 1; y=zeros(n,1); x=zeros(n,1); suma =0; for i=1:n x(i) = a+h*(i-1) ; y(i) = feval(f,x(i)) ; 1. %Creando Una Grafica title('Una Circunferencia ') t=[0:0.1:20]; y=sin(t); x=cos(t); plot(x,y) function g=GrafCoseno() N=input('Ingrese un valor para el Intervalo N :'); x =-N:0.01:N; y = cos(x); plot (x ,y);

end for i=2:n-1 if rem(i,2)==1 suma =suma+2*y(i); else suma = suma + 4 * y ( i ) ; end end p = h*(y(1)+suma+y(n))/3 ; Aqu n debe ser par 3.3 function p=Simpson8 (f,a,b,n) % Datos %f =el nombre de la funcion como string %a =limite inferior %b =limite inferior %h =longitud de segmento %x =es el vector x %y =es el vector F(x) %n =numero de segmentos % Resultados %p =Integracin h = (b - a) /n; n = n + 1; y =zeros(n,1); x =zeros(n,1); suma=0 ; for i=1:n x(i)=a+h * (i - 1) ; y(i)=feval(f,x(i)); end for i=2:n-1 if rem(i-1,3)==0 suma=suma+2*y(i); else suma=suma+3*y(i); end end p=3*h*(y(1)+suma+y(n))/8; Aqu n debe ser mltiplo de 3

GRAFICOS CON MATLAB


function g=GrafCoseno() N=input('Ingrese un valor para el Intervalo N :'); x =-N:0.01:N; y = cos(x); plot (x ,y); function expo=grafexp() N=input('Ingrese un valor real de N par el Intevalo :'); z=input('Ingrese el exponente Z :'); x = -N:0.01:N; y(3,:) = exp((-x).^2);

Ing. Daniel Osorio Maldonado

Pgina 10

%y = exp((-x).^2); plot(x , y); title('FUNCION DE UNA EXPONENCIAL ') ylabel('exp(x)'),... xlabel('Eje de las X'),... text(0.4,0.6,'y=exp(x)','sc') function ma=grafmat1() a=input('Ingrese un valor para a :'); b=input('Ingrese un valor para b :'); t=[a:.01:b]; x(1,:)=t; x(2,:)=exp(t); x(3,:)=sin(t); x(4,:)=cos(t); plot(t,x) %plot(t,x,'r+:') title('GRAFICAS DE ALGUNAS FUNCIONES ') xlabel('X') ylabel('Y') %programa que grafica dos funciones %para hallar el punto de interseccin x=0.1:0.001:2; y1=1./x; y2=exp(x); figure(1); plot(x,y1); title('Inversa'); grid off; figure(2); plot(x,y2); title('Exponencial'); grid on; figure(3); plot(x,y1,'k',x,y2,'r:'); title('Inversa y Exponencial'); legend('1/x','exp(x)'); grid off; %zoom on;

Ing. Daniel Osorio Maldonado

Pgina 11

Você também pode gostar