USO DE MATLAB (BÁSICO)

122
PRÁCTICA 1: CARACTERÍSTICAS BÁSICAS FUNCIONES MATEMÁTICAS COMUNES 1

description

MATLAB BÁSICO

Transcript of USO DE MATLAB (BÁSICO)

Page 1: USO DE MATLAB (BÁSICO)

PRÁCTICA 1: CARACTERÍSTICAS BÁSICAS FUNCIONES MATEMÁTICAS COMUNES

1

Page 2: USO DE MATLAB (BÁSICO)

2

Page 3: USO DE MATLAB (BÁSICO)

3

Page 4: USO DE MATLAB (BÁSICO)

4

Page 5: USO DE MATLAB (BÁSICO)

5

Page 6: USO DE MATLAB (BÁSICO)

6

Page 7: USO DE MATLAB (BÁSICO)

7

Page 8: USO DE MATLAB (BÁSICO)

8

Page 9: USO DE MATLAB (BÁSICO)

9

Page 10: USO DE MATLAB (BÁSICO)

10

Page 11: USO DE MATLAB (BÁSICO)

PRÁCTICA 2: VECTORES Y MATRICES, CARACTERÍSTICAS Y OPERACIONES

11

Page 12: USO DE MATLAB (BÁSICO)

12

Page 13: USO DE MATLAB (BÁSICO)

13

Page 14: USO DE MATLAB (BÁSICO)

14

Page 15: USO DE MATLAB (BÁSICO)

15

Page 16: USO DE MATLAB (BÁSICO)

16

Page 17: USO DE MATLAB (BÁSICO)

17

Page 18: USO DE MATLAB (BÁSICO)

18

Page 19: USO DE MATLAB (BÁSICO)

19

Page 20: USO DE MATLAB (BÁSICO)

PRÁCTICA 3: OPERACIONES RELACIONALES Y LÓGICAS

20

Page 21: USO DE MATLAB (BÁSICO)

21

Page 22: USO DE MATLAB (BÁSICO)

22

Page 23: USO DE MATLAB (BÁSICO)

23

Page 24: USO DE MATLAB (BÁSICO)

24

Page 25: USO DE MATLAB (BÁSICO)

25

Page 26: USO DE MATLAB (BÁSICO)

26

Page 27: USO DE MATLAB (BÁSICO)

27

Page 28: USO DE MATLAB (BÁSICO)

PRÁCTICA 4: GRÁFICAS 2-D Y 3-D

28

Page 29: USO DE MATLAB (BÁSICO)

29

Page 30: USO DE MATLAB (BÁSICO)

30

Page 31: USO DE MATLAB (BÁSICO)

31

Page 32: USO DE MATLAB (BÁSICO)

32

Page 33: USO DE MATLAB (BÁSICO)

33

Page 34: USO DE MATLAB (BÁSICO)

34

Page 35: USO DE MATLAB (BÁSICO)

PRÁCTICA 5: PROGRAMACIÓN EN MATLAB

35

Page 36: USO DE MATLAB (BÁSICO)

36

Page 37: USO DE MATLAB (BÁSICO)

37

Page 38: USO DE MATLAB (BÁSICO)

38

Page 39: USO DE MATLAB (BÁSICO)

39

Page 40: USO DE MATLAB (BÁSICO)

40

Page 41: USO DE MATLAB (BÁSICO)

41

Page 42: USO DE MATLAB (BÁSICO)

42

Page 43: USO DE MATLAB (BÁSICO)

PRÁCTICA 6: POLINOMIOS ANÁLISIS NUMÉRICOS

43

Page 44: USO DE MATLAB (BÁSICO)

44

Page 45: USO DE MATLAB (BÁSICO)

45

Page 46: USO DE MATLAB (BÁSICO)

46

Page 47: USO DE MATLAB (BÁSICO)

47

Page 48: USO DE MATLAB (BÁSICO)

48

Page 49: USO DE MATLAB (BÁSICO)

49

Page 50: USO DE MATLAB (BÁSICO)

PRÁCTICA 7 : OPTIMIZACIÓN

50

Page 51: USO DE MATLAB (BÁSICO)

51

Page 52: USO DE MATLAB (BÁSICO)

52

Page 53: USO DE MATLAB (BÁSICO)

53

Page 54: USO DE MATLAB (BÁSICO)

54

Page 55: USO DE MATLAB (BÁSICO)

55

Page 56: USO DE MATLAB (BÁSICO)

56

Page 57: USO DE MATLAB (BÁSICO)

57

Page 58: USO DE MATLAB (BÁSICO)

58

Page 59: USO DE MATLAB (BÁSICO)

59

Page 60: USO DE MATLAB (BÁSICO)

1)APLICACIONES SOBRE EL USO DE MATLAB

1. En el campo de las Comunicaciones, MATLAB permite realizar modelado y diseño de sistemas DSP, trabajar con sistemas conmutados, con telefonía fija/móvil o ADSL y con modelado de canal/emisor/receptor

2. En el campo Aeroespacial/Defensa, MATLAB permite trabajar en sistema radar, unidades de seguimiento y rastreo, aviónica, modelado y control de sistemas de potencia y guiado, y navegación y control

3. En el campo de la Automoción, MATLAB posibilita aplicaciones para trabaja en la ingeniería de control, sistemas de suspensión, sistemas ABS y diseño de bloques de embrague.

4. En el campo de los Periféricos para ordenadores, MATLAB dispone de drivers para discos, de periféricos de control para posición/velocidad y de instrumentación.

5. MATLAB, a través de Simulink, permite diseñar sistemas dinámicos sencillos o complejos y realizar modelado y simulación mediante un lenguaje agradable basado en diagramas de bloques. Admite sistemas en tiempo continuo, sistemas de control y control inteligente, y aplicaciones de procesado de señal digital y comunicaciones

6. Permite integrar la expresión y el cálculo simbólicos (cálculo, transformadas, álgebra lineal, ecuaciones) al entorno de cálculo y visualización

2)COMANDOS PARA MATRICES Y VECTORES

60

Page 61: USO DE MATLAB (BÁSICO)

61

Page 62: USO DE MATLAB (BÁSICO)

3)EJERCICIOS DE MATRIZ Y VECTOR

62

Page 63: USO DE MATLAB (BÁSICO)

4)CÓDIGO ASCII:El ASCII en informática se conoce

como código fuente al texto desarrollado en un lenguajede programación que debe ser compilado o desarrollado para poder ejecutar en un ordenador, que es una presentación de los caracteres alfanuméricos que es cuando está formado por letras y números y se hace fácil para la comunicación entre los diferentes dispositivos digitales.

5)DEFINICIÓN DE GRADIENTE CON EJERCICIO DE APLICACIÓNEl gradiente es una operación vectorial, que opera sobre una función escalar, para producir un vector cuya magnitud es la máxima razón de cambio de la función en el punto del gradiente y que apunta en la dirección de ese máximo. En coordenadas rectangulares el gradiente de la función f(x,y,z) es: 

Aplicaciones en física

La interpretación física del gradiente es la siguiente: mide la rapidez de

variación de una magnitud física al desplazarse una cierta distancia. Un

gradiente alto significa que de un punto a otro cercano la magnitud puede

presentar variaciones importantes (aquí se entiende por gradiente alto o

grande uno tal que su módulo es grande). Un gradiente de una magnitud

pequeño o nulo implica que dicha magnitud apenas varía de un punto a otro.

El gradiente de una magnitud física posee innumerables aplicaciones en

física, especialmente en electromagnetismo y mecánica de fluidos. En

particular, existen muchos campos vectoriales que puede escribirse como el

gradiente de un potencial escalar.

Uno de ellos es el campo electrostático, que deriva del potencial eléctrico:

Todo campo que pueda escribirse como el gradiente de un campo escalar,

se denomina potencial, conservativo o irrotacional. Así, una fuerza

conservativa deriva de la energía potencial como:

63

Page 64: USO DE MATLAB (BÁSICO)

Los gradientes también aparecen en los procesos de difusión que verifican

la ley de Fick o la ley de Fourier para la temperatura. Así, por ejemplo, el

flujo de calor en un material es directamente proporcional al gradiente de

temperaturas

siendo   la conductividad térmica.

CÁLCULO DE GRADIENTE

64

Page 65: USO DE MATLAB (BÁSICO)

6)REALIZAR 2 EJEMPLOS DE APLICACIÓN DE PROGRAMACIÓN MATLAB, USANDO POR LO MENOS 15 LÍNEAS.

EJERCICIO 1:

65

Page 66: USO DE MATLAB (BÁSICO)

EJERCICIO 2:

66

Page 67: USO DE MATLAB (BÁSICO)

PRÁCTICA 1: CARACTERÍSTICAS BÁSICAS FUNCIONES MATEMÁTICAS COMUNESclc

%%EDISON PILLAJO GARCÌA%%QUINTO NIVEL%%INGENIERÌA ELÈCTRICA%%-------------------------------%% 1)OPERACIONES MATEMÀTICAS COMUNES %%a=7 %damos valor a la variable a y la escribe en la pantallab=4; %no escribe el valor de b por el ; del finala+b %realiza la suma de dos variables y guarda la soluciòn en la variable ansa-b %restaa*b %multiplicaciona/b %divisiòna^b %potenciaciònwho whos %% 2)FORMATOS DE NÙMEROS% modifica la forma de presentaciòn % format short , Formato coma fija con 4 digitos despues de la coma(formato que viene pro defecto% format long , Formato coma fija con 14 o 15 digots despues de la coma% format short e , Formato coma flotante con 4 dìgitos despues de la coma% format long e , Formato coma flotante con 14 o 15 digitos despues de la coma% format short g ,La mejor entre 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 de3% 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 format short pi %% 3)VARIABLES ESPECIALES% ans , VARIABLE USADA POR DEFECTO PARA ALMACENAR EL ULTIMO RESULTADO% pi , RAZON DE UNA CIRCUNFERENCIA 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 NUMÈRICA

67

Page 68: USO DE MATLAB (BÁSICO)

% i y j , i=j=square(-1)% realmin , EL NÙMERO REAL POSITIVO MÀS PEQUEÑO QUE ES UTILIZABLE% real max , EL NÙEMRO REAL POSITIVO MÁS GRANDE QUE ES UTILIZABLE clock %AÑO MES DÌA HORA MINUTOS Y SEGUNDOS EN ESTE ORDEdate %DIA-MES-AÑOcalendar %mes actual %% FUNCIONES MATEMÀTICAS COMUNES% ceil(x) , REDONDEO HACIA EL INFINITO% fix(x) , "" HACIA CERO% floor(x) , "" REDONDEO HACIA MENOS INFINITO% round(x) , "" REDONDEO HACIA EL ENTERO MÀS PRÓXIMOx=5.92ceil(x) fix(x) floor(x) round(x)round([19.54646 13.656 -2.1565 0.78]) %% FUNCIONES TRIGONOMÈTRICAS% sin(x) , seno% cos(x) , coseno% tan(x) , tangente% csc(x) , cosecante% sec(x) , secante% cot(x) , cotangente% ...d(x) , fuciòn trigonomètrica con el àngulo expresado en grados% sind(x) , seno(grados)% ...h(x) , funciòn trigonomètricas hiperbolica con el àngulo expresado en% radianes% sinh(x) , seno hiperbòlico (radianes)% a...(x) , inversa de la funcion% asin(x)sin(pi/2)sind(-90)cosd(60) %% ALGUNAS OPERACIONES ESPECIALES% abs(x) , valor absoluto o magnitud de un nùmero complejo% sign(x) , signo del argumento si x es un valor real (-1si es negativo, 0 si es cero, 1 si es positivo)% esp(x) , esponencial% gcd(m,n) , màximo comun divisor% lcm(m,n) , minimo comun multiplo % log(x) , logaritmo neperiamo o natural % log2(x) , logaritmo en base 2% log10(x) , logaritmo decimal% mod(x,y) , modulo despues de la division % rcm(x,y) , resto de la division entera% sqrt(x) , raiz cuadrada

