0% encontró este documento útil (1 voto)
491 vistas31 páginas

Ejercicios Básicos en MATLAB Métodos Numéricos

El documento presenta un resumen sobre MATLAB y teoría de errores. MATLAB es un sistema de cómputo numérico que ofrece un entorno de desarrollo integrado con su propio lenguaje de programación. La teoría de errores establece que todas las mediciones experimentales están afectadas por imprecisiones inherentes al proceso de medición y que todas las magnitudes tienen un error.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (1 voto)
491 vistas31 páginas

Ejercicios Básicos en MATLAB Métodos Numéricos

El documento presenta un resumen sobre MATLAB y teoría de errores. MATLAB es un sistema de cómputo numérico que ofrece un entorno de desarrollo integrado con su propio lenguaje de programación. La teoría de errores establece que todas las mediciones experimentales están afectadas por imprecisiones inherentes al proceso de medición y que todas las magnitudes tienen un error.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 31

Universidad de las Fuerzas Armadas

"ESPE"
Departamento de Eléctrica y Electrónica

Métodos Numéricos

4248

Ing. Pugarin Díaz Manuel

Programación Matlab y Teoría del error

Gutiérrez Garcia Jecsan

30 de mayo de 2021

1
Resumen
MATLAB (MATrix LABoratoy) es un sistema de cómputo númeri-
co que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje
de programación propio (lenguaje M).

Entre sus prestaciones básicas se hallan la manipulación de matri-


ces, la representación de datos y funciones, la implemetación de algo-
ritmos, la creación de interfaces de usuario (GUI), etc.

Teoría de Errores Todas las medidas experimentales viene afectadas


de una impresición inherente al proceso de medida. Todas las magni-
tudes tienen un error y la teoría de errores proporciona cotas a estos
errores existiendo dos tipos de errores, sistemáticos y accidentales.

Índice

1. Ejercicios 3
1.1. Ejercicio 1: Secuencia Palíndromica . . . . . . . . . . . . . . . 3
1.2. Ejercicio 2: Cambio de posición de caracteres . . . . . . . . . . 4
1.3. Ejercicio 3: Suma las y columnas de una matriz nxm . . . . . 5
1.4. Ejercicio 4: Vericar elemento de la diagonal principal de una
matriz nxn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5. Ejercicio 5: Intercambio de 2 las de una matriz nxn . . . . . 9
1.6. Ejercicio 6: Intercambio de 2 columnas de una matriz nxn . . 10
1.7. Ejercicio 7: Intercambio de diagonales de una matriz nxn . . . 11
1.8. Ejercicio 8: Suma de elementos impares en las columnas de
una matriz nxm . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.9. Ejercicio 9: Conversión de temperatura . . . . . . . . . . . . . 15
1.10. Ejercicio 10: Matriz nxn con elementos impares . . . . . . . . 17
1.11. Ejercicio 11: Enésimo término de una serie . . . . . . . . . . . 18
1.12. Ejercicio 12: Cálculo de una sumatoria . . . . . . . . . . . . . 19
1.13. Ejercicio 13: Gracar función paramétrica . . . . . . . . . . . 20
1.14. Ejercicio 14: Error relativo y error absoluto . . . . . . . . . . . 24
1.15. Ejercicio 15: Cálculo aproximado con serie de Taylor . . . . . 26
1.16. Ejercicio 16: Orden de aproximación de una función . . . . . . 29

2
1. Ejercicios

1.1. Ejercicio 1: Secuencia Palíndromica


Una secuencia es palindrómica si al leerla de principio a n es equivalente
a leerla de nal a principio.
Realizar un programa que permita decidir si una cadena c es una secuencia
palindrómica.
Código de Matlab:
1 clc ;
2 c2 = 1; c = true ;
3
4 while true
5 num = input ( ' Ingrese Número >0 / ( -1 para salir ) : ') ;
6
7 if num == -1
8 disp ( ' ADIOS ') ;
9 break ; %Sale del programa
10 end
11
12 if num <= 0 %Verifica que el dato es >0
13 disp ( ' --------------------------------------- ') ;
14 disp ( ' Dato mal ingresado ') ;
15 continue ;
16 else
17 a = num2str ( num ) ; %Convertir el número en una cadena
18
19 for i = length ( a ) : -1:1
20 b ( c2 ) = a ( i ) ; %Guarda el número invertido en un
nuevo vector
21
22 if a ( c2 ) ~= b ( c2 ) %Verifica alguna diferencia
entre los vectores
23 disp ( ' El número no es palíndromo ') ;
24 disp ( ' --------------------------------------- '
);
25 c = false ; %El número no es palíndromo y cierra
el bucle
26 break ;
27 end
28 c2 = c2 +1;
29 end
30
31 if c == true

