07 Programacion Matlab
07 Programacion Matlab
PROGRAMACION CON MatLab Un programa en MatLab, es una secuencia de instrucciones lgicamente ordenadas, que le indica al programa en forma detallada lo que debe hacer. En un programa por lo general hay que tomar algunas decisiones, que la asume el computador, para ello hay que darle la orden adecuada. As vamos a tener diferentes tipos de instrucciones: Operadores relacionales Operadores lgicos Sentencias condicionales Sentencias de iteracin Ficheros de funcin Programa principal Subprogramas OPERADORES RELACIONALES Operador Descripcin relacional: Menor que <
Tecla rpida Alt 60 Alt 62 Alt 60, alt 61 Alt 62, alt 61 Alt 61, alt 61 Alt 126, alt 61
Mayor que Menor o igual que Mayor o igual que Igual a Diferente de
Notas: 01) El signo =, solo asigna un valor, pero no compara. 02) El resultado de la comparacin ser 1, cuando sea verdadero, y 0 cuando sea falso. >> (4>9)+(6==8-2)+(8+5~=13)+(6<=16) ans = 2 >> (4>9)+(6==8-2)+(8+5~=14)+(6<=16) ans = 3 >> >> (4>9)+(6==8-2)+(8+5~=13)+(6<=16) ans = 2 >> [1 5 8 9 80]>[2 6 7 28 6] ans = 0 0 1 0 1 >> A=[1 2 4;5 6 7;9 8 4] A= 1 2 4 5 6 7 9 8 4 >> A>=2 ans = 0 1 1 1 1 1 1 1 1 >> B=A>=5 B= 0 0 0 1 1 1 1 1 0 >> C=[11 12 44;51 61 71;93 86 44] C = 11 12 44 51 61 71 93 86 44 >> D=C+5 D = 16 17 49 56 66 76 98 91 49
>> C=[21 -12 44;55 71 71;83 96 54] C = 21 -12 44 55 71 71 83 96 54 >> B==C, D~=B ans = 0 0 0 0 0 0 0 0 0 ans = 1 1 1 1 1 1 1 1 1 >> X=B==C, Y=D~=B, Z=C<=D X= 0 0 0 0 0 0 0 0 0 Y= 1 1 1 1 1 1 1 1 1 Z= 0 1 1 1 0 1 1 0 0 OPERADORES LGICOS Operador Nombre Descripcin Lgico La conjuncin & y
| ~
o no
Alt 126
>> 4|-8, 6&0, ~7 ans = 1 ans = 0 ans = 0 >> (4|-8)+(6&0)+(~7) ans = 1 >> (4>8)|(5==-8)+(6<7)&(7>=0)+(~7) ans = 1 >> ((4>8)|(5==-8))+((6<7)&(7>=0))+(~7) ans = 1 >> ((4>8)|(5==-8))+((6<7)&(7>=0))+(~(5>-7)) ans = 1 >> ((4>8)|(5==-8))+((6<7)&(7>=0))+(~(5>7)) ans = 2 >> FUNCIONES LGICAS PREDEFINIDAS Funcin Lgica Equivalencia Descripcin La conjuncin and(a,b) a b
a b
~a
La disyuncin exclusiva Cuantificador "A universal Cuantificador $A particular Busca los elementos no nulos Busca los elementos mayores que
aVb
el valor d Ejemplo de aplicacin: El vector: T = [25 38 30 33 34 35 36 38 39 39 40 39 37 35 35 35 34 33 32 32 31 30 28 24] Representa la temperatura en grados centgrados, por horas del dia 12 de Enero. a) Indicar cuantas veces la temperatura fue mayor de 30 grados. b) El numero de horas que la temperatura estuvo entre 25 y 35 grados. c) El numero de horas que la temperatura no estuvo entre 20 y 30 grados. Solucin a) Indicar cuantas veces la temperatura fue mayor de 30 grados. >> T = [25 38 30 33 34 35 36 38 39 39 40 39 37 35 35 T = Columns 1 through 14 25 38 30 33 34 35 36 38 39 39 40 39 Columns 15 through 24 35 35 34 33 32 32 31 30 28 24 >> T>30 ans = Columns 1 through 14 0 1 0 1 1 1 1 1 1 1 1 1 1 Columns 15 through 24 1 1 1 1 1 1 1 0 0 0 >> sum(T>30) ans = 19 >> find(T>30) ans = Columns 1 through 14 2 4 5 6 7 8 9 10 11 12 13 14 Columns 15 through 19 17 18 19 20 21 >> Rpta: 30 veces, en las horas: 2 4 5 6 7 8 18 19 20 21 35 34 33 32 32 31 30 28 24] 37 35
15
16
10
11
12
13
14
15
16 17
b) El nmero de horas que la temperatura estuvo entre 25 y 35 grados. >> T>25 & T<35 ans = Columns 1 through 14 0 0 1 1 1 0 0 0 0 0 0 Columns 15 through 24 0 0 1 1 1 1 1 1 1 0 >> sum(T>25 & T<35) ans = 10 >> find(T>25 & T<35) ans = 3 4 5 17 18 19 20 21 22 >> Rpta: 10 veces, en las horas 3 4 5 17
23
18
19
20
21
22
23
c) El nmero de horas que la temperatura no estuvo entre 20 y 30 grados. >> not(T>20 & T<30) ans = Columns 1 through 14 0 1 1 1 1 1 1 Columns 15 through 24 1 1 1 1 1 1 1 >> find(not(T>20 & T<30)) ans = Columns 1 through 14 2 3 4 5 6 7 8 Columns 15 through 21
1 1
1 0
1 0
10
11
12
13
14
15
16 17 18 19 20 21 >> sum(not(T>20 & T<30)) ans = 21 >> Rpta: 21 veces en las horas: 17 18 19 20 21 22 2
22
10
11
12
13
14
15
16
PROGRAMACION EN MatLab Para la estructura de programacin en MATLAB se requiere conocer por lo menos los siguientes comandos: END : Determina hasta cual orden llega el efecto de if, for, y while. (Para ejemplos de su uso ver if, while y for) IF: Verifica si se cumple cierta condicin, y de acuerdo a si se cumple o no realiza la accin que se desee. WHILE: Realiza una parte del programa mientras se cumpla alguna condicin. FOR: Muy parecido al While, pero utiliza un contador, es til si se quiere repetir una parte del programa un nmero determinado de veces. CLEAR: Borra todas las variables de la memoria. Es recomendable usarlo al principio de todos los programas. (simplemente escriba clear; al comienzo del programa) PLOT: Sirve para obtener resultados grficos en 2D. DISP: Sirve para escribir texto de salida o vectores. de resultados. INPUT: Se utiliza para que el programa pida valores de variables mientras se ejecuta.
SENTENCIAS CONDICIONALES
Sentencia Condicional: if end Aqu se ejecuta un solo conjunto de instrucciones
Esquema logico Diagrama de flujo Estructura lgica
......
Falso Sentencia if Verdadero Instrucciones
Pr ograma
End
Ejemplo: Un trabajador tiene una remuneracin bsica como vendedor de 1 200 nuevos soles, pero si las ventas en el mes son mayores a 50 000, tiene una bonificacin adicional del 1% sobre la diferencia. Indicar el salario para diferentes casos de ventas. sueldo.m % programa que calcula el sueldo de una persona % en base al monto de las ventas % Si las ventas son menor o igual que un monto M, el sueldo es S % si la ventas superan M, el sueldo es S mas % la diferencia de las ventas con M V=input('indique las ventas efectuadas en el mes\n'); M=input('indique el monto base de las ventas\n'); S=input('indique el salario base\n'); if (V>M) S=S+0.01*(V-M); end fprintf('El sueldo de cada trabajador es de: %6.2f nuevos soles\n',S);
Ejecucin en MatLab
>> sueldo indique las ventas efectuadas en el mes 30000 indique el monto base de las ventas 25000 indique el salario base 1200 El sueldo de cada trabajador es de: 1250.00 nuevos soles >> sueldo indique las ventas efectuadas en el mes 50000 indique el monto base de las ventas 60000 indique el salario base 1200 El sueldo de cada trabajador es de: 1200.00 nuevos soles >>
......
Falso
Pr ograma
Sentencia if Verdadero
Grupo 1 de Instrucciones
Grupo 2 de Instrucciones
End
en MatLab Si exp. condicional .... Instrucciones .... 01 MatLab Else .... Instrucciones .... 02 MatLab End Pr ograma ...... en MatLab
Ejemplo: Se necesita calculare el volumen de agua en un tanque, con la forma que se indica en el grafico
Un trabajador tiene una remuneracin bsica como vendedor de 1 200 nuevos soles, pero si las ventas en el mes son mayores a 50 000, tiene una bonificacin adicional del 1% sobre la diferencia. Indicar el salario para diferentes casos de ventas.
Diametro 44 m 16 m
rh
29 m
Diametro 20 m
SOLUCION: El volumen es igual
0 h 29 29 < h 45
volumen.m % programa que calcula el volumen de agua % de un deposito cilndrico-conico % la entrada es el nivel del agua en m. % La salida es el volumen de agua en m3. h=input('indique el nivel del agua del tanque\n'); if (h<=29) V=100*pi*h; else V=((4/3)*(((3*h/4)-47)^3))-(4000*pi/3); end fprintf('El volumen de es: %6.2f metros cubicos\n',V);
Ejecucin en MatLab
>> volumen indique el nivel del agua del tanque 20 El volumen de es: 6283.19 metros cubicos >> volumen indique el nivel del agua del tanque 25 El volumen de es: 7853.98 metros cubicos >> Ejemplo: Hallando el valor absoluto de un numero.
x 0 x x= - x x< 0
volumen.m function y=valorabs(x) % esta fumncion calcula el valor absoluto % de un numero real x % donde el resultado es x, si es no negativo % y es -x si es negativo if (x>=0) y=x; else y=-x; end
Ejecucin en MatLab
>> valorabs(88) ans = 88 >> valorabs(-45) ans = 45 >> valorabs(0) ans = 0 >>
Falso
Sentencia if Verdadero
Falso
Grupo 1 de Instrucciones
Grupo 3 de Instrucciones
Estructura lgica
......Pr ograma en MatLab if exp. condicional ...... Instrucciones ...... 01 MatLab elseif exp. condicional ...... Instrucciones ...... 02 MatLab
else
Sentencia:
switch-case
Es otra estructura para el control de flujo de un programa. Esta sentencia proporciona un mecanismo para escoger y ejecutar un grupo de instrucciones de entre varios grupos posibles. Estructura lgica
......Pr ograma en MatLab switch exp resion case valor 1 ...... Grupo 1 de instrucciones ...... case valor 2 ...... Grupo 2 de instrucciones ...... case valor 3 ...... Grupo 3 de instrucciones ...... otherwise ...... Grupo 4 de instrucciones ......
Vi=Vent/10; case 'mm' Vi=Vent/1000; case 'dam' Vi=Vent*10; case 'hm' Vi=Vent*100; case 'km' Vi=Vent*1000; otherwise error=1; end switch UnitSal case 'm' Vf=Vi; case 'cm' Vf=100*Vi; case 'dm' Vf=10*Vi; case 'mm' Vf=1000*Vi; case 'dam' Vf=Vi/10; case 'hm' Vf=Vi/100; case 'km' Vf=Vi/1000; otherwise error=1; end if error==1 disp('Horror, La unidad de entrada o la de conversion se ha tecleado en forma incorrecta\n') else fprintf('V=%g%s\n',Vf,UnitSal) end
Ejecucin en MatLab
>> cambiounidad Introduzca el valor de la distancia que hay que convertir: 3777 Introduzca la unidad actual de la distancia (m, cm, dm, mm, dam, hm, km): dm Introduzca la nueva unidad para la distancia (m, cm, dm, mm, dam, hm, km): km V=0.3777km >> cambiounidad Introduzca el valor de la distancia que hay que convertir: 6799 Introduzca la unidad actual de la distancia (m, cm, dm, mm, dam, hm, km): ham Introduzca la nueva unidad para la distancia (m, cm, dm, mm, dam, hm, km): m Horror, La unidad de entrada o la de conversion se ha tecleado en forma incorrecta\n >> cambiounidad Introduzca el valor de la distancia que hay que convertir: 98888888 Introduzca la unidad actual de la distancia (m, cm, dm, mm, dam, hm, km): mm Introduzca la nueva unidad para la distancia (m, cm, dm, mm, dam, hm, km): km V=98.8889km >>
BUCLES
Los bucles o iteraciones se usan para controlar el flujo de un programa. En un bucle, la ejecucin de uno o varios comandos se repite varias veces consecutivamente. Cada una de estas repeticiones se denomina paso o iteracin. En MatLab tenemos definido dos tipos de bucle: - for-end: el numero de iteraciones se define al comienzo del bucle. - while-end: El numero de iteraciones no se conoce al inicio del bucle, depende de que se cumpla o no alguna condicin. En ambos casos se puede salir de estos bucles, antes de que acaben con el comando breack.
Ejemplo: Sumar los 50 primeros nmeros enteros positivos mltiplos de 7. Solucin: SOLUCION: sumnat.m function s=sumnat(n) % esta funcin suma de % los n primeros nmeros naturales % el resultado es la suma de tales nmeros s=0; for k=1:1:n s=s+k end
Ejecucin en MatLab
>> sumnat(3) ans = 6 >> sumnat(0) ans = 0 >> sumnat(-6) ans = 0 >> sumnat(6) ans = 21 >> sumnat(16) ans = 136 >> Ejemplo: Calcular la suma de trminos de la siguiente serie:
(- 1) k
2k
k= 1
SOLUCION: sumserie.m % este programa calcula la suma de terminos % de la serie: % Sum(k=1:n)((-1)^k)*k/(2^k)) % a funcion suma % los n primeros numeros naturales % el resultado es la suma de tales numeros
10
n=input('ingrese el numero de terminos de la serie: \n'); s=0; for k=1:1:n s=s+((-1)^k)*k)/(2^k); end fprintf('la suma de los terminos de la serie es: %5.4f \n',s)
Ejecucin en MatLab
>> sumserie ingrese el numero de terminos de la serie: 5 la suma de los terminos de la serie es: -0.2813 >> sumserie ingrese el numero de terminos de la serie: 99 la suma de los terminos de la serie es: -0.2222 >> sumserie ingrese el numero de terminos de la serie: 5 la suma de los terminos de la serie es: 1.7813 >> Ejemplo: La funcin seno se puede aproximar usando la serie de Taylor. Como sigue:
Ejecucin en MatLab
>> senserie ingrese el valor del ngulo en grados sexagesimales: 190 ingrese el numero de trminos a considerar: 3 El seno aproximado es: 0.5801 >> senserie ingrese el valor del ngulo en grados sexagesimales: 150 ingrese el numero de trminos a considerar: 7 El seno aproximado es: 0.5000 >> Puede comprobar para x = 1, en sexagesimales seria 180/pi.
11
El programa multiplica por tres los elementos del vector que sean positivos, y mltiplos de 3 5; y eleva al cuadrado los negativos mayores que -10. SOLUCION: ANALISIS LOGICO Diagrama de flujo
Falso
x(n)>0&(rem(x(n),3)==0 | rem(x(n),8)==0)
Falso
x(n)<0 & x(n)>-10
Verdadero
x(n) = 3*x(n)
Verdadero
x(n)= (x(n))^2
end
cambiavector.m
% Este programa cambia los elementos de un vector. % multiplica por tres los elementos positivos, y mltiplos de 3 5 % eleva al cuadrado los negativos mayores que -10. x=input('Ingrese un vector con elementos enteros: \n'); n=length(x); for k=1:1:n if x(k)>0 & ( rem(x(k),3)==0 | rem(x(k),8)==0 ) x(k)=3*x(k); elseif x(k)<0 & x(k)>-10 x(k)=x(k)^2; end end x
Ejecucin en MatLab >> cambiavector Ingrese un vector con elementos enteros: [1 5 9 0 -5 -30 64] x = 1 5 27 0 25 -30 192 >> cambiavector Ingrese un vector con elementos enteros: [1 5 7 16 15 -20 -7 9 0 -5 -30 64] x = 1 5 7 48 45 -20 49 27 -30 192 >>
25
12
Bucles del tipo while - end Este tipo de bucle se usa cuando hy necesidad de iun proceso iterativo, pero se desconoce cuantos pasos deben hacerse, generalmente est sujeto a condiciones que se hallan al ejecutar la solucin del `problema. A veces aqu es necesario del uso de algn comando que pare el programa en caso de que no se halle la condicin pedida.
Estructura lgica
end
Recomendaciones La expresin condicional del comando while debe incluir al menos una variable Respecto a esta variable debe tener un valor asignado cuando se ejecute el comando while por primera vez La o las varibles de la expresin condicional deben cambiar entre la sentencia while y end, de otro modo se tendra un bicle infinito Para evitar un bucle infinito se puede usar el comando break Un bucle infinito tambin se puede terminar con Ctrl + C 0 Ctrl + break Ejemplo: A una variable x se le incrementa su valor inicial en 7, mientras que esta sea menor de 200. SOLUCION: incrementador.m % Este programa incrementa un numero inicial en 7, % mientras este sea menor que 200 x=input('Ingrese un numero: \n'); n=0; while x<200; x=x+7; n=n+1; end fprintf('El nuevo valor es: %-3.2i \n',x) fprintf('Se ha incrementado %-3i veces el siete\n',n)
Ejecucin en MatLab
>> incrementador Ingrese un numero: 45 El nuevo valor es: 206 Se ha incrementado 23 veces el siete >> incrementador Ingrese un numero: 234 El nuevo valor es: 234 Se ha incrementado 0 veces el siete >> incrementador Ingrese un numero: 200 El nuevo valor es: 200 Se ha incrementado 0 veces el siete >> incrementador Ingrese un numero: -200 El nuevo valor es: 206 Se ha incrementado 58 veces el siete
13
>> incrementador Ingrese un numero: -20 El nuevo valor es: 204 Se ha incrementado 32 veces el siete >> Ejemplo: Elaborar un programa que divida en tres partes un intervalo, y tome la parte intermedia hasta que la longitud sea menor que 0.001 SOLUCION: trisecaintervalo.m % Este programa divide en tres partes un intervalo % y toma la parte intermedia % hasta que la longitud sea menor que 0.001 a=input('Ingrese el lado izquierdo del intervalo: \n'); b=input('Ingrese el lado derecho del intervalo: \n'); if b-a > 0.001 while b-a>0.001; a=(b+2*a)/3; b=(a+b)/2; end fprintf('El lado izquierdo del nuevo intervalo es: %-3.5f \n',a) fprintf('El lado derecho del nuevo intervalo es: %-3.5f\n',b) else fprintf('Los datos no generan un intervalo valido. &$#### \n') end
Ejecucin en MatLab
>> trisecaintervalo Ingrese el lado izquierdo del intervalo: 1 Ingrese el lado derecho del intervalo: 4 El lado izquierdo del nuevo intervalo es: 2.49977 El lado derecho del nuevo intervalo es: 2.50023 >> trisecaintervalo Ingrese el lado izquierdo del intervalo: 5 Ingrese el lado derecho del intervalo: 2 Los datos no generan un intervalo valido. &$#### >> Ejemplo: La funcin exponencial al ser expresada como una serie de Taylor, queda como sigue:
xn x 2 x3 x 4 x5 = 1 + x + + + + +L 2! 3! 4! 5! n= 0 n ! x Escribir un programa que calcule e usando la serie de Taylor, con los sumandos necesarios hasta ex =
que el ultimo sumando sea menor que 0.000001. Adems la suma no debe pasar de 30 trminos, si fuese el caso hay que indicar que se necesitan ms sumandos. Hallar con este programa: e , e SOLUCION: seriexp.m
% % % %
2 - 4
, e
10
y e
20
Este programa calcula el valor de e^x usando las erie de Taylor hasta que el ultimo termino sea menor que 0.00000l, o haya 30 terminos como maximo
14
07. PROGRAMACION CON MATLAB Lic. Amado Malca Villalobos s=s+(x^n)/factorial(n); n=n+1; sn=abs((x^n)/factorial(n)); end if n>=30 fprintf('Se necesitan mas de 30 terminos \n') else fprintf('El valor de exp(%f) es %-3.5f\n',x,s) end
Ejecucin en MatLab
>> seriexp Ingrese el valor de x: 2 El valor de exp(2.000000) es 7.38906 >> seriexp Ingrese el valor de x: 21 Se necesitan mas de 30 terminos >> seriexp Ingrese el valor de x: 0 El valor de exp(0.000000) es 1.00000 >> seriexp Ingrese el valor de x: 8 Se necesitan mas de 30 terminos >> seriexp Ingrese el valor de x: 5 El valor de exp(5.000000) es 148.41316 >> Ejemplo: Crear una matriz de orden m por n, donde el elemento i j este dado por la expresin:
ai j = 3i - 4 j
SOLUCION: creamatriz.m % Creacion de una matriz de orden mxn % Donde el elemento i j esta dado por % a(i,j)=3i-4j m=input('ingrese el numero de filas de la matriz '); n=input('ingrese el numero de columnas de la matriz '); A=zeros(m,n); for k=1:1:m for l=1:1:n A(k,l)=3*k-4*l; end end A
Ejecucin en MatLab
>> creamatriz ingrese el numero de filas de la matriz 4 ingrese el numero de columnas de la matriz 5 A= -1 -5 -9 -13 -17 2 -2 -6 -10 -14 5 1 -3 -7 -11 8 4 0 -4 -8 >> creamatriz ingrese el numero de filas de la matriz 5 ingrese el numero de columnas de la matriz 8 A= -1 -5 -9 -13 -17 -21 -25 -29 2 -2 -6 -10 -14 -18 -22 -26 5 1 -3 -7 -11 -15 -19 -23 8 4 0 -4 -8 -12 -16 -20 11 7 3 -1 -5 -9 -13 -17
15
>> creamatriz ingrese el numero de filas de la matriz 0 ingrese el numero de columnas de la matriz 0 A = [] >> Ejemplo: Construya el triangulo de Pascal como una matriz de orden n por n. Donde el elemento a(1,j)=a(i,1)=1; a(i,j)= a(i,j-1)+a(i-1,j) para todo i>1, j>1. Solucin: SOLUCION: matrizpascal.m % Programa que construya el triangulo de Pascal % como una matriz de orden n por n. % Donde el elemento a(1,j)=a(i,1)=1 % a(i,j)= a(i,j-1)+a(i-1,j) % para todo i>1, j>1. n=input('ingrese el orden de la matriz '); A=ones(n,n); for k=2:1:n for l=2:1:n A(k,l)=A(k,l-1)+A(k-1,l); end end A
Ejecucin en MatLab
>> matrizpascal ingrese el orden de la matriz 5 A= 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 70 >> matrizpascal ingrese el orden de la matriz 6 A= 1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 21 1 4 10 20 35 56 1 5 15 35 70 126 1 6 21 56 126 252 >> Los Comandos break y continue El comando break se usa principalmente para terminar un posible bucle infinito; si esta dentro de un bucle, pero si esta en un programa normal, termina el programa. El comando continue lo que hace es terminar la iteracin de un bucle y pasar a la siguiente iteracin. EJEMPLOS ADICIONALES Ejemplo01. Usando el bucle for - end, hallar la raz cuadrada de los primeros 20 nmeros, y presentarlos en una tabla de 20 por 2. % Calculo de la raiz cuadrada de los n primeros enteros positivos % usando el comando for-end n=input('ingrese la cantidad de terminos: '); u=[1:n]';
16
v=ones(n,1); for k=1:1:n; v(k)=sqrt(u(k)); end %R=[u v]; %disp(R) disp('') disp('numero raiz cuadrada') for k=1:n; fprintf('%5.0i %5.4f\n',u(k),v(k)) end Ejemplo02: Hallar el factorial de un nmero entero no negativo % Calculo de el factorial de un numero entero no negativo n=input('El valor de n, es: ') p=1; if n<0 disp('Error, ingreso un valor inadecuado ') break elseif n==0 fact=p; else for k=1:n p=p*k; end fact=p; end fprintf('El factorial de %5i es %5i\n',n,fact)
17
if abs(d)>tol sol=[] disp('El numero de iteraciones no es suficiente o el proceso diverge') else sol=x' disp('El numero de iteraciones es:') k end
x1 xk + 1 = g ( xk ), k = 1, 2,3,L x0 = 2
Segn ello resolver:
- 4 + 4x -
1 2 x = x 2
% % % % % % %
Solucion de una ecuacion por el metodo del Punto Fijo Calculo de los terminos de la sucesion de Fibonacci: con la funcion recursiva: F(1)=1 F(2)=1 F(n+2)=F(n+1)+F(n), para todo n entero positivo
x1=input('Ingrese la aproximacion inicial: '); tol=input('Ingrese la tolerancia de error: '); miter=input('Ingrese el numero maximo de iteraciones: x(1)=x1; k=1; d=1; while d>=tol & k<miter x(k+1)=-exp(x(k)); d=abs(x(k+1)-x(k)); k=k+1; end disp(x') fprintf('El numero de iteraciones es: %5.0f',k)
');
Ejemplo05: Elabore un programa que pida la edad de una persona, y visualice lo siguiente Si 0 edad < 6 , mostrar: infante
6 edad < 12 , mostrar: nio 12 edad < 18 , mostrar: adolescente Si 18 edad < 25 , mostrar: joven Si 25 edad < 60 , mostrar: adulto Si 60 edad , mostrar: anciano
Si Si %Etapas de un ser humano %Uso del comando menu Edad=menu('Indique su edad:','0<=E<6','6<=E<12','12<=E<18','18<=E<25','25<=E<60','60<=E' );
18
switch Edad case 1 disp('Infante') case 2 disp('Nio') case 3 disp('Adolescente') case 4 disp('Joven') case 5 disp('Adulto') case 6 disp('Anciano') end Ejemplo06: Elabore un programa que pida la edad de una persona, y visualice lo siguiente Si 0 edad < 6 , mostrar: infante
6 edad < 12 , mostrar: nio 12 edad < 18 , mostrar: adolescente Si 18 edad < 25 , mostrar: joven Si 25 edad < 60 , mostrar: adulto Si 60 edad ,
Si Si Ejemplo07: Crear una matriz de orden m por n, donde el elemento i j este dado por la expresin:
ai j = 3i - 4 j
% Creacin de una matriz de orden mxn % Donde el elemento i j esta dado por % a(i,j)=3i-4j clear m=input('ingrese el numero de filas de la matriz '); n=input('ingrese el numero de columnas de la matriz '); MZ=zeros(m,n); for k=1:1:m for t=1:1:n MZ(k,t)=3*k-4*t; end end MZ Ejemplo08: Construya el triangulo de Pascal como una matriz de orden n por n. Donde el elemento a(1,j)=a(i,1)=1; a(i,j)= a(i,j-1)+a(i-1,j) para todo i>1, j>1. % % % % % Programa que construya el triangulo de Pascal como una matriz de orden n por n. Donde el elemento a(1,j)=a(i,1)=1 a(i,j)= a(i,j-1)+a(i-1,j) para todo i>1, j>1. ');
n=input('ingrese el orden de la matriz A=ones(n,n); for k=2:1:n for l=2:1:n A(k,l)=A(k,l-1)+A(k-1,l); end end A
19
% % % % % % %
Suceion de Fibonacci Calculo de los terminos de la sucesion de Fibonacci: con la funcion recursiva: F(1)=1 F(2)=1 F(n+2)=F(n+1)+F(n), para todo n entero positivo ');
n=input('Ingrese la cantidad de terminos a mostrar: F=zeros(n,1); F(1)=1; F(2)=1; if n==1 | n==2 disp(F) elseif n>2 for k=1:n-2 F(k+2)=F(k+1)+F(k); end disp(F) else disp('El valor de n, no es el adecuado') end
Ejemplo10: En los meses de Enero a Diciembre del 2012, se registro un promedio de lluvia mensual : 286 253 254 305 274 203 165 190 161 228 224 280 Hallar el valor promedio en el ao El numero de meses en que la temperatura estuvo debajo de la media, y en qu meses se dio.
clear lluvia=[286 253 228 224 280]; 254 305 274 203 165 190 161
20