68

Page 69: USO DE MATLAB (BÁSICO)

% nthroot(x,n) , raiz n-èsima de x abs(-7) % valor absolutosign(10) % signo del numero 10gcd(9,12) %maximo comun divisor entre 9 y 12lcm(10,25) %mínimo comùn multiplo %% NÙMEROS COMPLEJOS% abs(x) , magnitud del nùmero real complejo x% angle(x) , àngulo (en radianes) del complejo x% complex(y,z) , genera el complejo y+zi% conj(x) , conjugado del nùmero complejo x% imag(x) , parte imaginaria del nùmero complejo x % real(x) , parte real del nùmero complejo % sign(x) , divide el complejo x por su magnitud, devuelve un nùmero% complejo con el mismo àngulo de fase pero con magnitud 1% isreal(x) , devuelve 1 si es real, y 0 si es complejox=3+4iy=2z=7abs(x) angle(x) complex(y,z) conj(x) imag(x) real(x) sign(x)isreal(x)

TAREA 1clc%% TAREA 1 %% A) CREE Y PRUEBE LA SINTAXIS MATLAB PARA EVALUAR LAS SIGUIENTES EXPRESIONES %% Y VERIFIQUE SUS RESPUESTAS CON CALCULADORA A MANO%1)5+3/9-1 %LA RESPUESTA EN CALCULADORA ES 4.3333 %2)2^3-3/5+3 %LA RESPUESTA EN CALCULADORA ES 10.4000 %3)5^2+1/4-1 %LA RESPUESTA EN CALCULADORA ES 24.2500 %4)41/2*52/3 %LA RESPUESTA EN CALCULADORA ES 355.333 %5)(5+6*7/3-2^2)/(2/3*(3/3*6)) %LA RESPUESTA EN CALCULADORA ES 3.7500

69

Page 70: USO DE MATLAB (BÁSICO)

%% B) RESUELVA EL SIGUIENTE

PROBLEMA%% EL SOL IRRADIA 385x10^24 J/S DE ENERGÌA, LOS CUALES SE GENERAN %% MEDIANTE REACCCIONES NUCLEARES QUE CONVIERTEN LA MATERIA EN ENERGÌA.%% UTILICÈ MATLAB Y LA ECUACIÒN DE EINSTEIN PARA DETERMINAR CUÀNTA MATERIA%% SE DEBE CONVERTIR EN ENERGÌA PARA PRODUCIR ESA CANTIDAD DE RADIACIÒN%% EN EUN DÌA. %% GUÌAS%1) RAPIDEZ DE LA LUZ C=3.0x10^8 m/s , MASA(m) EN KG%2) ENERGÌA IRRADIADA EN UN DÌA -> FACTOR DE CONVERSIÒN%3) ECUACIÒN DE EINSTEIN -> E=mc^2%4) RESPUESTA MATERIA m=3.7 x10^14 J/m^2/s^2%5) LA MASA EN KG -> 1J=1Kgm^2/s^2%6)ESTABLEZCA CONCLUSIONES LITERALES O GRÀFICAS%E=385*10^24 %ENERGÌA IRRADIADA EN UN SEGUNDOc=3.0*10^8 %VELOCIDAD DE LA LUZEa=E*3600*24 %ENERGÌA IRRADIADA EN UN DÌAm=Ea/c^2 %MATERIA DE UN DÌA%%CONCLUSIÒN:%LA FORMA MÀS FACIL DE REALIZAR ESTE EJERCICIO ES TRANSFORMANDO%LA ENERGÌA IRRADIADA EN UN SEGUNDO A LA DE UN DÌA LUEGO USAMOS %LA FORMULA %% C) DOS EJERCICIOS DE CADA TEMA%1) OPERACIONES MATEMÀTICAS COMUNES a=2; b=3, c=8;x=(a+b)/(c*2*b) %EJERCICIO 1...........LA RESPUESTA ES 0.1042y=(a+b+c)*(a/b) %EJERCICIO 2...........LA RESPUESTA ES 8.6667 %2) FORMATOS DE NÙMEROSformat short %EJERCICIO 1...........LA RESPUESTA ES 0.1042 (este comando permite dar una respuesta aproximada con 4 decimales)xformat long %EJERCICIO 2...........LA RESPUESTA ES 8.666666666666666 (este comando permite dar una respuesta aproximada con 15 decimales)y %3) VARIABLES ESPECIALESdate %EJERCICIO 1 ESTE COMANDO NOS PERMITE MOSTRAR EL DIA-MES-AÑOcalendar %EJERCICIO 2 ESTE COMANDO NOS PERMITE MOSTRAR EL CALENDARIO DEL mes actual %4) FUNCIONES MATEMÀTICAS COMUNESceil(x) %EJERCICIO 1 REDONDEO HACIA EL INFINITO fix(y) %EJERCICIO 2 REDONDEO HACIA CERO %5) FUNCIONES TRIGONOMÈTRICASsin(pi/2) %EJERCICIO 1 FUNCION SENO EN REDIANES

70

Page 71: USO DE MATLAB (BÁSICO)

sind(-90) %EJERCICIO 2 FUNCIÒN SENO EN GRADOS

%6) ALGUNAS OPERACIONES ESPECIALESlog(x) %EJERCICIO 1 logaritmo neperiamo o natural log2(y) %EJERCICIO 2 logaritmo en base 2 %7) NÙMEROS COMPLEJOScom=9+4iangle(com) %EJERCICIO 1 NOS PERMITE SACAR EL àngulo (en radianes) del complejo com real(com) %EJERCICIO 2 NOS PERMITE SACAR EL NÙMERO REAL DEL IMAGINARIO

71

Page 72: USO DE MATLAB (BÁSICO)

PRÁCTICA 2: VECTORES Y MATRICES, CARACTERÍSTICAS Y OPERACIONESclc

%%EDISON PILLAJO GARCÌA%%QUINTO NIVEL%%INGENIERÌA ELÈCTRICA%%-------------------------------clc%% PRÀTICA N2%% TEMA: VECTORES Y MATRICES %% 1)COMO VAMOS A DEFINIRLOS%PARA CREAR UN VECTOR INTRODUCIMOS LOS VALORES DESEADOS SEPARADOS (O COMAS%TODO) ELLO ENTRE CORCHETES []. SI LO QUE QUEREMOS ES CREAR UNA MATRIZ LO%HACEMOS DE FORMA ANÀLOGA PERO SEPARADO LAS FILAS CON PUNTOS Y COMAS (;).%GENERALMETE USAREMOS LETRAS MAYÙSCULAS CUANDO NOMBREMOS A LAS MATRICES Y%MINÙSCULA PARA VECTORES Y ESCALARES. ESTO NO ES IMPRESCINDIBLE Y MATLAB NO%LO EXIGE, PERO RESULTA UTIL.%EJEMPLOSx=[5 7 -2 4 -6] %es un vector, los elementos los separamos con espaciosy=[2,1,3,7] %es otro vector, los elementos los separamos con comasz=[0 1 2,3 4,5] %es otro vector, da igual separar los elementos por comas o espacios A=[1 2 3;4 5 6] %es una matriz con 2 filas y 3 columnas %% 2)DIRECCIONAMIENTO DE ELEMENTOS DE VECTORES Y MATRICES%PARA ACCEDER A LOS ELEMENTOS INDIVIDUALES DE UN VECTOR LO HAREMOS%UTILIZANDO SUBÌNDICES, ASÌ x(n) SERÌA EL N-ÈSIMO ELEMETO DEL VECTOR X. SI%QUEREMOS ACCEDER AL ÙLTIMO PODEMOS INDICARLO USANDO end COMO SUBÌNDICE.x(2) %segundo elemento del vector xx(end) %ùltimo elemento del vector x %PARA ACCEDER A UN BLOQUE DE ELEMENTOS A LA VEZ, SE USA LA NOTACIÒN DE DOS%PUNTOS (:), ASI x(m:n) NOS DA TODOS LOS ELEMENTOS DESDE EL M-ÈSIMO DEL VECTOR x.x(2:4) %devuelve desde el segundo al cuarto elemento del vector xç%SI INTRODUCIMOS UN NÙMERO ENTRE EL PRIMERO Y EL SEGUNDO TAMBIÈN SEPARADO%POR DOS PUNTOS (:) SE MOSTRARÀN LOS ELEMENTOS DEL PRIMERO AL ÙLTIMO%INDICADO, INCREMENTADOS SEGÙN EL NÙMERO QUE APARE CE EN EL CENTRO (O DECREMENTADOS SI EL NÙMERO ES NEGATIVO)x(1:3:5) %devuelve el primero, tercero y quinto elemento del vector x%OTYRA 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]) %devueleve el tercero, quinto y primer elemento del vector x

72

Page 73: USO DE MATLAB (BÁSICO)

%PARA ACCEDER A LOS ELEMENTOS DE

UNA MATRIZ NECESITAMOS DAR DOS VALORES, EL%PRIMERO INDICA LA FILA Y EL SEGUNDO LA COLUMNAA(2,1) %elemento de la matriz que està en la fila 2 y en la columna 1%SIQUEREMOS QUEREMOS QUE ESCRIBA TODA UNA FIALA 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 UNA COLUMNA PERO AHORA SITUAMOS LOS%DOS PUNTOS EN EL LUGAR DE LA FILAS PARA INDICAR QUE QUEREMOS TODAS LAS%FILAS DE ESTA COLUMNA.A(:,2) %escribe la segunda columna de la matriz%AL IGUAL QUE CON LOS VECTORES PODEMOS INDICAR QUE ESCRIBA UNA SERIE DE%FILAS O COLUMNAS LA MANERA DE HACERLO SERÌA MUY PARECIDOA(2,2:3) %escribe de 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, las 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 ùltima fila, las columnas 1 y 3 %MATLAB TIENE ADEMÀS OTRA FORMA DE IDENTIFICAR CADA ELEMENTO DE UNA MATRIZ,%DE MODO QUE PODEMOS ACCEDER A UN ELEMENTO DE UNA MATRIZ INDICANDO SÒLO UN%VALOR Y NO DOS, PERO DEBEMOS SABER QUE EL ORDEN ELEGIDO POR MATLAB ES POR%COLUMNAS ASÌ LOS ELEMENTOS DE LA MATRIZ A SERÌAN DENOMINADOS% .........................% . A(1) . A(3) . A(5) .% . A(2) . A(4) . A(6) .% ......................... A(5) %accede al elemento 5 de la matriz, es decir, igual que si escribièramos A(1,3) %% 3)CONSTRUCCIÒN ABREVIADA DE ALGUNOS VECTORES %A PARTE DE DEFINIR UN VECTOR INTRODUCIENDO CADA UNO DE SUS ELEMENTOS,%TAMBIÈN PODEMOS CREALO HACIENDO USO DE LAS SIENGUIENTES SENTENCIAS: % (a:b) crea un vector que comienza en el valor a y acaba en el valor b% aumentando de 1 en 1% (a:b:c) crea un vetor que comienza en el vector a y acaba en el vector b% aumentando de c en c% linspace(a,b,c) genera un vector linealmente espaciado entre los% valores 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

73

Page 74: USO DE MATLAB (BÁSICO)

% valores 10^a y 10^b con c elementos.