3
32 disp ( ' El número es palíndromo ') ;
33 disp ( ' --------------------------------------- ') ;
34 end
Ejemplo de compilación:
En primer lugar el número ingresado es: 1001, el cuál es un número
palíndromo.
Depués se ingresa el número: 2020, el cuál no es un número palíndromo.
Resultado:
1 Ejercicio1
2 Ingrese Número >0 / ( -1 para salir ) : 1001
3 El número es palíndromo
4 ---------------------------------------
5 Ingrese Número >0 / ( -1 para salir ) : 2020
6 El número no es palíndromo
7 ---------------------------------------
8 Ingrese Número >0 / ( -1 para salir ) : -1
9 ADIOS

1.2. Ejercicio 2: Cambio de posición de caracteres


El programa pide ingresar dos frases.
Se imprimirá una frase en la que el primer carácter de la frase originial cam-
bia de sitio, apareciendo al nal.
Se imprimirá otra frase en la que el último carácter de la frase original cam-
biará de lugar, apareciendo en la primera porsición

Código de Matlab:
1 clear all ; clc ;
2
3 f1 = input ( ' Frase 1: ' , 's ') ; %Ingresar la frase 1
4 f2 = input ( ' Frase 2: ' , 's ') ; %Ingresar la frase 2
5
6 F1 = f1 ;
7 F1 ( length ( f1 ) ) = f1 (1) ; %Cambia de posición el último
carácter al primero de la frase 1
8 F2 = f2 ;
9 F2 (1) = f2 ( length ( f2 ) ) ; %Cambia de posición el primer
carácter al último de la frase 2

4
10
11 disp ( ' -------------------------- ') ;
12 fprintf ( ' FRASE 1: %s \ n ' , F1 ) ;
13
14 disp ( ' -------------------------- ') ;
15 fprintf ( ' FRASE 2: %s \ n ' , F2 ) ;
16 disp ( ' -------------------------- ') ;
Ejemplo de compilación:
Se ingresa la frase 1 = "perro", el resultado debería ser = perrp.
Se ingresa la frase 2 = "hola mundo", el resultado debería ser = oola
mundo.
Resultado:
1 Ejercicio2 ;
2 Frase 1: perro
3 Frase 2: hola mundo
4 --------------------------
5 FRASE 1: perrp
6 --------------------------
7 FRASE 2: oola mundo
8 --------------------------

1.3. Ejercicio 3: Suma las y columnas de una matriz


nxm
Sea D una matriz de orden (nxm), escriba una función y realice las si-
guientes operaciones:
Sumar cada una de las las, almacenar los resultados en un vector.
Sumar cada columna, almacenar los resultados en un vector.
Los datos de salida de la función son los vectores de la suma.
Código de Matlab:
1 function [ SF , SC ] = Ejercicio3 (m , n )
2 disp ( ' Ingrese valores de la matriz ') ;
3 disp ( ' .................................... ') ;
4 %Ingreso de datos de la matriz mxn
5 for i = 1: m
6 for j = 1: n
7 fprintf ( 'D [ %i ][ %i ]: ' ,i , j ) ;
8 D (i , j ) = input ( ' ') ;

5
9 end
10 end
11
12 disp ( ' .................................... ') ;
13 disp ( D ) ;
14
15 %Suma de las filas
16 sumF = 0;
17 for i = 1: m
18 for j = 1: n
19 sumF = sumF + D (i , j ) ;
20 end
21 SF (i ,1) = sumF ;
22 sumF = 0;
23 end
24
25 %Suma de las columnas
26 sumC = 0;
27 for j = 1: n
28 for i = 1: m
29 sumC = sumC + D (i , j ) ;
30 end
31 SC (1 , j ) = sumC ;
32 sumC =0; end
33 end
Ejemplo de compilación:
Se ingresa la siguiente matriz:
 
5 2
4 1  (1)
3 9

El resultado es:
Suma las:  
7
5 (2)
12

Suma columnas:
(3)

12 12

6
Resultado:
1 [ SF SC ] = Ejercicio3 (3 ,2)
2 Ingrese valores de la matriz
3 ....................................
4 D [ 1 ][ 1 ]:5
5 D [ 1 ][ 2 ]:2
6 D [ 2 ][ 1 ]:4
7 D [ 2 ][ 2 ]:1
8 D [ 3 ][ 1 ]:3
9 D [ 3 ][ 2 ]:9
10 ....................................
11 5 2
12 4 1
13 3 9
14
15
16 SF =
17
18 7
19 5
20 12
21
22
23 SC =
24
25 12 12

1.4. Ejercicio 4: Vericar elemento de la diagonal prin-


cipal de una matriz nxn
Dada una matriz de orden (nxn) cualquiera, vericar si algún elemento
de la diagonal principal es cero.
Código de Matlab:
1 while true
2 n = input ( ' Ingrese dimensión n : ') ; %Se ingresa la
dimensión de la matriz
3
4 if n > 0
5 break ;
6 end
7 end
8 disp ( ' ------------------------------------------ ') ;

