Académique Documents
Professionnel Documents
Culture Documents
FUNDAMENTOS DE INFORMTICA
Profesor: Dra. Sonia Benz. Auxiliares: Ing. Evangelina Delfratte - Ing. Patricia Mores
EJERCITACIN RESUELTA. MANEJO DE VECTORES Y MATRICES. REPRESENTACIN GRFICA EN EL PLANO Y EN EL ESPACIO. OPERACIONES CON POLINOMIOS. AJUSTE DE DATOS EXPERIMENTALES A POLINOMIOS. RESOLUCIN DE SISTEMAS DE ECUACIONES.
Qu es Matlab (MATrixLABoratory)?
Es una herramienta para hacer clculos matemticos. Como su nombre lo indica, utiliza la matriz como elementos bsico. Es un lenguaje de programacin interactivo y avanzado, pero fcil de utilizar. Es una plataforma de desarrollo para determinadas reas (herramientas para el procesamiento de seales, simulacin de sistemas dinmicos, etc.)
Entorno de trabajo
1. Inicio del programa Se debe iniciar desde el men inicio del sistema operativo/ programas/ Matlab o bien desde el cono de acceso directo presente en el escritorio de Windows.
Podemos observar tres ventanas principales: Ventana de comandos (Command Window): es donde se ejecutan los comandos de Matlab, y en donde se muestran los resultados correspondientes, si es el caso.
Historial de comandos (Command History): muestra los ltimos comandos ejecutados en la ventana de comandos.
Tambin se muestra informacin acerca del directorio y/o archivo en el que se est trabajando (Current directory). Este directorio se puede cambiar desde esta misma ventana con el procedimiento caracterstico de Windows.
Hay una barra de herramientas que muestra los tpicos conos para el manejo de archivos, que en este caso corresponden al editor de archivos *.m del que hablaremos a continuacin.
3. Editor de archivos-M. Otra herramienta que presenta Matlab es el Editor de archivos M (scripts). Un script es simplemente una lista de comandos escritos segn la sintaxis de Matlab, que ha sido guardado en un archivo con extensin .m y que tienen la ventaja de poder ejecutarse y/o modificarse sin tener que tener que escribir las sentencias cada vez que se desea obtener un nuevo resultado. Para crear un archivo nuevo o abrir un archivo existente desde Matlab solo se debe hacer un clic en el cono correspondiente segn se indica en la figura.
Al crear un archivo nuevo o abrir un archivo existente, se trabajar en una nueva ventana. La siguiente imagen es una pantalla tpica del editor de archivos de Matlab.
Directorio en el que se guard el archivo
Ejecutar En el editor aparecen en color negro las instrucciones, en color verde los comentarios, en color violeta las cadenas de texto y en azul los comandos predefinidos.
Para trabajar con el editor se utilizan los comandos tradicionales de manejo de archivos (Archivo nuevo Abrir archivo Guardar archivo, etc.) El nombre del archivo puede formarse por caracteres alfanumricos, sin embargo se debe tener en cuenta que: El nombre de archivo NO puede empezar con un nmero. El nombre de archivo NO puede tener espacios ni caracteres especiales. El nombre de archivo NO puede coincidir con el nombre de ninguna de las variables definidas en el script. Es conveniente el uso de nombres cortos.
Luego de asignar un nombre al archivo, se est en condiciones de escribir el cdigo (las sentencias) que se desean ejecutar. En el editor se usa la misma sintaxis que en la ventana de comandos. Finalmente, para ejecutar un script creado en el editor, se tienen diferentes alternativas: Ejecutar el programa desde el editor. Ir a Debug Save file and run.
Ejecutar el programa desde el editor mediante el cono de ejecucin (En versiones anteriores el cono es una flecha azul hacia abajo). Ejecutar el programa desde el editor utilizando los atajos de teclado: presionar F5 Ejecutar el programa desde la ventana de comandos. Deber ingresar el nombre del archivo (inmediatamente despus del prompt y sin la extensin) + intro.
Al seleccionar la primera opcin se indica que el directorio actual de Matlab (Current directory) sea el directorio en el que se ha guardado el archivo. De esta manera, si no hay errores de sintaxis, se ejecutarn secuencialmente todas las sentencias del script y los resultados (parciales y/o totales) se mostrarn en la ventana de comandos. Adems ser posible ver todas las variables definidas y sus caractersticas en el espacio de trabajo (workspace).
Manejo bsico
1. Declaracin de variables.
Como se mencion anteriormente, Matlab tiene como estructura bsica de almacenamiento de datos y/o resultados a una estructura de tipo matricial (arrays) y cada uno de sus elementos se identificar mediante ndices que indiquen el nmero de fila y el nmero de columna en el que se encuentre un elemento determinado del arreglo matricial. Esos elementos pueden ser nmeros (Reales o complejos) cadenas de texto (strings). Por otro lado, dependiendo del tamao de la matriz es posible manejar: Escalares (matriz 1x1) Vectores (matriz de 1xn vector fila, matriz de nx1 vector columna) Matrices propiamente dichas (nxm). 6
who
whos
Muestra una lista de todas las variables definidas en el espacio de trabajo as como informacin acerca del tamao, cantidad de bytes, clase y atributos de cada variable.
. . .
Tambin es posible utilizar el operador : para referirse a un conjunto de elementos de una matriz o vector. Por ejemplo, cuando se escribe: A(:,1) la expresin se refiere a los elementos que se encuentran en todas las filas, columna 1 de la matriz A. 8
Vector columna: introduciendo sus valores, separados por Intro o por puntos y comas (;), entre corchetes.
Matrices: Las matrices se definen por filas. Los elementos de una misma fila estn separados por comas o espacios y las filas estn separadas por intro o por punto y coma (;).
Generacin de matrices y vectores utilizando comandos y operadores especficos. Utilizando el comando linspace El comando linspace se utiliza para crear un vector con n elementos igualmente espaciados desde un valor inicial a un valor final. La sintaxis general es: X=linspace(valor inicial, valor final, cantidad de elementos del vector)
Utilizando el operador : Aqu, el operador : se utiliza para crear un vector. La sintaxis general es: x=valor incial:incremento:valor final. A diferencia del comando linspace en el que hay que indicar la cantidad de elementos del vector, con el operador : es necesario especificar el incremento. En este caso, en el que se genera una secuencia de valores, el incremento puede ser cualquier nmero real. Otra diferencia importante entre estos comandos es que con linspace los intervalos son siempre cerrados, es decir que el vector generado siempre incluye el valor
10
Utilizando el comando zeros A=zeros(1,n) A=zeros(n,1) A=zeros(n) A=zeros(n,m) Vector fila de n elementos Vector columna de n elementos Matriz cuadrada de tamao nxn Matriz reactangular de tamao nxm Todos los elementos son iguales a cero (0).
Utilizando el comando ones A=ones(1,n) A=ones(n,1) A=ones(n) A=ones(n,m) Vector fila de n Vector columna de n elementos Matriz cuadrada de tamao nxn Matriz reactangular de tamao nxm Todos los elementos son iguales a uno (1).
11
Utilizando el comando eye. A= eye (n) A= eye (n,m) Matriz cuadrada de tamao nxn Matriz reactangular de tamao nxm Todos los elementos de la diagonal son iguales a uno (1), el resto es igual a cero (0).
Utilizando el comando magic Matriz cuadrada de tamao nxn, de nmeros enteros mayores a 1 y menores o iguales a N^2. La suma de los elementos de la diagonal, cada fila y cada columna son iguales excepto cuando N=2.
A=magic(n)
Utilizando el comando rand. A= rand (1,n) A= rand (n,1) A= rand (n) Vector fila de n elementos. Vector columna de n elementos. Matriz cuadrada de tamao nxn El comando rand genera una matriz de nmeros aleatorios uniformemente distribuidos entre 0 y 1.
12
Utilizando el comando randn. A=randn(1,n) A= randn(n,1) A= randn (n) A= randn (n,m) Vector fila de n elementos Vector columna de n elementos Matriz cuadrada de tamao nxn Matriz reactangular de tamao nxm El comando randn genera una matriz de nmeros aleatorios con una distribucin normal (media=0, desvo estndar=1)
Generacin de matrices y vectores a partir de otras estructuras. Haciendo uso de los conceptos introducidos hasta el momento, es posible generar cualquier estructura a partir de otra. La cantidad de posibilidades es enorme, aqu se presentan solo algunos ejemplos. Ejemplo 1. Dado un vector r, de 10 elementos igualmente espaciados entre -1.7 y 3.5, se desea: Crear un escalar v1 con el 3 elemento del vector r.
r=linspace(-1.7,8.3,10) v1=r(3)
13
Crear un vector v5 con los elementos de las posiciones 10, 8, 6, 4 del vector r.
v5=r(10:-2:4)
14
v6=[r(8),r(9),r(1),r(3),r(7)]
Crear un vector v7 elementos con todos los elementos del vector v6, ceros en las posiciones 6 a 8 y 0.5 en la posicin 9.
v7=v6 v7(6:8)=0 v7(9)=0.5
15
M1=
M2=
4 3 2 1
5 1 7 9
6 3 9 5
Generar una matriz M3 a partir de M1 y M2. Generar una matriz M4 a partir de los elementos de la columna 3 de M1 y los elementos de las filas 4 a 3 columnas 2 a 3 de la matriz M2. Generar un vector columna M5 a partir de los elementos de la fila 2 de M1 y los elementos de la columna 1 de M2. Generar una matriz M6 en la que se reemplacen todos los valores de la columna 1 de la matriz M1 por los elementos de la filas 3 y 4, columna 3 de la matriz M2. Generar una matriz M7 en la que se reemplacen todos los elementos de la fila 1 de la matriz M2 por cero (0).
clear all clc M1=[0.1,0.3,0.8;0.2,0.7,0.6]; M2 =[4 5 6;3,1,3;2,7,9;1,9,5]; M3=[M1;M2] M4=[M1(:,3),M2(4:-1:3,2:3)] M5=[M1(2,:)';M2(:,1)] % La comilla simple (apstrofe) se utiliza para transponer un vector o % matriz; M6=M1; M6(:,1)=M2(3:4,3) M7=M2; M7(1,:)=0
16
Determinacin del tamao de matrices y vectores. Los comandos size y length se utilizan para determinar el tamao de matrices y vectores. La diferencia reside en que el comando size devuelve el nmero de filas y columnas de una matriz y/o vector, mientras que el comando length devuelve la dimensin mayor. Es prctica comn utilizar el comando length para dimensionar vectores y el comando size para dimensionar matrices.
Operaciones con estructuras vectoriales y matriciales. En Matlab es posible realizar dos tipos de operaciones: Operaciones matriciales que siguen las reglas del lgebra lineal. Tales como adicin, sustraccin, multiplicacin, potenciacin, cociente, etc. 17
En la siguiente tabla se lista una serie de comandos que permiten calcular el determinante, la transpuesta y la inversa de una matriz A. det(A) A' inv(A) Determinante de la matriz cuadrada A Transpuesta de la matriz o vector A Inversa de la matriz cuadrada A
Operaciones elemento a elemento. Las operaciones elemento a elemento que estn al alcance de este curso y utilizan una sintaxis especfica son las siguientes: .* .^ ./ Producto elemento a elemento Potenciacin elemento a elemento Divisin elemento a elemento
Hay una serie de funciones que solo se pueden aplicar elemento a elemento (no se aplican en lgebra matricial). Algunas de ellas son: sqrt() exp() log() log10() sin() cos() tan() abs() Ejemplo 3. Dadas las siguientes matrices: 0.1 0.3 0.85 M1= 0.2 0.7 0.6 0.9 0.25 0.68 1 2 9 M2= 8 7 2 3 0 5 Raz cuadrada Exponencial de base e Logaritmo neperiano Logaritmo decimal Seno Coseno Tangente Valor absoluto
18
M2=[1,2,9;8,7,2;3,0,5];
M3=M1+M2 M4=M1*M2 M5=det(M1) M6=M2' M7=inv(M1) M8=M1^2 M9=M1.*M2 M10=M1./M2 M11=M1.^2 M12=sin(M1) M13=exp(M1)
19
Un sistema de ecuaciones lineal que no tenga soluciones nicas se lo denomina sistema singular. Se presentan tres maneras de resolver sistemas de ecuaciones con Matlab: Mtodo de la matriz inversa (sistemas de ecuaciones lineales). Mtodo de la divisin izquierda (sistemas de ecuaciones lineales). Utilizando el comando solve (sistemas de ecuaciones lineales y no lineales).
Tanto con el mtodo de la matriz inversa como con el mtodo de la divisin izquierda, es necesario definir una matriz de coeficientes y un vector columna de trminos independientes. Utilizando el comando solve las ecuaciones se definen como cadenas de texto (strings). Los mtodos de resolucin se presentan mediante ejemplos.
Ejemplo 4. 20
1)
2 x + 4 y + 6 z = 18 4 x + 5 y + 6 z = 24 3x + y 2 z = 4
2)
2 x + 4 y + 6 z = 18 4 x + 5 y + 6 z = 24 2 x + 7 y + 12 z = 30
3)
2 x + 4 y + 6 z = 18 4 x + 5 y + 6 z = 24 2 x + 7 y + 12 z = 40
% a) Mediante el comando solve a1='2*a+4*b+6*c=18'; a2='4*a+5*b+6*c=24'; a31='3*a+b-2*c=4'; a32='2*a+7*b+12*c=30'; a33='2*a+7*b+12*c=40'; disp('Sistema de ecuaciones 1)') [x1,y1,z1]=solve(a1,a2,a31) pause clc disp('Sistema de ecuaciones 2)') [x2,y2,z2]=solve(a1,a2,a32) pause clc disp('Sistema de ecuaciones 3)') [x3,y3,z3]=solve(a1,a2,a33)
Las soluciones del sistema de ecuaciones utilizando el comando solve se presentan en las siguientes imgenes de la ventana de comandos. Se observa que este comando nos permite saber si el sistema es compatible determinado, compatible indeterminado o incompatible.
Soluciones nicas.
Infinitas soluciones.
Sin solucin
21
22
Mediante el mtodo de la matriz inversa, cuando el valor del determinante vale 0, no es posible calcular la inversa de la matriz de los coeficientes, generndose un error durante la ejecucin. En el caso 2 y 3 no es posible identificar entre un sistema compatible indeterminado o un sistema incompatible (Inf=infinito).
% c) Mediante el mtodo de la divisin izquierda disp('Sistema de ecuaciones 1)') A1=[2,4,6;4,5,6;3,1,-2]; b1=[18;24;4]; x1=A1\b1 pause clc disp('Sistema de ecuaciones 2)') A2=[2,4,6;4,5,6;2,7,12]; b2=[18;24;30]; x2=A2\b2 pause clc disp('Sistema de ecuaciones 3)') A3=[2,4,6;4,5,6;2,7,12]; b3=[18;24;40]; x3=A3\b3
23
Utilizando el mtodo de la divisin izquierda, tampoco es posible resolver los sistemas 2 y 3 (NaN= not a number). De acuerdo a los resultados presentados, se concluye que el mtodo de la matriz inversa y el mtodo de la divisin izquierda son tiles para resolver sistemas de ecuaciones lineales siempre y cuando el sistema sea compatible. De esta manera, si el determinante de la matriz de los coeficientes es cero, no se debe continuar con el mtodo. Por otro lado, utilizar el comando solve permite identificar entre sistemas de ecuaciones determinados o indeterminados, adems es posible utilizarlo para resolver sistemas de ecuaciones lineales y no lineales.
24
Se pueden modificar tres aspectos del formato de cada funcin representada: tipo de lnea, tipo de marcador y color. Si no se asigna ningn formato a las lneas, Matlab utiliza valores por defecto. Combinando el tipo de lnea, el color y el marcador de acuerdo a la nomenclatura presentada en las tablas siguientes, es posible conseguir una gran variedad de representaciones visuales. Colores y m c r g b w k Amarillo Magenta Cyan Rojo Verde Azul Blanco Negro Maracadores (puntos de datos) . Puntos o Crculos x Cruces + Signos suma * Asteriscos s Cuadrados d Rombos p Estrellas
Tipos de lnea Lnea continua : Lnea punteada -. Lneas y puntos -Lnea discontinua
A fin de aadir ttulos a las grficas, nombres a los ejes y a las series se utilizan los siguientes comandos: title(texto) xlabel(texto) ylabel(texto) zlabel(texto) legend(texto1, texto2,.., texton) Ttulo del grfico Nombre de eje x. Nombre de eje y. Nombre de eje z. Nombres de las series (diferentes curvas en una misma grfica).
Adems, cuando se desea presentar u ocultar las lneas de divisin se activa/ desactiva la grilla con los comando grid on/ grid off. Grficas en el plano. Utilizando los conceptos presentados se ejemplifica la metodologa de graficacin. Ejemplo 5.
2 Graficar la siguiente funcin: y = x e ( x ) para el siguiente dominio 3 x 3
x = 0.05
x=-3:0.1:3; y=x.*exp(-(x.^2));
plot(x,y,'r*-') title('Grfica de funciones en el plano') % Ttulo del grfico xlabel('x') ylabel('f(x)') grid on % Ttulo de la abscisa % Ttulo de la ordenada % Muestro la grilla
25
x = 0.05
x2 = 0.01 x3 = 0.025
Las lneas de comando que definen las variables son las mismas en ambos casos.
x=-3:0.05:3; y=x.*exp(-(x.^2)); x2=-1.5:0.1:1.5; y2=sin(x2); x3=-1.5:0.25:1.5;
26
Luego se definen las lneas de cdigo para graficar: Hold on- hold off
hold on plot(x,y,'k-') plot(x2,y2,'m-.') plot(x3,y3,'cs--') hold off plot(x,y,'rd-',x2,y2,'bo:',x3,y3,'g-')
Sintxis especfica
Y finalmente se definen las lneas de cdigo que le dan formato al grfico (ttulos, nombres de las series, etc.) que son las mismas para ambos casos.
title(' Grfica de funciones en el plano') xlabel('x') ylabel('f(x)') legend('y1','y2','y3') % Nombre a las series
El resultado es el mismo en ambos casos, excepto porque se han utilizado diferentes colores, marcadores y tipos de lnea. Hold on- hold off Sintxis especfica
Como se puede observar en el cdigo, mediante hold on se le indica a Matlab que se van a graficar varias curvas, a continuacin se escriben tantas sentencias de graficacin (en este caso plot) como curvas se desee representar, y finalmente se escribe el comando hold off. 27
% Ventana 2
% Ventana 3
28
29
g ( x) = x 3
h( x) = 2 cos x 2 3
( )
con 0 x 3
Divida la ventana grfica en 4 secciones y represente: 1 cuadrante f(x) 2 cuadrante g(x) 3 cuadrante h(x) 4 cuadrante f(x), g(x), h(x).
% Grfica en la subventana 1
% Grfica en la subventana 2
% Grfica en la subventana 3
subplot(2,2,4)
% Grfica en la subventana 4
30
El comando subplot permite tratar a cada seccin individualmente, de manera tal que es posible asignarle distintos ttulos, nombres de ejes, leyendas, etc. a cada seccin en particular.
Grficas en el espacio. Todos los comandos presentados son aplicables en la representacin de puntos en el espacio. La nica diferencia radica en que se utiliza el comando plot3. Ejemplo 9.
0 s 10
Representar grficamente la curva r = f ( x, y, z ) definida segn:
31
Las operaciones de suma, resta, multiplicacin y divisin se realizan mediante los siguientes comandos: p3=p1+p2 p4=p1-p2 [p]=conv(p1,p2) Suma los polinomios p1 y p2 y guarda el resultado en la variable p3 Resta los polinomios p1 y p2 y guarda el resultado en la variable p4 Realiza la multiplicacin de los polinomios p1 y p2 y almacena el resultado en la variable p.
32
Las races de un polinomio se determinan utilizando el comando roots a partir de un polinomio definido en forma completa, mientras que con el comando poly es posible hallar el polinomio elemental dadas sus races. A es un vector cuyos elementos son las races de un polinomio, entonces la funcin poly devuelve los coeficientes del polinomio elemental. B es un vector cuyos elementos son los coeficientes de un polinomio, entonces la funcin roots devuelve las races de un polinomio.
poly(A)
roots(B)
Dos comandos tiles en el ajuste de datos experimentales a un polinomio son polyval y polyfit. polyval(p1,x) Evala el polinomio p1 en el/ los valor/es de x, donde x puede ser un escalar, un vector o una matriz. Obtiene los coeficientes de un polinomio de grado n a partir de pares de valores x,y.
polyfit(x,y,n)
p1 = 2 x 2 + 5 x 3 p2 = 7 x 2 + 3 x
Calcular: a. b. c. d. e. f. p1+p2 p1-p2 p1*p2 p1/p2 races p1 y p2 en -5 x 5
33
a) y b)
c) y d)
e)
f)
34
x=[10 11 12 13 14 15 16 17 18 19 20]; y=[247 294 345 400 459 522 589 660 735 814 897];
p=polyfit(x,y,2)
p=2x2+5x-3
Ajuste de datos experimentales a polinomios. En ingeniera qumica se realiza el ajuste de datos experimentales a funciones con el fin de corroborar una ley existente o determinar (predecir) una ley a partir de datos medidos. En el primer caso, se tendr una funcin matemtica que representa dicha ley mientras que en el segundo caso se desea determinar una funcin matemtica que represente el comportamiento de las variables medidas. El valor de residuo (R2) da una idea del error que se comete al considerar una funcin determinada. Cuanto ms cercano a 1 (uno) sea dicho estimador, mejor ser el ajuste que se ha realizado. El valor de residuo se calcula segn las siguientes ecuaciones:
SSE R = 1 ; SST
2
( Y ) SST = Y n
2
SSE =
(Y y )
n = tamao de la muestra
; Donde:
Ejemplo 12. A fin de estudiar la velocidad de desaparicin de una sustancia (A) al reaccionar con una sustancia (B), se ha realizado la medicin de la variacin de concentracin del compuesto A con el tiempo y los resultados obtenidos son: Tiempo 0.3 2.1 4.3 6.5 8.3 10.6 12.3 14.2 16.5 18.2 20 Conc. 55.5 44.7 38 34.7 30.6 27.2 22 15.9 8.1 2.9 1.5 35
% Graficar los valores para observar la tendencia general de los % puntos plot(x,Y,'or')
y=polyval(p1,x);
% Graficar los polinomios ajustados como lineas continuas junto a los % valores experimentales (puntos) hold on plot(x,y,'b') hold off
title('Ajuste de datos experimentales a polinomios'); xlabel('Concentracin') ylabel('Tiempo') legend('dat. exp.','pol. orden 1')
% Calcular el coeficiente R^2 para determinar el grado de ajuste. n=length(x); SST=sum(Y.^2)- ((sum(Y)).^2/n); SSE=sum((Y-y).^2); R=1-(SSE/SST)
La variacin de la concentracin de A con el tiempo sigue una tendencia lineal segn la siguiente expresin: y= -2.6169 x + 52.5084, con un valor de residuo R2=0.9845.
36
37
Ejercitacin resuelta.
Manejo de vectores y matrices.
1. Dado el vector A, probar los siguientes comandos e identificar cual es su utilidad.
A = [5,8,5,7,1,2,9,3,5,3]
% Genera un vector A (escalar) a partir del 2 elemento del vector A C=A(1:4) % Genera un vector C a partir de todos los elementos de la col. 1 a la 4 D=A(3:-1:1) % Genera un vector D a partir de todos los elementos de la col. 3 a la 1 E=A([2 7 1]) % Genera un vector E, a partir del 2, 7 y 1 elementos del vector A. 2. Dada la matriz B, probar los siguientes comandos e identificar cual es su utilidad.
3 2 1 B = 6 5 4 9 8 7
B(2,3) ; B(1,2) ; B(:,1) ; B(2,:) ; B(2:3,1:2) ; B(2,2)=200 ; B(:,:)=1 B=[3,2,1;6,5,4;9,8,7] B1=B(2,3) % Extrae de la matriz B el elemento ubicado en la fila 2 columna 3 y lo % almacena en la variable B1 (escalar). B2=B(1,2) % Extrae de la matriz B el elemento ubicado en la fila 1 columna 2 y lo % almacena en la variable B2 (escalar). B3=B(:,1) % Extrae de la matriz B todos los elementos de la columna 1 y los almacena % en la variable B3 (vector columna) B4=B(2,:) 38
39
4. Identificar en que se diferencian los siguientes comandos a partir de las matrices generadas en el paso anterior. A^2 con A.^2 ; A/B con A./B ; A\B con A.\B
A=magic(4) B=ones(4) a1=A.^2 a2=A./B a3=A.\B % Se realizan operaciones elemento a elemento y no operaciones % de lgebra matricial.
5. Generar un vector cuyos elementos estn comprendidos entre 5 y 50, con intervalos de 5 unidades. Determinar el tamao del vector anterior.
v=5:5:50 f=length(v)
A1 =
a. b. c. d.
2 3 3 7
A2 =
2 5 3 7 2 8
A3 = A1 + A1
A4 = A1 A2
A5 = 2 A2 A6 = A2 '
40
A7 = A6 A8 = A1
2
A7=A6^2 % En este caso, Matlab genera un error ya que no se puede % aplicar la potenciacin a una matriz rectangular (3x2) A8=A1^2 % En este caso si es posible aplicar el lgebra matricial ya que % la matriz es cuadrada (de tamao 2x2)
7. Generar un vector M de 20 elementos, cuyos valores estn comprendidos entre 100 y 200. Calcular N=sin(M).
M=linspace(100,200,20); N=sin(M);
8. Generar una matriz de 5 x 5 con el comando magic. A partir de la misma: a. b. c. d. Seleccionar el primer elemento Seleccionar todos los elementos de la fila 3 Seleccionar todos los elementos de las columnas 4 y 5 Seleccionar los elementos de las columnas 1 a 3 y de las filas 4 a 1.
A=magic(5);
9.
Defina los siguientes vectores utilizando el comando linspace o :. a. vec1=[-2 2 6 10] b. vec2 = vector de 20 elementos cuyo primer elemento es 20 y el elemento 20 es 1. 41
10. Dado el siguiente sistema de ecuaciones, resulvalo utilizando el mtodo de la matriz inversa.
4x + 5 y = 3 2 x + 9 y = 6
A=[-4,5;2,9]; b=[3,-6]';
X=inv(A)*b
11. Siendo A y B las matrices mostradas a continuacin, calcule las matrices solicitadas.
A=
1 2 3 4 5 6
B=
4 2 1 1 2 1
a. C = producto elemento a elemento de A y B. b. D = divisin derecha, elemento a elemento de A sobre B. c. E = divisin derecha, elemento a elemento de B sobre A. d. F = potencia cuadrada elemento a elemento de la matriz A.
A=[1,2,3;4,5,6] B=[4,2,1;1,2,1] C=A.*B D=A./B E=B./A F=A.^2
12. Genere una matriz J de 3x3, con nmeros aleatorios entre 0 y 1. a. Defina dos vectores fila denominados d1 y d2. Cada uno de ellos debe estar compuesto por los elementos de cada una de las diagonales de la matriz J. b. Defina como ult1 y ult2 a los elementos 5 de cada uno de los vectores d1 y d2. c. Defina un vector par que contenga los elementos 2, 4, 6, y 24 de la matriz J.
42
J=rand(5) d1=diag(J)' % nd1=length(d1); d2=[J(1,5),J(2,4),J(3,3),J(4,2),J(5,1)] % nd2=length(d2); ult1=d1(3) ult2=d2(3) par=J(2:2:24)' % npar=length(par); impar=J(1:25)' % nimpar=length(impar); whos
y = xe
( )
y=x.*exp(-(x.^2)); z=0.025*x.^2-0.1*x-0.05;
43
14. Dados :
44
45
%c
subplot(2,2,4) hold on plot(x,y,'b*') plot(x,z,'ro') plot(x,h,'g-') title('Grfica de funciones') xlabel('x') ylabel('y') legend('y','z','h')
46
a)
b)
c)
47
0 x 5 (250 elementos)
y = cos(x)
z = y cos(x)
x=linspace(0,5*pi,250); y=cos(x); z=y.*cos(x);
48
a. b. c.
k1=2*(x1).^6;
49
u r r1 = ( y1 , z1 , x1 ) 4 x1 3 ur r2 = ( y2 , z2 , x2 ) 10 x2 4.8
y1 = 2 cos3 ( x1 )
z1 = 2 y1 sin 3 ( x1 )
x1=linspace(-4,3,150); x2=linspace(-10,4.8,150);
y1=2*(cos(x1)).^3; y2=exp(0.25)*sin(2*x2);
z1=2*y1.*(sin(x1)).^3; z2=y2+cos(2*x2);
51
calcular:
% Races de un polinomio % Races de un polinomio % Divisin de polinomios % Producto de polinomios % Suma de polinomios
52
plot(datos(:,1),datos(:,2),'*k',datos(:,1),datos(:,3),'r'); title('Ajuste de datos experimentales a una funcin'); legend('Datos exp.','Funcin ajustada'); xlabel('x'); ylabel('y');
53
9a 3b = 24 11a + 2b = 1
A=[9,-3;11,2] b=[24;1] %a x1=inv(A)*b %b x2=A\b %c p1='9*x1-3*x2-24=0'; p2='11*x1+2*x2-1=0';
[c1,c2]=solve(p1,p2)
23. En las estaciones de servicio es preciso aadir cido sulfrico diluido a las bateras secas a fin de activarlas. Se nos pide preparar un lote nuevo de cido al 18.63% utilizando una disolucin ms dbil que contiene 12.43% de H2SO4 (el resto es agua pura) y que se encuentra en un tanque. Si se agregan 200 kg de H2SO4, al 77.7% al tanque, y la disolucin final tiene que ser H2SO4, al 18.63%, Cuntos kilogramos de cido de batera se han preparado? Vea la figura. Plantear el sistema de ecuaciones y resolverlo con Matlab.
p1='200+x=y'; p2='0.777*200+0.1243*x=0.1863*y';
[x,y]=solve(p1,p2)
Se utilizan x= 1905.5 Kg de la solucin original para obtener y= 2105.5 Kg de la solucin final al 18.63 %. 54
Alt + 58 Alt + 47 Alt + 92 Alt + 39 Alt + 40 Alt + 41 Alt + 91 Alt + 93 Alt+179 Alt+126 Alt+37 Alt+38 Alt+59 Alt+94 Alt+60 Alt+61 Alt+62
55