% logspace(a,b) genera un vector logarìcmicamente espaciado entre los% valores 10^a y 10^b con 50 elementos.(1:7) %crea un vector que comienza en 1, aumenta de 1 en 1 ya acaba en 7(1:3:10) %crea un vector que comenzando en 1, aumenta de 3 en 3 hasta el 10(1:4:10) %comenzando en 1, aumenta de 4 en 4 hasta el 10 y por eso acaba en 9(-50:-7:1) %crea un vector que comenzando en 50, disminuye de 7 en 7 hasta el 1linspace(2,6,3) %genera un vector desde el 2 al 6 con 3 elementos equdistanteslinspace(2,6,4) %genera un vector desde el 2 al 6 con 4 elementos equdistanteslogspace(0,2,4) %genera un vector logarìmicamente espaciado entre 10^0 y 10^2 con 4elementos %% 4)CONSTRUCCIÒN DE ALGUNAS MATRICES%AL IGUAL QUE PASA CON LOS VECTORE, EXISTEN UNAS SENTENCIAS QUE NOS AYUDAN%A CREAR MÀS RÀPIDAMENTE ALGUNAS MATRICES QUE MATLAB YA TIENE%PREDEFINIDAS (m y n DEBEN TOMAR VALORES NATURALES)% zeros(n) crea una matriz cuadrada n x n de ceros% zeros(m,n) crea una matriz m x n de ceros% ones(n) crea una matriz cuadrada n x n de unos% ones(m,n) crea una matriz m x n de unos% rand(n) crea una matriz cuadrada n x n de nùmeros aleatorios con% distribuciòn uniforme (0,1)% rand(m,n) crea una matriz n x n de nùmeros aleatorios con distribuciòn uniforme (0,1)% randn(n) crea una matriz cuadrada n x n de nùmeros aleatorios con% distribuciòn normal (0,1)% randn(m,n) crea una matriz m x n de nùmeros aleatorios con% distribuciòn uniforme (0,1) % eye(n) crea una matriz cuandrada n x n de unos en la diagonal y% ceros el resto% eye(m,n) crea una matriz m x n de unos en la diagonal y ceros el resto% magic(n) crea un amatriz cuadrada n x n de enteros de modo que sumen% lo mismo las filas y las columnas% hilb(n) crea una matriz cuadrada n x n de Hilbert, es decir, los% elementos (i,j) responden a la expresiòn (1/(i+j-1)).% invhilb(n) crea una matriz cuadrada n x n que es la inversa de la matriz de Hilbert%EJEMPLOSzeros(3) %matriz cuadrada de 3x3 de ceroszeros(2,5) %matriz cuadrada de 2x5 de cerosones(2,3) %matriz de unosrand(2,4) %matriz de valores aleatorios entre 0y1 segùn la uniforme (0,1)randn(2,5) %matriz de valores aleatorios segùn la normal(0,1)eye(2) %matriz de vaores de uno diagonal

74

Page 75: USO DE MATLAB (BÁSICO)

magic(4) %MATRIZ MÀGICA DE 4X4hilb(3) %matriz Hilbert de 3x3 %% 5)OPERACIONES BÀSICAS CON MATRICES% + A+B SUMA DE MATRICES% - A-B RESTA DE MATRICES% * A*B MULTIPLICACIÒN DE MATRICES % .* A.*B MULTIPLICACIÒN ELEMENTO A ELEMENTO DE MATRICES% / A/B DIVISIÒM DE MATRICES POR LA DERECHA% ./ A./B DIVISIÒN ELEMENTO A ELEMENTO DE MATRICES POR LA DERECHA% \ A\B DIVISIÒN DE MATRICES POR LA IZQUIERDA% .\ A.\B DIVISÒN ELEMENTO A ELEMENTO DE MATRICES POR LA IZQUIERDA% ^ A^n POTENCIACIÒM ()n DEBE SER UN NÙMERO, NO UNA MATRIZ% .^ A.^B POTENCIACIÒN ELEMENTO A ELEMENTO DE MATRICES% ' A' TRANSPOSICIÒM COMPLEJA CPNJUGADA% .' A.' TRANSPOSICIÒN DE MATRICESn=2A=[1 2 3;4 5 6;4 5 6]B=[1 1 1;0 1 6;1 5 9]C=[2+8i 6+8i; 7+8i 9+i ]A+B %SUMA DE MATRICESA-B %RESTA DE MATRICESA*B %MULTIPLICACIÒN DE MATRICES A.*B %MULTIPLICACIÒN ELEMENTO A ELEMENTO DE MATRICESA/B %DIVISIÒM DE MATRICES POR LA DERECHAA./B %DIVISIÒN ELEMENTO A ELEMENTO DE MATRICES POR LA DERECHAA\B %DIVISIÒN DE MATRICES POR LA IZQUIERDAA.\B %DIVISÒN ELEMENTO A ELEMENTO DE MATRICES POR LA IZQUIERDAA^n %POTENCIACIÒM ()n DEBE SER UN NÙMERO, NO UNA MATRIZA.^B %POTENCIACIÒN ELEMENTO A ELEMENTO DE MATRICESC' %TRANSPOSICIÒM COMPLEJA CONJUGADAC.' %TRANSPOSICIÒN DE MATRICES

75

Page 76: USO DE MATLAB (BÁSICO)

PRÁCTICA 3: OPERACIONES RELACIONALES Y LÓGICASclc

%% PRACTICA NÚMERO 3%% 1.OPERACIONES CON VECTORES%% cross(x,y) producto vectorial entre los vectores x,y% dot(x,y) producto escalar entre los vectores x,yx=[1 2 3]y=[2 4 5]cross (x,y)dot (x,y) %% 2.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) estyimacion de la norma-2% null(A) espacio nulo% orth (A) orotogonalizacion% 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% triu (A) matriz triangular superior a partir de la matriz A % EJEMPLOS: sea A matriz, v vector y n numero naturalv=[1 2 3]diag(v) % crea una matriz diagonal a partir del vector v A=[1 2 3 ;7 8 9;2 4 6 ] diag(A) %crea un vector columna a partir 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 matriztrace(A) % traza de la matriz, debe ser la matriz cuadradarank(A) % rango de la matrizrref(A) %reudccion mediante GaussI=tril(A),u=triu(A) % convierte en ceros todos los elementos que quedan encima de la diagonal principal y lo guarda en la variable I % convierte en ceros todos los elementos que quedan % debajo de la diagonal principal y lo guarda en la variable u

76

Page 77: USO DE MATLAB (BÁSICO)

%% 3. OTRAS OPERACIONES CON

MATRICES% find(A) devuelve los indices dond 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%% reshape(A,m,n) devuelve una matriz mxn cuyos elecmentro se toman por columnas de A, si A no contiene mxn elementos daria un error% rot90(A) gira la matriz 90º en sentido contrario a las agujas del reloj% rot90(A,n) gira la matriz nx90º% expm(A) matriz exponencial% 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 %% EJEMPLOS: B=[pi 0;pi/4 pi/3] find(B) % devuelve los indices como un vector columnareshape(B,1,4)rot90(B) % gira la matriz 90°rot90(B,3) % gira la matriz 270° (90°x3=270°)funm(B,@sin) % calcula el seno de cada elemento de la matrizexpm(B) %% 4. TEXTO%% una cadena de caracteres es texto rodeado 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 la operacion matematica sobre una%% cadena, esta se ve como un vector de numeros en ASCII%% para ver la representacion ASCII de una cadena, podemos utilizar las funciones abs, double o sumamos cero. Para restaurarla y verla%% de nuevo como cadena de caracteres, usamos la funcion setstr. Si queremos cambiar a minusculas añadiremos la diferencia entre 'a' y 'A'%% Si queremos q escriba algo en pantalla podemos utilizar el comando disp. a='casa';b='gato'; % ay b son cadenas de caracteres (se manejaran como vectores)a+ba+0 % vemos el codigo ASCII de la cadenaabs(a) % otra forma de ver la representacion ASCII de la cadenadouble(a) %una tercera forma de ver la representacion ASCII de la cadenasetstr(ans) %convertimos un vector de numero enteros en caracteresabs('a')-abs('A') % calculamos la diferencia entre minusculas y mayusculassetstr(a-32) %escribimos los caracteres conociendo la representacion ASCII

77

Page 78: USO DE MATLAB (BÁSICO)

disp(a) %escribe el valor almacenado en la variable adisp('escribe esto') %escribe el texto que haya entre comillas %% 5. HIPERMATRICES%% matlab permite trabajar con matrices de 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 mas de dos dimensiones son analogas a las %% funciones vistas anteriormente aunque con algunas diferencias por ejemplo, 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 %% 6. 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 otras. La funcion eat%% permite concatenar matrices segun las distintas "dimensiones"A=zeros(2,3);B=ones(2,3); % definimos dos matrices de las mismas dimensiones cat(1,A,B) % las concatenan una debajo de la otracat(2,A,B) % las concatenan una al lado de la otracat (3,A,B) % las concatenan como distintas capas de una hipermatriz %% Respecto al resto de funciones debemos tener en cuenta que:%% 1.las funciones que operan sobre escalares como sin, cos,etc se aplican sobre las hipermatrices elemento a elemento(igual que %% ocurre al aplicarlas sobre vectores y matrices)%% 2.Las funciones que operan sobre vectores como sum, max, etc se aplican a matrices e hipermatrices segun la primera dimension,%%resultando un array de una dimension inferior%% 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.

78

Page 79: USO DE MATLAB (BÁSICO)