7
9
10 %Se colocan los datos de la matriz nxn aleatoriamente
11 D = randi ([0 100] , n ) ;
12 disp ( ' Matriz D ') ;
13 disp ( D ) ;
14 disp ( ' ------------------------------------------ ') ;
15 DP = diag ( D ) ; %Diagonal principal
16
17 for i =1: length ( DP )
18 if DP ( i ) == 0 %Verificar un 0 en la diagonal principal
19 disp ( ' La diagonal principal contiene el número 0 ') ;
20 disp ( ' ------------------------------------------ ') ;
21 break ;
22 end
23 end
24
25 disp ( ' Diagonal principal ') ;
Ejemplo de compilación:
Los datos de la matriz se colocan aleatoriamente, por lo que para au-
mentar la probalidad de que exista algún cero en la diagonal principal,
la dimensión n es n=10
Resultado:
1 Ejercicio4
2 Ingrese dimensión n :10
3 ------------------------------------------
4 Matriz D
5 30 25 0 94 96 78 59 18 96 63
6 40 30 22 22 43 23 33 32 94 54
7 84 42 0 48 97 37 86 40 82 44
8 40 12 19 37 77 89 44 55 73 29
9 39 50 14 52 0 86 91 4 17 50
10 36 71 27 26 68 40 3 55 36 76
11 14 24 17 6 71 32 53 27 19 77
12 26 79 14 44 65 61 72 24 0 58
13 8 7 60 17 55 91 18 24 31 75
14 43 39 91 2 22 91 33 15 70 65
15
16 ------------------------------------------
17 La diagonal principal contiene el número 0
18 ------------------------------------------

8
1 Diagonal principal
2 30
3 30
4 0
5 37
6 0
7 40
8 53
9 24
10 31
11 65

1.5. Ejercicio 5: Intercambio de 2 las de una matriz


nxn
Dada una matriz de orden (nxn) escribir un programa que permita inter-
cambiar 2 las cualquiera de la matriz.
Código de Matlab:
1 clc ; clear all ;
2
3 while true
4 n = input ( ' Ingrese dimensión n : ') ;
5 if n > 0
6 break ;
7 end
8 end
9
10 disp ( ' ------------------------------------------ ') ;
11 D = randi ([0 100] , n ) ;
12 disp ( ' Matriz : ') ;
13 disp ( D ) ;
14 disp ( ' ------------------------------------------ ') ;
15
16 while true
17 f1 = input ( ' Eliga la fila a intercambiar : ') ;
18 f2 = input ( ' Eliga otra fila a intercambiar : ') ;
19 disp ( ' ------------------------------------------ ') ;
20
21 if ((( f1 > 0) &( f2 > 0) ) &(( f1 <= n ) &( f2 <= n ) ) ) &( f1 ~= f2 )
22 break ;
23 else
24 disp ( ' Dato mal ingresado ') ;
25 disp ( ' ------------------------------------------ ') ;

9
26 end
27
28 end
29
30 %Intercambio de las filas seleccionadas
31 D1 = D ( f1 ,:) ;
32 D ( f1 ,:) = D ( f2 ,:) ;
33 D ( f2 ,:) = D1 ;
34
35 disp ( ' Matriz cambiada ') ;
36 disp ( ' ------------------------------------------ ') ;
Ejemplo de compilación:
Los datos de la matriz se colocan aleatoriamente, n = 3; se desea in-
tercambiar la la 1 con la la 2.
Resultado:
1 Ejercicio5 ;
2 Ingrese dimensión n :3
3 ------------------------------------------
4 Matriz :
5 12 9 67
6 50 14 43
7 35 20 70
8
9 ------------------------------------------
10 Eliga la fila a intercambiar : 1
11 Eliga otra fila a intercambiar : 3
12 ------------------------------------------
13 Matriz cambiada
14 ------------------------------------------
15 35 20 70
16 50 14 43
17 12 9 67

1.6. Ejercicio 6: Intercambio de 2 columnas de una ma-