PRÁCTICA 4: GRÁFICAS 2-D Y 3-Dclc%% PRACTICA NÙMERO 4%% GRAFICAS 2-D%LA ORDEN plot GENERA UNA GRÀFICA. LOS ARGUMENTOS DEBEN SER VECTORES DE LA%MISMA LONGITUD.%EJEMPLOx=[-2 -1 0 1 2 3] ;y=[4 1 0 1 4 9];plot(x,y)%SI QUEREMOS CAMBIAR LA APARENCIA DE LA GRÀFICA BASTA PINCHAR EN EL ÙLTIMO%BOTÒN DE LA BARRA DE HERRAMIENTAS Y SE ABRIRÀ UNOS CUADROS EN LOS%LATERALES QUE NOS PERMITEN IR HACIENDO LOS CAMBIOS DESEADOS COMO DARLE%NOMBRE A LO LEJOS%LA FUNCIÒN plot NOS PERMITE OTRAS OPCIONES COMO GRÀFICAS SOBRE LOS MISMOS%EJESz=[6 5 3 7 5 2];plot(x,y,x,z)%TAMBIÈN PODEMOS USAR DISTINTOS TIPOS DE LINEAS PARA EL DIBUJO DE LA%GRÀFICAplot(x,y,'*')%ADEMÀS`PODEMOS COLOCAR ETIQUETAS O MANIPULAR LA GRÀFICA % ETIQUETA SOBRE EL EJE X DE LA GRÀFICA ACTUAL xlabel('texto')% ETIQUETA SOBRE EL EJE Y DE LA GRÀFICA ACTUAL ylabel('texto')% TÌTULO EN LA CABECERA DE LA GRÀFICA ACTUAL title('texto')% TEXTO EN EL ELUGAR ESPECÌFICO POR LAS COORDENADAS text(x,y,'texto') % TEXTO, EL LUGAR LO INDICAMOS DESPIÈS CON EL RATÒN gtext(''texto) % DIBUJAR UNA REJILLA grid% FIJA VALORES MÀXIMO Y MÌNIMO DE LOS EJES axis([xmin xmax ymin ymax]) % FIJA QUE LA ESCALA EN LOS EJES SEA IGUAL axis equal% FIJA QUE LA GRÀFICA SEA UN CUADRO axis square% DESACTIVA axis equal y axis square axis normal % ABRE UNA VENTANA DE GRÀFICO hold on% BORRA LO QUE HAY EN LA VENTANA DE GRÀFICO hold off xlabel('EJE X')ylabel('EJE Y')title('EJEMPLO DE ETIQUETA')%text(x,y,'texto') texto en los puntos %gtext('texto') grid%axis([xmin xmax ymin ymax]) %axis equal%axis square%axis normal %hold on%hold off

79

Page 80: USO DE MATLAB (BÁSICO)

%TODAS ESTAS OPERACIONES SE LA PODEMOS DAR DESDE LA PROPIA

VENTANA DE LA %GRÀFICA UNA VEZ QUE HEMOS ABIERTO LAS OPERACIONES CON EL BOTÒN INDICANDO%ANTERIORMENTE.%OTROS COMANDOS RELACIONADOS CON LA GRÀFICA SON LOS SIENGUIENTES:%..........................................................................% ORDEN . ¿QUÈ HACE? . IMAGEN% area . COLOREA EL ÀREA BAJO LA GRÀFICA% bar . DIAGRAMA DE BARRAS (VERTICALES)% barh . DIAGRAMA DE BARRAS (HORIZONTALES) % hist . HISTOGRAMA % pie . SECTORES % rose . HISTOGRAMA SOLAR% stairs . GRÀFICO DE ESCALERA % stem . SECUENCIA DE DATOS DISCRETOS% loglog . COMO PLOT PERO CON ESCALA LOGARÌTMICA EN AMBOS EJES% semilogx . COMO PLOT PERO ESCALA LOGARÌTMICA EN EL EJE X% semilogy . COMO PLOT PERO ESCALA LOGARÌTMICA EN EL EJE Y %PARA OBTENER UNA INFORMACIÒN MÀS SENCILLA %help<orden>%UNA VENTANA GRÀFICA SE PUEDE DIVIDIR EN m PARTICIONES HORIZONTALES Y EN n%VERTICALES, DE MODO QUE CADA SUBDIVISIÒN QUE SE CONVIERTE EN ACTIVA.x=1:360; y1=sind(x); y2=cosd(x); y3=exp(x); y4=exp(-x);subplot(2,2,1) , plot(x,y1), title('SENO')subplot(2,2,2) , plot(x,y2), title('COSENO')subplot(2,2,3) , plot(x,y3), title('EXPONENCIAL')subplot(2,2,4) , plot(x,y4), title('-EXPONENCIAL')subplot(1,1,1) %para regresar al modo normalde la pantalla%PARA VOLVER AL MODO POR DEFECTO BASTA ESCRIBIR: subplot(1,1,1)%PARA DIBUJAR POLÌGONOS PODEMOS USAR LA FUNCIÒN plot PERO TENIENDO EN QUE%EL ÙLTIMO PUNTO DE AMBOS VECTORES DEBEN COINCIDIR PARA QUE LA G`RAFICA%QUEDE CERRADA. PERO SI LO QUE QUEREMOS ES QUE QUEDE COLOREADO TODO EL%INTERIOR DEL POLÌGONO DEBEMOS USAR MEJOR LA FUNCIÒN fill, TIENE TRES%ARGUMENTOS, LOS DOS VECTORES QUE FORMAN LOS PUNTOS Y UN TERCER ARGUMENTO%PARA INDICAR EL COLOR.x=[-2 0 2 0 -2] ; y=[4 8 4 0 4 ];plot(x,y)fill(x,y,'r') %COMANDO PARA DAR COLOR A LA GRÀFICA %% GRAFICAS 3-D%GRÀFICOS DE LÌNEA%TAMBIÈN PODEMOS CREAR GRÀFICAS EN 3 DIMENSIONES, SE TRATA DE EXTENDER LA%ORDEN DE plot(2-D) A plot3 (3-D) DONDE EL FORMATO SERÀ IGUAL x=-720:720 ; y=sind(x) ; z=cosd(x)plot3(x,y,z) %PODEMOS HACER GIRAR LA GRÀFICA USANDO LA BARRA DE HERRAMIENTAS EL BOTÒN O%HACERLA MÀS GRANDE O MÀS PEQUEÑA CON. AL IGUAL QUE OCURRÌA CON LA

80

Page 81: USO DE MATLAB (BÁSICO)

%GRAFICAS EN DOS DIMENSIONES PODEMOS NOMBRAR LOS EJES O HACER%MODIFICACIONES ENTRANDO EN OPCIONES CON EL BOTÒN%SI QUEREMOS REPRESENTAR UN POLÌGONO EN 3 DIMENSIONES LO HAREMOS CON LA%FUNCIÒN fill3 DE FORMA SIMILAR A fill PERO AHORA CON 4 ARGUMENTOS, SIENDO%EL CUARTO EL QUE INDICA EL COLORx=[-2 0 2 0 -2] ; y=[4 8 4 0 4 ];z=[3 5 10 5 3] fill3(x,y,z,'b') %DIBUJA EN 3 D INDICA EL COLOR AZUL %SUPERFICIE DE MALLA:%LA ORDEN [X,Y]=meshgrid(x,y) CREA UN A MATRIZ X CUYAS FILAS SON COPIAS DEL%VECTOR X Y UNA MATRIZ Y CUYAS COLUMNAS SON COPIAS DEL VECTOR Y. PARA%GENERAR LA GRÀFICA DE MALLA SE USA LA ORDEN mesh(X,Y,Z) , mesh ACEPTA UN%ARGUMENTO OPCIONAL PARA CONTROLAR LOS COLORES. TAMBIÈN PUEDE TOMAR MATRIZ%SIMPLE COMO ARGUMENTO : mesh(Z).%EJEMPLOx=-10:0.5:10 ; y=-10:0.5:10; %RANGO PARA GRÀFICA[X,Y]=meshgrid(x,y); % CREA MATRICES PARA HACER LA MALLAZ=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2+0.1); %FUNCIÒNmesh(X,Y,Z) %permite graficar en 3d %HUBIERA DADO IGUAL SI HUBIÈRAMOS ESCRITO:[X,Y]=meshgrid(-10:0.5:10);Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2+0.1);mesh(X,Y,Z) %GRÀFICA DE SUPERFICIE:%ES SIMILAR A LA GRÀFICA DE MALLA, PERO AQUÌ SE RELLENAN LOS ESPACIOS ENTRE%LÌNEAS. LAORDEN QUE USAMOS ES surf CON LOS MISMOS ARGUMENTOS QUE PARA%mesh.%EJEMPLOsurf(X,Y,Z) %LAS GRÀFICA DE CONTORNOS EN 2-D Y 3-D SE GENERA USANDO RESPECTIVAMENTE%LAS FUNCIONES contour Y contour3.%EJEMPLOS:contour(X,Y,Z) %DIBUJA LAS LÌNEAS DE CONTORNO %LA FUNCIÒN pcolor TRANSFORMA LA ALTURA A UN CONJUNTO DE COLORES%EJEMPLOOpcolor(X,Y,Z) %MANIPULACIÒN DE GRÀFICOS:%FIJA EL ÀNGULO DE VISIÒN ESPECIFICANDO EL azimut Y LA ELEVACIÒN view(az,el)

81

Page 82: USO DE MATLAB (BÁSICO)

%COLOCA SU VISTA EN UN VECTOR DE COORDENADA CARTESIANA (x,y,z) EN

EL view([x,y,z])%ESPACIO 3-D%ALMACENA EN az Y el LOS VALORES DE azimut Y DE LA ELEVACIÒNDE LA VISTA [az,el]=view%ACTUAL.%AÑADE ETIQUETAS DE ALTURA A LOS GRÀFICOS DE CONTORNO clabel(C,h)%AÑADE UNA BARRA DE COLOR VERTICAL MOSTRANDO LAS TRANSFORMACIONES: colorbar%EJEMPLOSsurf(X,Y,Z)view(10,70) %ÀNGULO DE VISTA colorbar %añade la barra de color a la figura actual surf(X,Y,Z)view([10,-12,2]) surf(X,Y,Z)[az,el]=viewaz=-37.5000el=30 [C,h]=contour(X,Y,Z)clabel(C,h) %COMPRESNCIÒN DE LOS MAPAS DE COLOR% COLOR NOMBRE CORTO ROJO/VERDE/AZUL% NEGRO k [0 0 0] % BLANCO w [1 1 1] % ROJO r [1 0 0] % VERDE g [0 1 0] % AZUL b [0 0 1] % AMARILLO y [1 1 0] % MAGENTA m [1 0 1] %LA SENTENCIA colormap(M) INSTALADA AL MATRIZ M COMO EL MAPA DE COLOR A UTILIZAR POR LA FIGURA ACTUAL.% FUNCIÒN % Jet% HSV% Hot% Cool% spring% summer% Autumn% Winter% Gray% Bone% Copper% Pink

82

Page 83: USO DE MATLAB (BÁSICO)

% Lines

%EJEMPLOS:surf(X,Y,Z)colormap(summer) M=[0 0 0; 1 0 0; 0 1 0; 0 0 1; 1 1 0 ]; %CREAMOS UNA MATRIZ DE COLOREScolormap(M)

TAREA 4clc%% 1)REALIZAR EJEMPLOS DE APLICACIÒN DE LOS COMANDOS NO CORRIDOS EN LA PRIMERA PARTE (AREA,BAR,...)x=[-2 -1 0 1 2 3] ;y=[4 1 0 1 4 9];subplot(3,5,1)plot(x,y)area(x,y)xlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 1') subplot(3,5,2)bar(x,y) %DIAGRAMA DE BARRAS (VERTICALES)xlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 2') subplot(3,5,3)barh(x,y) %DIAGRAMA DE BARRAS (HORIZONTALES)xlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 3') subplot(3,5,4)hist(y) %HISTOGRAMA xlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 4') subplot(3,5,5)pie(x,y) %SECTORES xlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 5') subplot(3,5,6)rose(x,y) %HISTOGRAMA SOLARxlabel('EJE X')ylabel('EJE Y')

83

Page 84: USO DE MATLAB (BÁSICO)

title('EJEMPLO 6') subplot(3,5,7)

stairs(x,y) %GRÀFICO DE ESCALERA xlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 7') subplot(3,5,8)stem(x,y) %SECUENCIA DE DATOS DISCRETOSxlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 8') subplot(3,5,9)loglog(x,y) %COMO PLOT PERO CON ESCALA LOGARÌTMICA EN AMBOS EJESxlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 9') subplot(3,5,10)semilogx(x,y) %COMO PLOT PERO ESCALA LOGARÌTMICA EN EL EJE Xxlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 10') subplot(3,5,11)semilogy(x,y) %COMO PLOT PERO ESCALA LOGARÌTMICA EN EL EJE Yxlabel('EJE X')ylabel('EJE Y')title('EJEMPLO 11') %% 2)REALIZAR EL USO DEL SUBPLOT, CON 10 GAFICAS CON ETIQUETAS, TITULOS, TEXTOS, COLORES, ...ETC %% 3) USAR EN UN OBJETO, LA BARRA DE HERRAMIENTAS QUE OFRECE MATLAB PARA GRÁFICASsubplot(3,5,12)[X,Y]=meshgrid(-10:0.5:10);Z=X.^3+Y;surf(X,Y,Z)colormap(summer)

84

Page 85: USO DE MATLAB (BÁSICO)

PRÁCTICA 5: PROGRAMACIÓN EN MATLABclc

%% PRACTICA 5%% PROGRAMACIÒN BAJO MATLAB , ESTRUCTURAS, SENTENCIAS Y BUCLES%% 1)ESTRUCTURA% ES UNA AGRUPACIÒNDE 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% APÒSTROFES(') SEGUIDOS DEL VALOR QUE SE LE QUIERE ASIGNAR%EJEMPLOS:alumno.nombre='EDISON'; %INTRODUCIMOS EL CAMPO NOMBRE EN LA ESTRUCTURA ALUMNOalumno.apellido1='PILLAJO'; %INTRODUCIMOS EL CAMPO APELLIDO1 EN LA ESTRUCTURA ALUMNOalumno.apellido2='GARCÌA'; %INTRODUCIOMOS EL CAMPO APELLIDO2 EN LA ESTRUCTURA ALUMNOalumno.edad=20; %INTRODUCIOMOS EL CAMPO EDAD EN LA ESTRUCTURA ALUMNOalumno %ESCRIBE POR PANTALLA LA INFORMACIÒM ALMACENADA EN LA ESTRUCTURA alumno= %% 2)USO struct:alumno2=struct('nombre','EDISON','apellido1','PILLAJO','apellido2','GARCÌA','edad',20)%alumno2=%otro modo de introducir los campos %% 3)OPERACIONES CON ESTRUCTURAS% 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 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)%EJEMPLOSfieldnames(alumno) %devuelve los campos de la estructura alumno isfield(alumno,'nombre') %devuelve 1 por ser cierto que nombre es un campo de alumno isstruct(alumno) %devuelve 1 porque es cierto que alumno es una estructura rmfield(alumno,'edad') %elimina el campo edad de la estructura alumno %% 4)VECTORES Y MATRICES COMO CELDAS%UN VECTOR DE CELDAS ES UN VECTOR CUYOS ELEMTOS SON CADA UNO DE ELLOS UNA

85

Page 86: USO DE MATLAB (BÁSICO)

%VARIABLE DE CUALQUIER TIPO. EN TODO VECTOR SUS ELEMENTOS PUEDE SE NÙMEROS%O CADENAS DE CARACTERES, PERO EN

UN VECTOR DE CELDAS EL PRIMER ELEMENTO%PUEDE SER UN NÙMERO, EL SEGUNDO UNA MATRIZ, EL TERCERO UNA ESTRUCTURA,%ECT.%PARA CREAR UN VECTOR DE CELDAS USAREMOS LLAVES ({}).celda(1)={[0 1 2]} ; %crearemos un vetor de celdas definiendo celda a celdacelda(2)={'cadena de caracteres'};celda(3)={eye(2)};celda(4)={-7}; %editemos las cuatro celdascelda %% 5)CELDA A CELDA DE OTRA FORMAcel{1}=[0 1 2 3]; %crearemos otro vector de celdas definiendo celda a celda de forma distintacel{2}='cadena de caracteres'cel{3}=eye(2);cel{4}=-7;cel %% 6)MATRICES CON CELDAS%FUNCIÒN ¿QUÈ HACE?% 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 numèrica en celdas% NOTA:(m y n nùmeros naturales , c celdas y x vestror o matriz)c={[0 1 2],'cadena de caràcteres',eye(2),-7}; %OTRA FORMA DE CREAR UN VECTOR DE CELDAS% SI QUERESMOS CREAR UNA MATTRIZ O UNA HIPERMATRIZ DE CELDAS SE HARÌA DE% FORMA SIMILAR.cell(2,3) %crea una matriz de celdas vacìascelldisp(c) %escribe el contenido de las celdas de ccellplot(c) %representa graficamente còmo son las celdas de ciscell(c) %num2cell(x) A=eye(3,2);num2cell(A) %% 7)OPERACIONES RELACIONALES Y LÒGICAS%COMO ENTRADAS A LAS EXPRESIONES RELACIONALES Y LÒGICAS, MATLAB CONSIDERA%QUE CERO ES FALSO Y QUE CUALQUIER NÙMERO DISTINTO DE CERO ES VERDADERO. LA%SALIDA DE EXPRESIONES DE ESTE TIPO PRODUCE 1 SI ES VERDADERO Y 0 SI ES%FALSO.%%OPERADORES RELACIONALES% OPERADOR ¡QUÉ SIGNIFICA?% <% >

86

Page 87: USO DE MATLAB (BÁSICO)

% >=% ~= distinto de(ALTGR4 -> ) % OPERADORES LÓGICOS

% & y% | o% - no% EJEMPLOx=5;y=1;x<y%COMO MATRIZx=1:5;y=x-4x<y %NOTA comparación falsa para los primeros cuatro, no para el último % EJEMPLO2: OPERADORES LOGICOS AND,NOT Y OR(&,~,|)X=[1,2,3,4,5];Y=[-2,0,2,4,6];Z=[8,8,8,8,8]Z>X&Z>YX>Y|X>Z%ADEMAS DE LOS OPERADORESN EXISTE OTRA FUNCIONES% xor(x,y) operación "o" exclusiva, 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 algún 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 respuesta por% cada columna% exist('x') devuelve uno si existe y cero si no existe% isnan(x) devuelve unos en magnitudes no numéricas (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 MÁS CASOS PERO TODOS SERÍAN SIMILARES: ischar,isempty,%isequal, isfloat, isinteger, islogical, isnumeric, isprime, isreal,%isscalar, isspace,... %NOTA: EXISTE UN ORDEN DE PRECEDENCIA PARA OPERADORES ARITMÉTICOS, LÓGICOS%Y RELACIONALES, EN LA SIGUIENTE TABLA VAN DE MAYOR A MENOR PRECEDENCIA: %ORDEN DE PRECEDENCIA DE OPERADORES% 1° ^.^'.'

87

Page 88: USO DE MATLAB (BÁSICO)

% 2° */\.*./.\% 3° +-~+(unario)-(unario)% 4° :><>=<===~=

% 5º |&a=1:9, b=5-a %definimos dos vectoresr1=a<6 %pregunta si a es menor que 6, devuelve 1 cuando es verdadero y 0 cuando es falso.r2=a==b %pregunta si a igual a b, devuelve 1 cuando es verdadero y 0 cuando es falsor4=(a>b)&(b>-3) %pregunta si a>b y b>-3, devuelve 1 cuando es verdadero y 0 cuando es falsoc=[Inf 0 5 -8 NaN 94];exist('c') %pregunta si existe alguna variable llamada cisnan(c) %pregunta cuando c es NaN, devuelve 1 caundo es verdadero y 0 cuando es falsoisinf(c) %pregunta cuando c es Inf, devuelve 1 cuando es verdadero y 0 cuando es falsoisfinite(c) %pregunta cuando caundo c es finito, devuelve 1 caundo es verdadero y 0 cuando es falso %% 7)BUCLES%% SENTENCIA FOR%UN BLOQUE for EN CADA INTERACIÒN ASIGNA A LA VARIABALE LA COLUMNA I-ÈSIMA%DE LA EXPRESIÒN Y EJECUTA LAS ÒRDENES. EN LA PRÀCTICA LAS EXPRESIONES%SUELEN SER DEL TIPO ESCALAR EN CUYO CASO LAS COLUMNAS SON ESCALARES.% for variable=expresiòn % <orden>% <orden>% ......% <orden>% end%EJEMPLOfor x=1:5 disp('x toma el valor') %escribe por pantalla el texto que se indica entre las comillas disp(x) %escribe el valor de la variable xend %% SENTENCIA WHILE%UN BLOQUE while EJECUTA LAS ÒRDENES MIENTRAS TODOS LSO ELEMENTOS DE LA%EXPRESIÒN SEAN VERDADERAS% while <orden>% <orden>% <orden>% ...% <orden>% end%EJEMPLOa=3;while a<5

88

Page 89: USO DE MATLAB (BÁSICO)

disp('a es menor que 5 ya que vale') disp(a)

a=a+1;end %% SENTENCIA IF%UN BLOQUE if PUEDE ESCRIBIRSE DE VARIAS MANERAS DISTINTAS. LO QUE HACE ES%EEVALUAR UNA EXPRESIÒN LÒGICA Y SI ES CIERTA EJECUTA LAS ÒRDENES QUE%ENCUENTRE ANTES DEL end% if <expresiòn>% <òrdenes evaluadas si la expresiòn es verdadera>% end% PUEDE QUE NOS INTERESE QUE EN CASO DE NO EJECITAR DICHA ORDEN EJECUTE% OTRA DISTINTA. ESTO SE LO INDICAREMOS USANDO else DENTRO DEL BLOQUE.% if<expresión>% <òrdenes evaluadas si la expresiòn es verdadera>% else% <órdenes evaluadas si la expresión es falsa>% end% % SI QUEREMOS DAR UNA ESTRUCTURA MUCHO MÁS COMPLETA, USAREMOS LA MÁS% GENERAL DONDE SÓLO SE EVALÚAN LAS ÓRDENES ASOCIADAS CON LA PRIMERA% EXPRESIÓN VERDADERA DE TODAS. EN CUANTO LA EVALÚE DEJA DE LEER EL RESTO Y% SE DIRIGE DIRECTAMENTE AL end% EJEMPLO:b=2 if b==0 %ponemos no es una asignación sino una expresió lógica disp('b vale 0') elseif b==1 disp('b vale 1') elseif b==2 disp('b vale 2') elseif b==3 disp('b vale 3') else disp('b no vale ni 0 ni 1 ni 2 ni 3') end%% SENTENCIA BREAK% SI QUEREMOS QUE EN UN MOMENTO DADO TERMINE LA EJECUCIÓN DE UN BUCLE for O% UN BUCLE while USAREMOS break %% SENTENCIA CONTINUE%LA SENTENCIA continue HACE QUE SE PASE INMEDIATAMENTE A LA SIGUIENTE%ITERACIÓN DEL BUCLE for O DEL BUCLE while SALTANDO TODAS LAS ÓRDENES QUE%HAY ENTRE EL continue Y EL FIN DEL BUCLE EN LA ITERACIÓN ACTUAL%EJEMPLO%PODEMOS MEZCLAR EN UN PROGRAMA VARIA SENTENCIAS DE ESTE ESTULO. AQUÍ%PODEMOS VER UN PROGRAMA QUE ESCRIBE POR PANTALLA LOS PRIMOS DEL 1 AL 100

89

Page 90: USO DE MATLAB (BÁSICO)

%USANDO LAS SENTENCIAS if, while y for.disp('ESTOS SON LOS NÚMEROS

PRIMOS MENORES DE 100')disp(2)for i=2:100 n=2; while n<=sqrt(i) if rem(i,n)==0 n=i; else n=n+1; end end if n~=i disp(i) endend %% 1)DEDUZCA QUE HACE CADA EJEMPLO?%EJERCICIO 26G=0count=0if G<50 %analiza si la variable G ES MENOR QUE 50 count=count+1; %empieza a contar disp(G) %vizualiza la variable Gend%este programa no tiene mucho sentido porque solo vizualiza el valor de G %EJERCICIO 27 if x>0 %analiza si la variable x ES MAYOR QUE 0 Y=log(x) %BUSCA EL VALOR DEL LOGARITO DE LA VARIA Xelse beep %sonido disp('la entrada de la función logarítmica debe ser positiva') %visualiza un mensajeend %EJERCICIO 28age=19;if age<16 %analiza si la variable age ES MENOR QUE 16 disp('lo siento. Tendrá que esperar') %visualiza un mensajeelseif age<18 %analiza si la variable age ES MENOR QUE 18 disp('puede obtener un permiso para conducir') %visualiza un mensajeelseif age<70 %analiza si la variable age ES MENOR QUE 70 disp('puede obtener una licencia estandar') %visualiza un mensajeelse disp('los conductores mayores que 70 años requieren una licencia especiañ') %visualiza un mensajeend %% 2)HALLAR BAJO SENTENCIAS DE PROGRAMACIÓN LA SOLUCIÓN DEL TRIANGULO DE PASCAL O LA DEL FACTORIALn=8;p=1;

90

Page 91: USO DE MATLAB (BÁSICO)

for i=1:n; p=p*i;

end disp(p) %resultado %% 3)HACER CORRER EJEMPLOS SOBRE: continue, break, for% EJEMPLO USO DE continue: for i=1:5 if rem(i,2)==0 %no me permite imprimir los numeros pares continue; end disp(i);end %EJEMPLO USO DE breakm=8;i=0;while i<=m disp(i); i=i+1; if i==5 break; end;end; %EJEMPLO USO forfor z=1:4 disp('z toma el valor') %escribe por pantalla el texto que se indica entre las comillas disp(z) %escribe el valor de la variable xend