triz nxn
Dada una matriz de orden (nxn) escribir un programa que permita inter-
cambiar 2 columnas cualquiera de la matriz. (De la línea 1 a la línea 29 del
código del ejercicio anterior (Ejercicio 5) Se requiere el mismo procedimiento,

10
simplemente se realiza el cambio de la variabale f1 a c1 y f2 a c2.)
Código de Matlab:
1 %Cambio de las columnas seleccionadas
2 D1 = D (: , c1 ) ;
3 D (: , c1 ) = D (: , c2 ) ;
4 D (: , c2 ) = D1 ;
5
6 disp ( ' Matriz cambiada ') ;
7 disp ( ' ------------------------------------------ ') ;
8 disp ( D ) ;
Ejemplo de compilación:
Los datos de la matriz se colocan aleatoriamente, n = 3; se desea in-
tercambiar la columna 1 con la columna 2.
Resultado:
1 Ejercicio6 ;
2 Ingrese dimensión n :3
3 ------------------------------------------
4 Matriz :
5 37 9 57
6 13 62 79
7 43 1 23
8
9 ------------------------------------------
10 Eliga la columna a intercambiar : 1
11 Eliga otra columna a intercambiar : 3
12 ------------------------------------------
13 Matriz cambiada
14 ------------------------------------------
15 57 9 37
16 79 62 13
17 23 1 43

1.7. Ejercicio 7: Intercambio de diagonales de una ma-


triz nxn
Dada una matriz de orden (nxn), intercambiar las diagonales, principal y
secundaria, de esta matriz.
Código de Matlab:

11
1 clc ; clear all ;
2
3 while true
4 n = input ( ' Ingrese dimensión n : ') ;
5
6 if n > 0
7 break ;
8 end
9 end
10 disp ( ' ------------------------------------------ ') ;
11 D = randi ([ -100 100] , n ) ;
12 disp ( ' Matriz : ') ;
13 disp ( D ) ;
14 disp ( ' ------------------------------------------ ') ;
15
16 D1 = diag ( D ) ; j = n ;
17
18 for i =1: n
19 D2 (i ,1) = D (i , j ) ;
20 D (i , j ) = D1 (i ,1) ;
21 j = j -1;
22 end
23
24 for i =1: n
25 D (i , i ) = D2 (i ,1) ;
26 end
27
28 disp ( ' Matriz cambiada ') ;
29 disp ( ' ------------------------------------------ ') ;
30 disp ( D ) ;
Ejemplo de compilación:
Los datos de la matriz se colocan aleatoriamente, n = 3; el resultado
es la diagonal principal intercambiada con la diagonal secundaria y
viceversa.
Resultado:
1 Ejercicio7 ;
2 Ingrese dimensión n :3
3 ------------------------------------------
4 Matriz :
5 45 50 84
6 57 64 98
7 6 22 85
8 ------------------------------------------

12
1 Matriz cambiada
2 ------------------------------------------
3 84 50 45
4 57 64 98
5 85 22 6
6 ------------------------------------------

1.8. Ejercicio 8: Suma de elementos impares en las co-


lumnas de una matriz nxm
Dada una matriz de orden (nxm).
Sumar los elementos impares por columnas.
Guarde los datos en un vector. El dato de salida de la función es el vector de
la suma.
Código de Matlab:
1 function [ SC ] = Ejercicio8 (m , n )
2 clc ;
3
4 disp ( ' Ingrese valores de la matriz ') ;
5 disp ( ' .................................... ') ;
6
7 for i = 1: m
8 for j = 1: n
9 fprintf ( 'D [ %i ][ %i ]: ' ,i , j ) ;
10 D (i , j ) = input ( ' ') ;
11 end
12 end
13
14 disp ( ' .................................... ') ;
15 disp ( D ) ;
16
17 sumC = 0;
18 for j = 1: n
19 for i = 1: m
20 if mod ( D (i , j ) ,2) ~= 0
21 sumC = sumC + D (i , j ) ;
22 end
23 end
24
25 SC (1 , j ) = sumC ;

13
26
27 sumC =0;
28 end
29 end
Ejemplo de compilación:
Se ingresan los siguientes datos en la matriz de dimensión nxm, n = 5,
m=4  
4 3 8 9
5 10 13 47
(4)
 
5 65 95 2 
 
4 0 3 6 
7 8 9 44

El resultado es:
Suma de los elementos impares por columnas:

(5)

17 68 120 56

Resultado:
1 SC = Ejercicio8 (5 ,4)
2 Ingrese valores de la matriz
3 ....................................
4 D [ 1 ][ 1 ]:4
5 D [ 1 ][ 2 ]:3
6 D [ 1 ][ 3 ]:8
7 D [ 1 ][ 4 ]:9
8 D [ 2 ][ 1 ]:5
9 D [ 2 ][ 2 ]:10
10 D [ 2 ][ 3 ]:13
11 D [ 2 ][ 4 ]:47
12 D [ 3 ][ 1 ]:5
13 D [ 3 ][ 2 ]:65
14 D [ 3 ][ 3 ]:95
15 D [ 3 ][ 4 ]:2
16 D [ 4 ][ 1 ]:4
17 D [ 4 ][ 2 ]:0
18 D [ 4 ][ 3 ]:3
19 D [ 4 ][ 4 ]:6
20 D [ 5 ][ 1 ]:7
21 D [ 5 ][ 2 ]:8