91

Page 92: USO DE MATLAB (BÁSICO)

PRÁCTICA 6: POLINOMIOS ANÁLISIS NUMÉRICOS

clc%% PRACTICA 6%%TEMA: POLINOMIOS-ANÀLISIS NUMÈRICO %% ANÀLISIS DE DATOS%MATLAB EJECUTA ANÀLISIS ESTADÌSTICO SOBRE CONJUNTOS DE DATOS. ESTOS%CONJUNTOS DE DATOS SE ALMACENAN EN MATRICES ORIENTADAS POR COLUMNAS.%MATLAB INCLUYE, ENTRE OTRAS, LAS SIGUIENTES FUNCIONES ESTADÌSTICAS % FUNCIÒN ¿QUÈ HACE?% corrcoef(x) doeficienbtes de correlaciòn% cov(x) matriz de covarianza% 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 intercuartìlico de la muestra% max(x) màximo de cada columna% mean(x) media de los valores de vectores y columnas % median(x) media de los valores de vectores y columnas % min(x) mìnimo de cada columna% prod(x) producto de elementos en columnas% rand(n) nùmeros aleatorios distribuidos uniformemente % randn(x) nùmeros aleatorios distribuidos normalmente % range(x) rango de cada columna% sort(x) ordena columnas en orden ascendente% std(x) desviaciòn estanda r de la muestra % sum(x) suma de elementos en cada columna% tabulate(x) tabla de frecuencias del vector % var(x) varianza de la muestra % X=[5 7 9 2 9 ; 3 1 7 5 1 ; 1 5 5 1 8]n=2;cumprod(X) %productos acumuladoscumsum(X) %suma acumulativa de columnasmean(X) %media de cada columna median(X) %mediana de cada columnaprod(X) %producto de todos los elemento de cada columnasort(X) %ordena los valores de cada columnasum(X) %suma de todos los elementos de cada columnavar(X) %varianza de los elementos de cada columnamax(X) %valor màximo de cada columna min(X) %valor mìnimos de cada columnaiqr(X) %rango intercuàtilico de cada columna 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 generada a partir de una serie de valores

92

Page 93: USO DE MATLAB (BÁSICO)

range(X) %rango de cada columna(diferencia entre el

màximo y el mìnimo) %% POLINOMIOS%% RAÌCES%UN POLINOMIO SE REPRESENTA POR UN VECTOR FILA CON SUS COEFICIENTES EN%ORDEN DESCENDIENTE, NO DEBEMOS OLVIDAR COLOCAR LOS TÈRMINOS CON%COEFICIENTE NULO.%ASÌ POR EJEMPLO SI QUEREMOS INDICAR EL POLINOMIO 5x^4+2x^2-x+7 ESCRIBIMOS%[5 0 2 -1 7] %PARA ENCONTRAR LAS RAÌCES DE UN POLINOMIO p USAREMOS LA FUNCIÒN roots(p).%SI CONOCEMOS LAS RAICES DE UNA POLINOMIO ES POSIBLE CONSTRUIR EL POLINOMIO%ASOCIADO MEDAINTE LA FUNCIÒN poly(r).%MATLAB TRABAJA CON LOS POLINOMIOS COMO VECTORES FILA Y CON LAS RAÌCES COMO%VECTORES COLUMNAS.%EJEMPLOSp=[1 -9 13 9 -14] %representa al polinomio x^4-9x^3-9x-14roots(p) %calcula las raices poly(ans) %devuelve el polinomio generado por esas cuatro raices %% OTRAS CARACTERÌSTICAS% FUNCIÒN ¿QUÈ ES?% conv(p,q) multiplica los dos polinomios p y 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) evaluàn el polinomio p en todos los valores de la matriz A% MATLAB NO TIENE INCORPORADA UNA FUNCIÒN PARA SUMAR POLINOMIOS%EJEMPLO:p=[1 2 7]q=[1 3 6] %polinomiosc=conv(p,q) %producto de los polinomios p y qdeconv(c,q) %conciente de dividir el polinomio c entre el polinomio qpolyder(p) %derivada del polinomio ppolyder(p,q) %derivada del producto de los polinomios p y qpolyval(p,[0 1 5]) %evalùa 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 %% 3)ANÀLISIS NÙMÈRICO%% REPRESENTACIÒN GRÀFICA%EXISTE LA FUNCIÒN fplot QUE EVALÙA LA FUNCIÒN QUE SE DESEA REPRESENTAR EN%LA GRÀFICA DE SALIDA. COMO ENTRADA, NECESITA CONOCER EL NOMBRE DE LA%FUNCIÒN COMO UNA CADESNA DE CARACTERES Y EL RANGO DE REPRESENTACIÒN COMO

93

Page 94: USO DE MATLAB (BÁSICO)

%UN VECTOR DE DOS ELEMENTOS: fplot('nombre',[valor min, valor

max]).%EJEMPLOfplot('sin',[-3*pi,3*pi]) %grafica funcionestitle('FUNCIÓN SENO')xlabel('EJE x')ylabel('EJE y') %% OTRAS CARÀCTERISTICAS % FUNCIÒN ¿QUÈ HACE?% diff('f') derivada de la funciòn respecto a x% diff('f',t) derivada parcial de la funciòn respecto a t% diff('f',n) derivada n-èsima de la funcion respecto a x % feval('f',a) evalùa la funciòn en a% fminbnd('f',a,b) calcula el mìnimo de la funciòn de una variable% fzero('f',a) busca el cero de una funciòn unidimensional f màs pròsimo al punto a % quad('f',a,b) aproxima la integral definida(segùn la cuadratura de Simpson)% trapz(x,y) integral numèrica trapezoidal de la funciòn formada al% emparejar los puntos de los vectores x e y %(f funciòn, n nùmero natural, a y b valores numèricos, 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% USAR: ode15s, ode23s, ode23t u ode23tb, SIPOR EL CONTRARIO SE TRATA DE% UNA PROBELMA SIN RIGIDEZ: ode113, ode 23 y ode45. PARA SABER MÀS DE ESTAS% FUNCIONES CONSULTAR LA AYUDA DE MATLAB.%EJEMPLO:%diff('sin(7*x)') %derivada respecto a x%diff('(exp(x)*cos(3*x*y))',y) %derivada parcial respecto a ysyms xf(x)=sin(x^2);df=diff(f) syms xf(x)=sin(7*x);df=diff(f) syms xf(x)=cos(x^2)+2*x^3;df=diff(f) syms xf(x)=cos(x^2)+sin(x+7*x^2);df=diff(f) %EL COMANDO diff TIENE LA DISTINTOS PARÀMETROS POR EJEMPLOS: diff(S) o%diff(S,var).

94

Page 95: USO DE MATLAB (BÁSICO)

%S PUEDE SE UNA EXPRESIÒN SIMBÒLICA COMPLETA O EL NOMBRE DE

UNA EXPRESIÒN%SIMBÒLICA EXISTENTE.%EN EL COMANDO diss(S), si la expresiòn contiene una sola variable%simbòlica, el càlculo se llevarà a cabo con respecto a esa variable. SI LA%EXPRESIÒN MÀS DE UN VARIABLE, EL CÀLCULO SE LLEVARA A CABO CON RESPECTO A%LA VARIABLE SIMBÒLICA POR DEFECTO.%EL COMANDO diff(S,var) SE UTILIZA PARA CALCULAR LA DERIVADA DE UNA EXPRESIÒN %CON MÀS DE UNA VARIABLE SIMBÒLICA. %LAS SEGUNDA DERIVADA (Y OTRAS DE MAYOR ORDE) SE PUEDEN CALCULAR MEDIANTE%LA SINTAXIS diff(S,n) O diff(S,var,n), DONDE n ES UN NÙMERO POSITIVO.%ES POSIBLE UTILIZAR TAMBIÈN EL COMANDO diff INTRODUCIENDO LA ECUACIÒN QUE%SE VA A DERIVAR EN FORMA DE CADENA, AUNQUE SE RECUERDA, AL IGUAL QUE EN%LOS COMANDOS VISTOS ANTERIORMENTE, QUE LAS VARIABLES SIMBÒLICAS CONTENIDA%EN LA CADENA SE UTILIZAN SÒLO PARA EL CÀLCULO, Y NO PODRÀN SER UTILIZADAS%POSTERIORMENTE COMO VARIABLES SIMBOLICAS INDEPENDIENTES.%NOTE QUE, AUNQUE EL RESULTADO DE LA DERIVADA DE LA DERIVACIÒN PAREZCA SER%UN NPUMERO, ES UNA VARIABLE SIMBÒLICA . CON LA FINALIDAD DE USARLA EN UN%CÀLCULO MATLAB, NECESITARA CONVERTIRLA A UN NPÙMERO PUNTO FLOTANTE DE%PRECISIÒN DOBLE. syms x;f=sin(5*x);diff(f)g=exp(x)*cos(x);diff(g)diff(g,2)diff(diff(g)) %% INTEGRACIÒN O CÀLCULO DE PRIMITIVAS%EL CÀLCULO DE PRIMITIVAS CON Matlab ES MUY SENCILLO. L INTEGRACIÒN%SIMBÒLICA SE LLEVA UTILIZANDO EL COMANDO int, EMPLEANDO LA SINTAXIS%int(S) o int(S,var) donde:%-S puede ser una expresiòn simbòlica o el nombre de una expresiòn%simbòlica.%-EN EL COMANDO int(S), SI LA EXPRESION COONTIENE UNA PUNICA VARIABLE%SIMBÒLICA, EL CÀLCULO SE LLEVARÀ A CABO CON RESPECTO A ESA VARIABLE. SI LA%EXPRESIÒN CONTIENE MÀS DE UNA VARIABLE, LA INTEGRACIÒN SE REALIZARÀ%RESPECTO A LA VARIABL SIMBÒLICA POR DEFECTO (x):%-EN EL COMANDO int(S,var), LA INTEGRACIÒN SE REALIZARÀ CON RESPECTO A LA%VARIABLE var. ESTA SINTAXIS SE UTILIZA PARA INTEGRAR EXPRESIONES CON MÀS%DE UNA VARIABLE SIMBÒLICA.%DEL MISMO MODO QUE LA DERIVACIÒN, LA INTEGRACIÒN SE PUEDE EXTENDER A%VECTORES Y MATRICES%EJEMPLO: CALCULA S(2cos(x)-6x)dx

95

Page 96: USO DE MATLAB (BÁSICO)

syms x;S=2*cos(x)-6*x;int(S) %MATLAB NO INCLUYE LA CONSTANTE DE INTEGRACIÒN QUE SE DEBE EN CUANETA EN EL%CÀLCULO DE PRIMITIVAS.syms x;S=2*x^2*cos(x);int(S); %NOTA. SI x NO ESTÀ DEFINIDA COMO UNA VARIABLE SIMBÒLICA, UTILIZAREMOS LA%SIGUIENTE SINTAXIS:% int('S'.'x') %SIN CONTAR LAS COMILLAS%EN EL CASO DEL EJEMPLO ANTERIOR, TENDRÌAMOS LO SIGUIENTE int(2*cos(x)-6*x)int(2*cos(x)-6*x,x) %EJEMPLOsyms x;A=(x+1)/((x^2+1)*(x^2+4));int(A) int((x+1)/((x^2+1)*(x^2+4))) %% TRABAJO PRÀCTICO% 1) HACER LAS 3 INTEGRALES Y 3 DERIVADAS% INTEGRACIÒNint(exp(4*x)) %EJERCICIO 1int(x^5*log(x)) %EJERCICIO 2 int(cos(sin(x))) %EJERCICIO 3 %DERIVACIÒNdiff(exp(4*x)/4)diff((x^6*(log(x) - 1/6))/6)diff(int(cos(sin(x)), x)) % 2) PASAR PROBLEMA "MODELO MATEMÀTICO" %PROBLEMA: UN EMPRESARIO DESEA PRODUCI RECIPIENTES CILÌNDRICOS DE ALUMINIO%DE UN LITRO DE CAPACIDAD. CADA RECIPIENTE DEBE TENER UN BORDE DE 0.5 cm.%ADICIONALES PARA SELLARLO. DETERMINE LAS DIMENCIONES DEL RECIPIENBTE PARA%QUE LA CANTIDAD DE MATERIAL UTILIZADO EN LA FABRICACIÒN SE MÌNIMA

96

Page 97: USO DE MATLAB (BÁSICO)

% 3) HACER CORRER LAS FUNCIONES DE DERIVADAS

d=cos(x^2)+sin(x+7*x^2); %FUNCIÒNj=@cosdiff(d) %derivada de la funciòn respecto a xdiff(d,x) %derivada parcial de la funciòn respecto a tdiff(d,2) %derivada n-èsima de la funcion respecto a x feval(j,1) %evalùa la funciòn en afminbnd(j,1,2) %calcula el mìnimo de la funciòn de una variablefzero(j,2) %busca el cero de una funciòn unidimensional f màs pròsimo al punto a quad(j,1,2) %aproxima la integral definida(segùn la cuadratura de Simpson)x=[1 2 3];y=[4 5 6];trapz(x,y) %integral numèrica trapezoidal de la funciòn formada al% emparejar los puntos de los vectores x e y

TAREA 6clc%% TRABAJO PRÀCTICO% 1) HACER LAS 3 INTEGRALES Y 3 DERIVADAS% INTEGRACIÒNsyms xint(exp(4*x)) %EJERCICIO 1int(x^5*log(x)) %EJERCICIO 2 int(cos(sin(x))) %EJERCICIO 3 %DERIVACIÒNdiff(exp(4*x)/4) %EJERCICO 1diff((x^6*(log(x) - 1/6))/6) %EJERCICIO 2diff(int(cos(sin(x)), x)) %EJERCICIO 3 % 2) PASAR PROBLEMA "MODELO MATEMÀTICO" %PROBLEMA: UN EMPRESARIO DESEA PRODUCI RECIPIENTES CILÌNDRICOS DE ALUMINIO%DE UN LITRO DE CAPACIDAD. CADA RECIPIENTE DEBE TENER UN BORDE DE 0.5 cm.%ADICIONALES PARA SELLARLO. DETERMINE LAS DIMENCIONES DEL RECIPIENBTE PARA%QUE LA CANTIDAD DE MATERIAL UTILIZADO EN LA FABRICACIÒN SE MÌNIMA %ÀREA TOTAL s=2*pi(x+0.5)^2+(2*py+0.5)h cm^2 (1)%dato del volumen requerido: v=pi*x^2*h=1000 cm^3 (2)%DE(2) OBETENEMOS h:% h=1000/(pi*x^2)%SUSTITUIMOS EN (1)% s(x)=2*pi*(x+0.5)^2+(1000*(2*pi*x+0.5)/pi*x^2)%SE OBTIENE UNA FUNCIÒNPARA LA QUE DEBE DETERMINARSE EL VALOR DE LA%VARIABLE x QUE MINIMICE s%EL CÀLCULO DIFERENCIAL NOS PROPORCIONA UN PROCEDIMIENTO PARA OBTENER LA

97

Page 98: USO DE MATLAB (BÁSICO)

%RESPUESTA. SE DEBE RESOLVER LA ECUACIÒN s'(x)=0. ESTE ES EL

MODELO MATE%MÀTICO DEL CUAL SE OBTENDRÀ LA SOLUCIÒN %ALGORITMO% 1)DADO EL MODELO MATEMÀTICO s(x)% 2)OBTENER s'(x)% 3) resolver la ecuaciòn s'(x)=0%elejir y validar la respuesta s='2*pi*(x+0.5)^2+1000*(2*pi*x+0.5)/(pi*x^2)'ezplot(s,[0,20]), grid on%PARA OBTENER LA DERIVADA DE s(x)d=diff(s)%RESOLVER ECUACIÒN s'(x)=0%x=eval(solve(d)) % 3) HACER CORRER LAS FUNCIONES DE DERIVADASd=cos(x^2)+sin(x+7*x^2); %FUNCIÒNj=@cosdiff(d) %derivada de la funciòn respecto a xdiff(d,x) %derivada parcial de la funciòn respecto a tdiff(d,2) %derivada n-èsima de la funcion respecto a x feval(j,1) %evalùa la funciòn en afminbnd(j,1,2) %calcula el mìnimo de la funciòn de una variablefzero(j,2) %busca el cero de una funciòn unidimensional f màs pròsimo al punto a quad(j,1,2) %aproxima la integral definida(segùn la cuadratura de Simpson)x=[1 2 3];y=[4 5 6];trapz(x,y) %integral numèrica trapezoidal de la funciòn formada al% emparejar los puntos de los vectores x e y

98

Page 99: USO DE MATLAB (BÁSICO)

PRÁCTICA 7: OPTIMIZACIÓNclc %% PRÀCTICA 7%TEMA: ANÀLISIS NUMÈRICO BÀSICO%%PEQUEÑOS EJEMPLOS VARIADOS% 1)CÀLCULOS SENCILLOS 23.45+1.67*sqrt(32.74)/(1+exp(-2))% 2)CÀCULO DE ÀREA Y VOLUMEN DE LA ESFERA r=17.4; area=4*pi*r^2 volumen=4/3*pi*r^3 % 3)HACER UNA PEQUEÑA TABLA Y PLOTEAR LA CURVA x=0:6 , y=sin(pi*x/6), plot(x,y) % 4)DIBUJAR DOS PARÀBOLASfigure(1)x=-10:10; y=x.*x-100;f1=0.2*y; f2=0.5*y;plot(x,f1,x,f2), title('DOS PARÀBOLAS') % 5)ESCRIBIR VECTORES USANDO OPERACIONES ELEMENTO A ELEMENTOfigure(2)x=[0.1 0.6 log(3) sqrt(2) 3*pi/4]f=7*x.*exp(-x)g=x.^2+f./xplot(x,f,'o',x,f,x,g)resultado=[x' f' g'] %Tabula el resultado en tres columnas % 6)UNA ESPIRAL DADA EN FORMA PARAMÈTRICAt=0:0.2:30; x=t.*cos(t); z=t.*sin(t);plot(x,z); title('ESPIRAL') % 7)OTRAS FUNCIONES MATLAB ÙTILESfigure(3)y=rand(1,7),plot(1:7,y,'x') %7 valores al azar entre 0 y 1ymax=max(y) %maximo de las componentes de ys=sum(y) %Suma de componentesy=round(100*y) %ahora y es un vetor de enteros %entre 0 y 100z=sort(y) %ordena el vector en forma creciente zz=fliplr(z) %da vuelta el vector (flipud lo da %vuelta en vertical) % 8)ESTRELLA : SE PLOTEAN 100 ESTRELLAS Y 400 PUNTOS AL AZARfigure(4)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')clear %vacia todas las variables

99

Page 100: USO DE MATLAB (BÁSICO)

% 9)CIRCULO : DIBUJAR UN CIRCULO

figure(5)xc=3; yc=-3; r=6.5; %centro y radion=50; k=0:n; fi=2*pi*k/n;x=xc+r*cos(fi); y=yc+r*sin(fi);plot(xc,yc,'x',x,y);axis([-5 10 -10 6]), axis equal;grid %2 APLICACIONES ADICIONALES% 10)clear fprintf('\n1ra FORMA DE DIBUJAR UN TRIANGULO EN MATLAB POR COORDENADAS\n'); A=[1,2]; B=[3,8]; C=[7,1]; figure(6) figure(gcf); x=[A(1) B(1) C(1) A(1)]; y=[A(2) B(2) C(2) A(2)]; plot(x,y) % 11)estrella de 5 puntas:figure(7)n = 5;R = 1;tita = [0:(4*pi/n):4*pi]+pi/2; x = R*cos(tita);y = R*sin(tita);plot(x,y) %% OPTIMIZACIÒN DE MÀXIMOS Y MÌNIMOS (EXTREMOS)%% OBJETIVOS% ANALIZAR LOS EXTREMOS RELATIVOS Y ABSOLUTOS DE UNA FUNCIÒN DE DOS% VARIABLES EN UN DOMINIO CERRADO Y ACOTADO. %% COMANDO DE MATLAB%TODOS LOS COMANDOS QUE SE UTILIZAN EN ESTA PRÀCTICA SE HAN VISTO EN%PRÀCTICAS ANTERIORES% EJEMPLOS RESUELTOS:%% EJEMPLI 1 : CÀLCULO DE LOS PUN TOS CRÌTICOS% DADA LA FUNCIÒN f(x,y)=x^3+y^3-3*x-12*y+25%(a) REPRESENTAR LA FUNCIÒN%(b) CALCULAR LOS PUNTOS CRÌTICOS%(c) CALCULAR LOS EXTREMOS RELATIVOS DE f . ¿ALCANZA ESTA FUNCIÒN UN MÀXIMO % O UN MÌNIMO ABSOLUTO? %SOLUCIÒN%(a) CÒDIGO MATLAB

100

Page 101: USO DE MATLAB (BÁSICO)

[X,Y]=meshgrid(-3:0.2:3);Z=X.^3+Y.^3-3*X-12*Y+25;figure(8)