14
22 D [ 5 ][ 3 ]:9
23 D [ 5 ][ 4 ]:44
24 ....................................
25 4 3 8 9
26 5 10 13 47
27 5 65 95 2
28 4 0 3 6
29 7 8 9 44
30
31
32 SC =
33
34 17 68 120 56

1.9. Ejercicio 9: Conversión de temperatura


Tabla de conversión de temperatura. La relación de diversas escalas de
temperatura con la escala Celsius (C), es la siguiente:
F =(9/5)*C + 32
K = C + 273,15
R =(8/10)*C
Construir un programa en Matlab que permita pasar de una escala a otra.
El programa debe solicitar al usuario el ingreso de la información necesaria
para su funcionamiento.
Además,el programa siempre esperará información hasta que se pulse la tecla
s.
Código de Matlab:
1 while true
2 disp ( ' ---------------------------- ') ;
3 disp ( ' 1. °C -> °F ') ;
4 disp ( ' 2. °C -> K ') ;
5 disp ( ' 3. °C -> R ') ;
6 disp ( 's . Salir ') ;
7 disp ( ' ---------------------------- ') ;
8 C = input ( ' Ingrese el valor de °C : ') ;
9 disp ( ' ---------------------------- ') ;
10 opc = input ( ' Eliga una opción : ' , 's ') ;
11 disp ( ' ---------------------------- ') ;
12
13 switch opc
14 case '1 '
15 F = 1.8* C + 32;

15
16 fprintf ( ' De °C a °F es igual a F = %i \ n ' ,F ) ;
17 case '2 '
18 K = C + 273.15;
19 fprintf ( ' De °C a K es igual a K = %i \ n ' ,K ) ;
20 case '3 '
21 R = 0.8* C ;
22 fprintf ( ' De °C a R es igual a R = %i \ n ' ,R ) ;
23 case 's '
24 break ;
25 otherwise
26 end
27 end
Ejemplo de compilación:
Se ingresan diferentes valores de temperatura en grados centígrados, y
se eligen tres diferentes formas de conversión
Resultado:
1 Ejercicio9 ;
2 ----------------------------
3 1. °C -> °F
4 2. °C -> K
5 3. °C -> R
6 s . Salir
7 ----------------------------
8 Ingrese el valor de °C : 30
9 ----------------------------
10 Eliga una opción : 3
11 ----------------------------
12 De °C a R es igual a R = 24
13 ----------------------------
14 1. °C -> °F
15 2. °C -> K
16 3. °C -> R
17 s . Salir
18 ----------------------------
19 Ingrese el valor de °C : 20
20 ----------------------------
21 Eliga una opción : 1
22 ----------------------------
23 De °C a °F es igual a F = 68
24 ----------------------------
25 1. °C -> °F
26 2. °C -> K

16
27 3. °C -> R
28 s . Salir
29 ----------------------------
30 Ingrese el valor de °C : 13
31 ----------------------------
32 Eliga una opción : 2
33 ----------------------------
34 De °C a K es igual a K = 2.861500 e +02
35 ----------------------------
36 1. °C -> °F
37 2. °C -> K
38 3. °C -> R
39 s . Salir
40 ----------------------------
41 Ingrese el valor de °C : 0
42 ----------------------------
43 Eliga una opción : s
44 ----------------------------

1.10. Ejercicio 10: Matriz nxn con elementos impares


Crear una función M.le, que tiene como insumo de entrada la dimensión
de una matriz cuadrada n y que presenta una matriz de orden nxn construida
unicamente con números impares (positivos o negativos).
Código de Matlab:
1 function R = Ejercicio10 ( n )
2 j = 1;
3
4 for i = 1: n
5 while j <= n
6 R (i , j ) = randi ([ -100 100]) ;
7
8 if mod ( R (i , j ) ,2) == 0
9 j = j - 1;
10 end
11 j = j + 1;
12 end
13 j = 1;
14 end
15
16 end

17
Ejemplo de compilación:
Se ingresa la dimensió de la matriz n, n = 4, los datos se ingresan
aleatoriamente en la matriz
Resultado:
1 R = Ejercicio10 (4)
2 R =
3
4 17 17 -43 -21
5 -59 -37 -71 -5
6 61 -27 7 43
7 75 95 -85 17

1.11. Ejercicio 11: Enésimo término de una serie


Escriba una función que calcule en n-ésimo término de la serie denida
por:

(6)
p
2
Un = Un−1 + 2, U0 = 1

Código de Matlab:
1 function R = Ejercicio11 ( n )
2 U (1) = 1; %Uo = 1
3
4 %i =2 es el término U1 de la serie
5 for i =2:( n +1)
6 U ( i ) = sqrt ( U (i -1) + 2) ;
7 end
8
9 R = U(i);
10 end
Ejemplo de compilación:
Calculamos el término 6 de la serie, el resultado es R=1.99973
Calculamos el término 1 de la serie, el resultado es R=1.7320
Calculamos el término 2 de la serie, el resultado es R=1.9318
Calculamos el término 50 de la serie, el resultado es R = 2