surf(X,Y,Z)figure(9)contour(X,Y,Z,25) %(b) CÒDIGO MATLABsyms x yf=x^3+y^3-3*x-12*y+25;fx=diff(f,x);fy=diff(f,y);disp('PUNTOS CRÌTICOS')[a,b]=solve(fx,fy);puntos=double([a b]) %(c) CÒDIGO MATLABfxx=diff(fx,x);fxy=diff(fx,y);fyy=diff(fy,y);H=fxx*fyy-fxy^2;valor_hessiano=subs(H,{x,y},{a,b})valor_fxx=subs(fxx,{x,y},{a,b}) %% EJEMPLI 2: % DADA LA FUNCIÒN f(x,y)=x^2*y+y^2-4xy+2*y+10 EN EL DOMINIO D DADO POR EL% TRIÀNGULO T DE VÈRTICES A(2,0),B(4,2) Y C(0,2), SE PIDE:% (a)REPRESENTAR LA SUPERFICIE EN UN RECTÀNGULO QUE CONTENGA AL TRIÀNGULO T% (b)CALCULAR LOS EXTREMOS DE f Y DETERMINAR CUÀLES 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 . ¿CUÀL ES EL VALOR MÀXIMO Y MÌNIMO QUE TOMA LA FUNCIÒN % SOBRE ESTE SEGMENTO? % (d)REPRESENTAR EN EL DOMINIO EL SEGMENTO QUE UNE LOS PUNTOS B Y C Y SU% IMAGEN POR f. ¿CUÀL ES EL VALOR MÀXIMON Y MÌNIMO QUE TOMA LA FUNCIÒN % SOBRE ESTE SEGMENTO?% (e)REPRESENTAR EN EL DOMINIO EL SEGMENTO QUE UNE LOS PUNTOS C Y A Y SU% IMAGEN POR f. ¿CUÀL ES EL VALOR MÀXIMO Y MÌNIMO QUE TOMA LA FUNCIÒN SOBRE % ESTE SEGMENTO?% (f)¿CUÀL ES EL VALOR MÀXIMO Y MÌNIMO QUE TOMA LA FUNCIÒN f SI SE% CONSIDERA COMO DOMINIO EL TRIÀNGULO T?%NOTA: ESTE EJERCICIO ES EL PROPUESTO NÙMERO 17 DE LA HOJA DE PROBLEMAS . %SOLUCIÒN% (a)CÒDIGO MATLABfigure(10)[X,Y]=meshgrid(0:.25:4,0:0.25:3);

101

Page 102: USO DE MATLAB (BÁSICO)

Z=(X.^2).*Y+Y.^2-4*X.*Y+2*Y+10;h1=surf(X,Y,Z);%DIBUJAMOS LA SUPERFICIE EN COLOR

MAGENTA, CON TRANSPARENCIA 0.5 Y COLOR DE%LA RETÌCULA EN BLANCOset(h1,'FaceColor','magenta','FaceAlpha',0.5,'EdgeColor','w')%ETIQUETAMOS LOS EJESxlabel('EJE x')ylabel('EJE y')zlabel('EJE z')title('GRÀFICA DE f(x,y)=x^2*y+y^2-4xy+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') % (b)CÒDIGO MATLABsyms x yfuncion=x^2*y+y^2-4*x*y+2*y+10;fx=diff(f,x)fy=diff(f,y)[a,b]=solve(fx,fy);Puntos=double([a b])fxx=diff(fx,x);fxy=diff(fx,y);fyy=diff(fy,y);H=fxx*fyy-fxy^2;valor_hessiano=subs(H,{x,y},{a,b})valor_fxx=subs(fxx,{x,y},{a,b}) % (c)CÒDIGO MATLAB %PARAMETRIZAMOS EL SEGMENTO que pasa por (2,0,0) y (4,2,0)t=linspace(0,1);X1=2+t*2;Y1=0+t*2;Z1=0*t;%LA DIBUJAMOS CON GROSOR 2 Y COLOR AZULZ1=(X1.^2).*Y1+Y1.^2-4*X1.*Y1+2*Y1+10;line(X1,Y1,Z1,'linewidth',2,'color','blue')%CALCULAMOS LOS EXTREMOS DE f SOBRE ESTE SEGMENTOsyms uf_sobre_AB=subs(funcion,{x,y},{2+u*2,2*u});der1=diff(f_sobre_AB);puntos=solve(der1);puntos_AB=double(puntos)valorf_puntosCriticosAB=double(subs(f_sobre_AB,u,[0 puntos(2) 1])) % (d)CÒDIGO MATLAB%PARAMETRIZAMOS EL SEGMENTO QUE PASA POR (4,2,0 ) Y (0,2,0)

102

Page 103: USO DE MATLAB (BÁSICO)

t=linspace(0,1);X1=4-t*4;Y1=2+t*0;

Z1=0*t;%LA DIBUJAMOS CON GROSOR 2 Y COLOR AZULZ1=(X1.^2).*Y1+Y1.^2-4*X1.*Y1+2*Y1+10;line(X1,Y1,Z1,'linewidth',2,'color','yellow')%CALCULAMOS LOS EXTREMOS DE fSOBRE ESTE SEGMENTOf_sobre_BC=subs(funcion,{x,y},{4-4*u,2});der1=diff(f_sobre_BC);puntos=solve(der1);puntos_BC=double(puntos)valorf_puntosCriticosBC=double(subs(f_sobre_BC,u,[0 puntos(1) 1])) % (e) CÒDIGO MATLAB%PARAMETRIZAMOS EL SEGMENTO QUE PASA POR (0,2,0) Y (2,0,0)t=linspace(0,1);X1=0+t*2;Y1=2-t*2;Z1=0*t;%LA DIBUJAMOS CON GROSOR 2 Y COLOR AZULZ1=(X1.^2).*Y1+Y1.^2-4*X1.*Y1+2*Y1+10;line(X1,Y1,Z1,'linewidth',2,'color','cyan')%CALCULAMOS LOS EXTREMOS DE fSOBRE ESTE SEGMENTOf_sobre_CA=subs(funcion,{x,y},{2*u,2-u*2});der1=diff(f_sobre_CA);puntos=solve(der1);puntos_CA=double(puntos)valorf_puntosCriticosBC=double(subs(f_sobre_BC,u,[0 puntos(2) 1])) %% 3)MÈTODOS ITERATIVOS%LOS MÈTODOS ITERATIVOS SON PROCEDIMIENTOS PARA ACERCARSE A LA RESPUESTA%MEDIANTE APROXIMACIONES SUCESIVAS. ESTOS MÈTODOS INCLUYEN FÒRMULAS QUE%TIENEN LA PROPIEDAD DE PRODUCIR UN RESULTADO MÀS CERCANO A LA RESPUESTA A%PARTIR DE UN VALOR ESTIMADO INICIAL. EL RESULTADO OBTENIDP SE PUEDE USAR%NIEVAMENTE COMO VALOR ANTERIOR PARA CONTINUAR MEJORANDO LA RESPUESTA:%SE DEBEN CONSIDERAR ALGUNOS ASPECTOS TALES COMO LA ELECCIÒN DEL VALOR%INICIAL, LA PROPIEDAD DE CONVERGENCIA DE LA FÒRMULA Y EL CRITERIO PARA%TERMINAR LAS ITERACIONBES.%ESTOS MÈTODOS SON AUTO-CORRECTIVOS. LA PRECISIÒN DE LA RESPUESTA ESTÀ DADA%POR LA DISTANCIA ENTRE EL ÙLTIMO VALOR CALCULADO Y LA RESPUESTA ESPERADA.%ESTO CONSTITUYE EL ERROR DE TRUNCAMIENTO.%EL SIGUIENTE GRÀFICO DESCRIBE ÑA ESTRUCTURA DE UN MÈTODO ITERATIVO.% VALOR ANTERIOR --> FÒRMULA ITERATIVA --> VALOR MEJORADO% ^ ^% |-----------------------------------------|% ITERACIÒN

103

Page 104: USO DE MATLAB (BÁSICO)

%CADA CICLO SE DENOMIDA ITERACIÒN. SI LA FÒRMULA CONVERGE EN CADA

%INTERACIÒN LA RESPUESTA ESTARÀ MÀS SERCA DEL RESULTADO BUSCADO. AUNQUE EN%GENERAL NO ES POSIBLE LLEGAR ALA RESPUESTA EXACTA, SE PUEDE ACERCAR A ELLA%TANTO COMO LO PERMITA LA ARITMÈTICA COMPUTACIONAL DEL DISPOSITIVO DE%CÀLCULO.%% EJEMPLO. INSTRUMENTAR UN MÈTODO ITERATIVO PARA CALCULAR LA RAÌZ CUADRADA %% r DE UN NÙMERO REAL POSITIVO n MEDIANTE OPERACIONES ARITMÈTICAS BÀSICA.%MÈTODO NUMÈRICO%SE USARÀ UNA FÒRMULA QUE RECIBE UN VALOR ESTIMADO PARA LA RAÌZ CUADRADA Y%PRODUCE UN VALOR MÀS CERCANO A LA RESPUESTA. SI SE USA REPETIDAMENTE LA%FÒRMULA CADA RESULTADO TENDRÀ A UN VALOR FINAL QUE SUPONEMOS ES LA%RESPUEST BUSCADA. LA OBTENCIÒN DE ESTAS FÒRMULAS SE REALIZARÀ%POSTERIORMENTE.%SEA x:VALOR ESTIMADO PARA LA RAÌZ r% fòrmula iterativa: y=1/2*(x+n/x)%ALGORITMO% 1)DADOS n Y LA PRECISIÒN REQUERIDA E% 2)ELEGIR EL VALOR INICIAL 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 ÙLTIMO VALOR x SERÀ UN VALOR APROXIMADO PARA LA RAÌZ r CON% PRECISIÒN E%%% EJEMPLO: CALCULAR r=sqrt(7) CON LA FÒRMULA ITERATIVA INICIAL%USAR x=3 COMO VALOR INICIAL%CÀLCULOS EN MATLABformat longn=7;x=3;y=0.5*(x+n/x)x=y;y=0.5*(x+n/x)x=y;y=0.5*(x+n/x)x=y;y=0.5*(x+n/x)

TAREA 7clc%% 1) HACER EJERCICIOS 10 Y11% 10)clear subplot(1,5,1)

104

Page 105: USO DE MATLAB (BÁSICO)

fprintf('\n1ra FORMA DE DIBUJAR UN TRIANGULO EN MATLAB POR COORDENADAS\n'); A=[1,2]; B=[3,8]; C=[7,1]; x=[A(1) B(1) C(1) A(1)]; y=[A(2) B(2) C(2) A(2)]; plot(x,y) % 11)estrella de 5 puntas: subplot(1,5,2)n = 5;R = 1;tita = [0:(4*pi/n):4*pi]+pi/2; x = R*cos(tita);y = R*sin(tita);plot(x,y) %% 2)EXTRAEMOS CON UNA SOLA VARIABLE%% CÀLCULO DE LOS PUNTOS CRÌTICOS%SOLUCIÒN%(a) CÒDIGO MATLAB[X]=meshgrid(-3:0.2:3);Z=X.^3-3*X+25;subplot(1,5,3)surf(X,Z) subplot(1,5,4)contour(Z,12)%(b) CÒDIGO MATLABsyms x f=x^3-3*x+25;fx=diff(f,x);disp('PUNTOS CRÌTICOS')[a]=solve(fx); %(c) CÒDIGO MATLABfxx=diff(fx,x);H=fxx;valor_hessiano=subs(H,{x},{a})valor_fxx=subs(fxx,{x},{a}) %% 3)%MÈTODO DE LA BISECCIÒN%Metodo de Biseccion - Metodos Numericos Matlabdisp('MÈTODO DE LA BISECCIÒN')

105

Page 106: USO DE MATLAB (BÁSICO)

Fx=input('Ingrese la funcion: ','s');a=input('Ingrese a : ');

c=input('Ingrese c : ');e=input('Ingrese el error : '); x=a;Fa=eval(Fx);x=c;Fc=eval(Fx);fprintf('\n %6s %7s %8s %10s %8s %8s %8s \n ','A','B','C','F(a)','F(b)','F(c)','|c-a|');while abs(c-a)>e b=(a+c)/2; x=b; Fb=eval(Fx); fprintf('\n %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f \n',a,b,c,Fa,Fb,Fc,abs(c-a)); if Fa*Fb<=0 c=b; Fc=Fb; else a=b; Fa=Fb; end end subplot(1,5,5)fprintf('\nEl resultado sera %.4f\n',b);ezplot(Fx);%graficamos la funciongrid on;

106