18
Resultado:
1 R = Ejercicio11 (6)
2
3 R =
4
5 1.9997
6
7 R = Ejercicio11 (1)
8
9 R =
10
11 1.7321
12
13 R = Ejercicio11 (2)
14
15 R =
16
17 1.9319
18
19 R = Ejercicio11 (50)
20
21 R =
22
23 2

1.12. Ejercicio 12: Cálculo de una sumatoria


Crear un archivo de función que calcule:
n
1i
(7)
X
i
i=0
2

Código de Matlab:
1 function R = Ejercicio12 ( n )
2 sum = 0;
3
4 for i = 1: n
5 sum = sum + i *(1/2) ^ i ;
6 end
7
8 R = sum ;
9 end

19
Ejemplo de compilación:
Calculamos el término 1 de la serie, el resultado es R=0.5
Calculamos el término 5 de la serie, el resultado es R=1.7812
Calculamos el término 20 de la serie, el resultado es R=1.9999
Calculamos el término 50 de la serie, el resultado es R = 2
Resultado:
1 R = Ejercicio12 (1)
2
3 R =
4
5 0.5000
6
7 R = Ejercicio12 (5)
8
9 R =
10
11 1.7813
12
13 R = Ejercicio12 (20)
14
15 R =
16
17 2.0000
18
19 R = Ejercicio12 (50)
20
21 R =
22
23 2.0000

1.13. Ejercicio 13: Gracar función paramétrica


Crear una función M.le con la que se pueda gracar la función paramé-
trica siguiente:
x(t) = (R + r)cos(t) − rcos( R+r

t)
z(t) = r (8)
y(t) = (R + r)sin(t) − rsin( R+r
r
t)
Los parámetros de entrada deben ser R,r,a,b y el número n de puntos. t[a,b]
y a,b e R

20
1 function Ejercicio13 (R ,r ,a ,b , n )
2
3 t = linspace (a ,b , n ) ;
4
5 x = ( R + r ) * cos ( t ) - r * cos ((( R + r ) / r ) * t ) ;
6 y = ( R + r ) * sin ( t ) - r * sin ((( R + r ) / r ) * t ) ;
7
8 plot (x , y ) ;
9 end
Ejemplo de compilación:
R>r,a = -10 b = 10, n = 20
R<r,a = -10 b = 10, n = 25
R=r,a = -10 b = 10, n = 100
Resultado:
1 Ejercicio13 (10 ,5 , -10 ,10 ,20)
2 Ejercicio13 (3 ,20 , -10 ,10 ,25)
3 Ejercicio13 (15 ,15 , -10 ,10 ,100)
4 Ejercicio13 (35 ,20 , -10 ,10 ,100)
5 Ejercicio13 (35 ,20 ,0 ,6 ,100)
6 Ejercicio13 (5 ,20 , -20 ,100 ,100)
7 diary off ;

21
GRÁFICOS

Figura 1. R>r,a = -10 b = 10, n = 20; R = 10, r = 5

Figura 2. R>r,a = -10 b = 10, n = 25; R = 3, r = 20

22
Figura 3. R>r,a = -10 b = 10, n = 100; R = 15, r = 15

OTRAS FIGURAS:

Figura 4. a = -10 b = 10, n = 100; R = 35, r = 20

23
Figura 5. a = 0 b = 6, n = 100; R = 35, r = 20

Figura 6. a = -20 b = 100, n = 100; R = 5, r = 20

1.14. Ejercicio 14: Error relativo y error absoluto


De cada uno de los casos siguientes, halle el error absoluto Ez y el error
relativo Rz y determine el número de cifras signicativas de la
aproximación.
a) X = 2,71828182, x = 2,7182
b) Y = 98350, y = 98000
c) Z = 0,000068, z = 0,00006

24
Código de Matlab:
1 clc ; clear all ;
2
3 X = 0.452975; x = 0.452949;
4 Y = 98350; y = 98000;
5 Z = 0.000068; z = 0.00006;
6
7 %ERROR ABSOLUTO
8 Ex = abs (X - x ) ;
9 Ey = abs (Y - y ) ;
10 Ez = abs (Z - z ) ;
11
12 %ERROR RELATIVO
13 Rx = Ex / x ;
14 Ry = Ey / y ;
15 Rz = Ez / z ;
16
17 d =1;
18 %CIFRAS SIGNIFICATIVAS
19 rx = 2* Rx ;
20 ry = 2* Ry ;
21 rz = 2* Rz ;
22
23 while 10^( - d ) > rx
24 d = d +1;
25 end
26 dx = d -1;
27 d =1;
28
29 while 10^( - d ) > ry
30 d = d +1;
31 end
32 dy = d -1;
33 d =1;
34
35 while 10^( - d ) > rz
36 d = d +1;
37 end
38 dz = d -1;
39
40 disp ( '
-- ---- ---- --- ---- --- ---- ---- --- ---- ---- --- ---- ---- --- ---- --- ---- ---- -
') ;
41 fprintf ( 'X = %i x = %i \ n ' ,X , x ) ;
42 fprintf ( ' Para X , x es una buena aproximación con %i cifras

25
significativas \ n ' , dx ) ;
43
44 disp ( '
-- ---- ---- --- ---- --- ---- ---- --- ---- ---- --- ---- ---- --- ---- --- ---- ---- -
') ;
45 fprintf ( 'Y = %i y = %i \ n ' ,Y , y ) ;
46 fprintf ( ' Para Y , y es una buena aproximación con %i cifras
significativas \ n ' , dy ) ;
47
48 disp ( '
-- ---- ---- --- ---- --- ---- ---- --- ---- ---- --- ---- ---- --- ---- --- ---- ---- -
') ;
49 fprintf ( 'Z = %i z = %i \ n ' ,Z , z ) ;
50 fprintf ( ' Para Z , z no es una buena aproximación con %i cifras
significativas \ n ' , dz ) ;
Resultado:
1 Ejercicio14 ;
2 -- ---- ---- --- ---- ---- --- ---- --- ---- ---- --- ---- ---- --- ---- --- ---- ---- -

3 X = 2.718282 e +00 x = 2.718200 e +00


4 Para X , x es una buena aproximación con 4 cifras
significativas
5 -- ---- ---- --- ---- ---- --- ---- --- ---- ---- --- ---- ---- --- ---- --- ---- ---- -

6 Y = 98350 y = 98000
7 Para Y , y es una buena aproximación con 2 cifras
significativas
8 -- ---- ---- --- ---- ---- --- ---- --- ---- ---- --- ---- ---- --- ---- --- ---- ---- -

9 Z = 6.800000 e -05 z = 6.000000 e -05


10 Para Z , z no es una buena aproximación con 0 cifras
significativas

1.15. Ejercicio 15: Cálculo aproximado con serie de


Taylor
Realice el cálculo aproximado (con series de taylor) de la expresión:
Z 1
sin(x)
dx (9)
0,5 x
Determine que tipo de error se presenta en esta situación y compare su
resultado con el valor obtenido en una calculadora programable indicando

26
el número de cifras signicativas de la aproxiación.
Código de Matlab:
1 clear all ;
2
3 syms x ;
4 fac =1;
5
6 %Límites de integración
7 a = 0.5;
8 b = 1;
9 %Serie del sen ( x )
10 %n términos
11 disp ( ' ............. ') ;
12 n = input ( 'N términos ?: ') ;
13
14 %xo alrededor de xo = 0.75;
15 serT = 0;
16 xo = 0.75;
17 F = sin ( x ) ;
18
19 for i =1: n
20 %f
21 if i ==1
22 f(i) = F;
23 z = inline ( f ( i ) ) ;
24 num = z ( xo ) ;
25 Fn ( i ) = num ;
26 else
27 %f ^ n ( xo )
28 f ( i ) = diff ( F ) ; %Derivar la función
29 F = f(i); %Guardar la derivada para la siguiente
iteración
30 z = inline ( f ( i ) ) ; %Convertir la derivada para evaluar en
xo
31 num = z ( xo ) ; %Evaluar xo
32 Fn ( i ) = num ; %Guardar resultado en un vector
númerico
33 end
34
35 %(x - xo ) ^ n
36 sum ( i ) = (x - xo ) ^( i -1) ;
37
38 %N !
39 if i ==1
40 N ( i ) = 1;

27
41 else
42 for j =1:( i -1)
43 fac = fac * j ;
44 end
45 N ( i ) = fac ;
46 fac = 1;
47 end
48
49 DIV ( i ) = round ( Fn ( i ) / N ( i ) ,4) ;
50
51 RES ( i ) = DIV ( i ) * sum ( i ) ;
52 serT = serT + RES ( i ) ;
53
54 end
55
56 SINT = serT / x ;
57
58 disp ( ' -------------------------------- ') ;
59 disp ( ' Serie de Taylor del sin ( x ) / x : ') ;
60 disp ( vpa ( SINT ,4) ) ;
61
62
63 %INTEGRAR
64 FX = inline ( SINT ) ;
65 fX = @ ( x ) FX ( x ) ;
66
67 R = integral ( fX ,a , b ) ;
68
69 disp ( ' -------------------------------- ') ;
Ejemplo de compilación:
Calculamos la integral con 5 términos de la serie.
Calculamos la integral con 20 términos de la serie.
Calculamos la integral con 100 términos de la serie.
Resultado:
1 Ejercicio15 ;
2 .............
3 N términos ?: 5
4 --------------------------------
5 Serie de Taylor del sin ( x ) / x :
6 (0.7317* x - 0.3408*( x - 0.75) ^2 - 0.1219*( x - 0.75) ^3 +
0.0284*( x - 0.75) ^4 + 0.1328) / x

28
7
8 --------------------------------
9 El resultado de la integral definida es : 0.452949
10 .............
11 N términos ?: 20
12 --------------------------------
13 Serie de Taylor del sin ( x ) / x :
14 (0.7317* x - 0.3408*( x - 0.75) ^2 - 0.1219*( x - 0.75) ^3 +
0.0284*( x - 0.75) ^4 + 0.0061*( x - 0.75) ^5 - 0.0009*( x -
0.75) ^6 - 0.0001*( x - 0.75) ^7 + 0.1328) / x
15
16 --------------------------------
17 El resultado de la integral definida es : 0.452949
18 .............
19 N términos ?: 100
20 --------------------------------
21 Serie de Taylor del sin ( x ) / x :
22 (0.7317* x - 0.3408*( x - 0.75) ^2 - 0.1219*( x - 0.75) ^3 +
0.0284*( x - 0.75) ^4 + 0.0061*( x - 0.75) ^5 - 0.0009*( x -
0.75) ^6 - 0.0001*( x - 0.75) ^7 + 0.1328) / x
23
24 --------------------------------
25 El resultado de la integral definida es : 0.452949
26 --------------------------------

Realizando el cálculo de la integral en un calculadora programable, el


resultado es: 0.452975...
El número de cigras signicativas se las puede hayar utilizando el programa
del Ejercicio 14, dando como resultado 3 cifras signicativas.
Además el tipo de error que se presenta es el de truncamiento, ya que
dependiendo del número de términos que tenga la serie, el resultado será el
más preciso y viceversa.

1.16. Ejercicio 16: Orden de aproximación de una


función
Dados los desarrollos de Taylor
1
= 1 + h + h2 + h3 + O(h4 ) (10)
1−h

29
h2 h4
cos(h) = 1 − + + O(h6 ) (11)
2! 4!
Calcule e indique el orden de aproximación para:
->Suma de las funciones
->Producto de las funciones
Código de Matlab:
1 clear all ;
2
3 syms h O ;
4
5 %Definir las funciones
6 F = 1 + h + h ^2 + h ^3;
7 G = 1 + 0 -h ^2/2 + 0 + h ^4/24;
8
9 %Orden de aproximación de las funciones
10 FO = 4;
11 GO = 6;
12
13 %Orden de aproximación de la suma
14 OSUMA = min ( FO , GO ) ;
15
16 %Suma de las funciones F + G
17 c = sym2poly ( F + G ) ;
18
19 %Eliminar los términos sobrantes debido al orden de
aproximación
20 for i = OSUMA : -1:1
21 SUMA ( i ) = c ( i + length ( c ) - OSUMA ) ;
22 end
23
24 disp ( '
--- ---- ----- ---- ----- ----- ---- ----- ----- ---- ----- ---- ----- ----- -
') ;
25 disp ( ' SUMA : ') ;
26 disp ( SUMA ) ;
27 disp ( poly2sym ( SUMA , h ) ) ;
28 fprintf ( ' El orden de aproximación para la suma es : O ( h^ %i ) \ n
\ n ' , OSUMA ) ;
29
30 c = sym2poly ( F * G ) ;
31
32 for i = OSUMA : -1:1
33 MULT ( i ) = c ( i + length ( c ) - OSUMA ) ;
34 end

30
35
36 disp ( '
--- ---- ----- ---- ----- ----- ---- ----- ----- ---- ----- ---- ----- ----- -
') ;
37 disp ( ' MULTIPLICACIÓN : ') ;
38 disp ( MULT ) ;
39 disp ( poly2sym ( MULT , h ) ) ;
40 fprintf ( ' El orden de aproximación para la multiplicación es :
O ( h^ %i ) \ n \ n ' , OSUMA ) ;
Resultado:
1 Ejercicio16
2 --- ---- ----- ----- ---- ----- ---- ----- ----- ---- ----- ---- ----- ----- -

3 SUMA :
4 1.0000 0.5000 1.0000 2.0000
5
6 h ^3 + h ^2/2 + h + 2
7
8 El orden de aproximación para la suma es : O ( h ^4)
9
10 --- ---- ----- ----- ---- ----- ---- ----- ----- ---- ----- ---- ----- ----- -

11 MULTIPLICACIÓN :
12 0.5000 0.5000 1.0000 1.0000
13
14 h ^3/2 + h ^2/2 + h + 1
15
16 El orden de aproximación para la multiplicación es : O ( h ^4)

31

También podría gustarte