Ejercicios de Métodos Numéricos

16
UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE Ronny Josu´ e Moreano Cevallos V Nivel Departamento de Ciencias Exactas Docente Mgs. Fabi ´ an Ord ´ nez 25 de Noviembre del 2014 1

Transcript of Ejercicios de Métodos Numéricos

UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE

Ronny Josue Moreano Cevallos

V Nivel

Departamento de Ciencias Exactas

Docente Mgs. Fabian Ordonez

25 de Noviembre del 2014

1

Metodos Numericos Deber 1

Indice

1. Ejercicio 1 3

2. Ejercicio 2 4

3. Ejercicio 3 5

4. Ejercicio 4 6

5. Ejercicio 5 6

6. Ejercicio 6 7

7. Ejercicio 7 8

8. Ejercicio 8 8

9. Ejercicio 9 9

10. Ejercicio 10 9

11. Ejercicio 11 10

12. Ejercicio 12 10

13. Ejercicio 13 1113.1. Programa para el sen(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113.2. Programa para el cos(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213.3. Programa para el arctan(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

14. Ejercicio 14 1414.1. a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414.2. b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414.3. c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

15. Ejercicio 15 15

Ronny Moreano 2

Metodos Numericos Deber 1

1. Ejercicio 1

Crear una funcion M-file con la que se pueda graficar la siguiente funcion:

f (t) =

{x(t) = sin( t2

2 ) + sin( t3

6 )

y(t) = cos( t2

2 ) + cos( t3

6 )

donde t ε [a,b] y a,b reales. Los parametros de entrada seran los extremos del intervalo y h el numero de puntosa utilizar.

Solucion:

function ejercicio_1(a,b,n)

t= linspace(a,b,n);%Permite iniciar a la variable t en el intervalo

%[a,b] con n puntos

x=sin(t.^2/2)+sin(t.^3/6);

y=cos(t.^2/2)+cos(t.^3/6);

plot(x,y); % Grafica las ecuaciones dadas

xlabel(’x=sin(t^2/2)+sin(t^3/6), Eje X’);

ylabel(’y=cos(t^2/2)+cos(t^3/6), Eje Y’);

Figura 1: Ejercicio1

Ronny Moreano 3

Metodos Numericos Deber 1

2. Ejercicio 2

Tabla de conversion de temperaturas. La relacion de diversas escalas de temperatura con la escaka Celsius(C) es la siguiente:

Escala Farenheit: F= 95 C + 32

Escala Kelvin : K= C+273,15Escala Reamur: R = 4

5 C

Construir un programa en Matlab que permita pasar de una escala a otra. El programa debe solicitar alusuario el ingreso de la informacion necesaria para su funcionamiento. Para transformar las escalas entre sı, seutiiza el comando switch y se lo subdivide en 4 casos. que son las cuatro escalas solicitadas. Primeramente, sesolicita a traves de la instruccion input en que escala se ingresa los datos. luego se pide su valor para luego ycon la construccion display se preenta en las otra tres escalas su valor.

escala=input(’Elija su escala [1(C),2(F),3(K),4(R)]: ’);

valor=input(’Ingrese el valor: ’);

if escala>4

disp(’ERROR: La escala elejida no es la correcta’);

end

switch escala

case 1

disp(’Su valor en las tres escalas es: ’);

F=((9/5)*(valor))+32

K=valor+273.15

R=(4/5)*valor

case 2

disp(’Su valor en las tres escalas es: ’);

C=(5/9)*(valor-32)

K=((5/9)*(valor-32))+273.15

R=(4/9)*(valor-32)

case 3

disp(’Su valor en las tres escalas es: ’);

C=valor-273.15

F=((9/5)*(vslor-273.15))+32

R=(4/5)*(valor-273.15)

case 4

disp(’Su valor en las tres escalas es: ’);

C=(5/4)*(valor)

F=((9/4)*(valor))+32

K=((5/4)*(valor))+273.15

end

Ejecucion del Programa

>> ejercicio_2

Elija su escala [1(C),2(F),3(K),4(R)]: 1

Ingrese el valor: 30

Su valor en las tres escalas es:

F =

86

Ronny Moreano 4

Metodos Numericos Deber 1

K =

303.1500

R =

24

3. Ejercicio 3

Crear una funcion M-file con la cual se grafique la siguiente funcion:

z(t) =

{x(t) = (R− r)sin(t)− rsin( R−r

r ∗ t))y(t) = (R− r)sin(t)− rsin( R−r

r ∗ t))

function ejercicio_3(R,r,a,b,n)

t= linspace(a,b,n);

x=(R-r)*sin(t)-r*sin((R-r)*t/r);

y=(R-r)*0.5*sin(t)-r*sin((R-r)*t/r);

plot(x,y)

xlabel(’x = (R-r)*sin(t)-r*sin((R-r)*t/r), Eje X’)

ylabel(’y = (R-r)*0.5*sin(t)-r*sin((R-r)*t/r), Eje Y’)

Figura 2: Ejercicio3

Ronny Moreano 5

Metodos Numericos Deber 1

4. Ejercicio 4

Escribir una funcion (M-file), llamada simpar (j), que realice lo siguiente: la suma de cuadrados de todoslos numeros enteros impares menores o iguales a n.Codigo Matlab

function simpar(j)

n=input(’Ingrese el n~Aomero hasta el que quiere calcular: ’);

sum=1;%contador

for i=1:n

a=(2*i)+1;

sum=sum+a^2;

if a>=n

j=sum

break;

end

end

Ejecucion del Programa

simpar

Ingrese el n~Aomero hasta el que quiere calcular: 34

j =

7770

5. Ejercicio 5

Desarrolle un codigo que permita dibujar un cırculo con centro (X0, y0,r). Sugerencia : Utilice la ecuacionparametrica del cırculo

function ejercicio_5(x0,y0,r)

x0=input(’Ingrese la coordenada X: ’);

y0=input(’Ingrese la coordenada Y: ’);

r=input(’Ingrese el radio: ’);

t= linspace(x0-(r+5),x0+(r+5));

x=x0+r*cos(t);

y=y0+r*sin(t);

plot(x,y);%Grafica el c~Arculo

xlabel(’x=x0+rcos(t), Eje X’);

ylabel(’y=y0+rsin(t), Eje Y’);

Ronny Moreano 6

Metodos Numericos Deber 1

Figura 3: Ejercicio5

6. Ejercicio 6

Disene un programa para calcular las raıces de una ecuacion de segundo gradoCodigo MatLab

function ejercicio_6(a,b,c)

a=input(’Ingrese a: ’);

b=input(’Ingrese b: ’);

c=input(’Ingrese c: ’);

disc=b^2-4*a*c;

if a==0

fprintf(’ERROR: El valor para a no es valido’);

else

x1=(-b+sqrt(disc))/2*a

x2=(-b-sqrt(disc))/2*a

end

Ejecucion del Programa

>> ejercicio_6

Ingrese a: 2

Ingrese b: 5

Ingrese c: 1

x1 =

-0.8769

Ronny Moreano 7

Metodos Numericos Deber 1

x2 =

-9.1231

7. Ejercicio 7

Desarrollar un programa que permita calcular las notas finales de los estudiantes con tres notas parciales,quien pasa de 21 escribe 1 y si no 0.Codigo MatLab

function ejercicio_7(p1,p2,p3)

p1=input(’Ingrese la nota del 1er parcial: ’);

p2=input(’Ingrese la nota del 2do parcial: ’);

p3=input(’Ingrese la nota del eer parcial: ’);

%Se verifica que el estudiante pase de 21

if p1+p2>=21

a=1;

else

a=0;

end

sum=p1+p2+p3;

prom=sum/3;

fprintf(’Cod Suma Promedio\n’)

fprintf(’%2.0f %7.2f %7.2f \n’, a, sum, prom);

Ejecucion del Programa

ejercicio_7

Ingrese la nota del 1er parcial: 10

Ingrese la nota del 2do parcial: 12

Ingrese la nota del eer parcial: 20

Cod Suma Promedio

1 42.00 14.00

8. Ejercicio 8

Escriba una funcion que calcule el n-esimo termino de la serie definida por Un =√

Un−1 + 2, con U0 = 1

function ejercicio_8(n)

U0=0;%contador

for i=1:n

Un=sqrt(i+2);

U0=U0+Un;

end

fprintf(’El valor de la serie es %2.6f \n’, U0);

Ejecucion del Programa

ejercicio_8(10)

El valor de la serie es 26.834791

Ronny Moreano 8

Metodos Numericos Deber 1

9. Ejercicio 9

Escriba un programa que dibuje un cuadrado de nxn asteriscos. El valor del entero n es el argumento deentradaCodigo MatLab

function ejercicio_9(n)

n=input(’Ingrese el valor de n: ’);

for i=1:n

for j=1:n

A(i,j)=’*’;

j=j+1;

end

i=i+1;

end

disp(’Cuadrado nxn de Asteriscos’)

A

Ejecucion del Programa

ejercicio_9

Ingrese el valor de n: 12

Cuadrado nxn de Asteriscos

A =

************

************

************

************

************

************

************

************

************

************

************

************

10. Ejercicio 10

Escriba una funcion que imprima la suma de los cuadrados de los numeros enteros comprendidoes en unintervalo dado como argumentos.

function ejercicio_10(a,b)

a=input(’Ingrese el n~Aomero entero inicial del intervalo: ’);

b=input(’Ingrese el n~Aomero entero final del intervalo: ’);

sum=0;%contador

for i=a:1:b

sum=sum+i^2;

end

j=sum

Ronny Moreano 9

Metodos Numericos Deber 1

Ejecucion del Programa

ejercicio_10

Ingrese el n~Aomero entero inicial del intervalo: 1

Ingrese el n~Aomero entero final del intervalo: 20

j =

2870

11. Ejercicio 11

Escribir un programa que exprese en horas, minutos y segundos un tiempo expresado en segundos. Suge-rencia: Consulte la instruccion floor.

function ejercicio_11(t)

t=input(’Ingrese el tiempo en segundos: ’);

a=t/60;

seg=rem(t,60);

b=a/60;

c=floor(a);

min=rem(c,60);

h=floor(b);

fprintf(’Su tiempo es %2.0f h %2.0f min %2.0f seg \n’, h, min, seg);

Ejecucion del Programa

ejercicio_11

Ingrese el tiempo en segundos: 15645

Su tiempo es 4 h 20 min 45 seg

12. Ejercicio 12

Con la ayuda de la funcion max, escriba un programa que imprima los dos primeros numeros mas grandesde un vector

function ejercicio_12(v)

v=input(’Ingrese su vector: ’);

max1=max(v)

[max1 pos]=max(v);

v(pos:pos)=[];

max2=max(v)

Ejecucion del Programa

ejercicio_12

Ingrese su vector: [2 34 5 6 12 45]

max1 =

45

Ronny Moreano 10

Metodos Numericos Deber 1

max2 =

34

13. Ejercicio 13

Utilzando los desarrollos de Taylor para las funciones seno, coseno, arctan(x), construya funciones (M-file)que calculen su valor para diferentes Polinomios de Taylor (3 en cada caso). Presente estos datos en una tablapara cada ejercicio.

13.1. Programa para el sen(x)

%EJERCICIO 13.1: Polinomio de taylor f(x)=sin(x)

%este programa calcula el valor del sin(x) evaluado en tres

%polinomios de taylor centrados en 0 de diferente grado

function ejercicio_13_1(n1,n2,n3,valor)

n1=input(’Ingrese el primer grado del polinomio: ’);

n2=input(’Ingrese el tercer grado del polinomio: ’);

n3=input(’Ingrese el tercer grado del polinomio: ’);

valor=input(’Ingrese el valor que desea evaluar: ’);

sen0=valor;

sum1=0;

sum2=0;

sum3=0;

%Primer polinomio

for i=1:n1

a=(((-1)^i)*(valor^(2*i+1)))/(factorial(2*i+1));

sum1=sum1+a;

end

for j=1:n1

b=(((-1)^j)*(valor^(2*j+1)))/(factorial(2*j+1));

sum2=sum2+b;

end

for g=1:n3

c=(((-1)^g)*(valor^(2*g+1)))/(factorial(2*g+1));

sum3=sum3+c;

end

eval1=sen0+sum1;

eval2=sen0+sum2;

eval3=sen0+sum3;

poli=[1 2 3];

resp=[eval1 eval2 eval3];

table=[poli;resp];

fprintf(’Polinomio Valor \n’);

fprintf(’%5.0f %15.8f \n’,table);

Ejecucion del Programa sen(x):

ejercicio_13_1

Ronny Moreano 11

Metodos Numericos Deber 1

Ingrese el primer grado del polinomio: 1

Ingrese el tercer grado del polinomio: 5

Ingrese el tercer grado del polinomio: 10

Ingrese el valor que desea evaluar: 0.1

Polinomio Valor

1 0.09983333

2 0.09983333

3 0.09983342

13.2. Programa para el cos(x)

%EJERCICIO 13.2: Polinomio de taylor f(x)=cos(x)

%este programa calcula el valor del cos(x) evaluado en tres

%polinomios de taylor centrados en 0 de diferente grado

function ejercicio_13_2(n1,n2,n3,valor)

n1=input(’Ingrese el primer grado del polinomio: ’);

n2=input(’Ingrese el tercer grado del polinomio: ’);

n3=input(’Ingrese el tercer grado del polinomio: ’);

valor=input(’Ingrese el valor que desea evaluar: ’);

cos0=1;

sum1=0;

sum2=0;

sum3=0;

%Primer polinomio

for i=1:n1

a=(((-1)^i)*(valor^(2*i)))/(factorial(2*i));

sum1=sum1+a;

end

for j=1:n1

b=(((-1)^j)*(valor^(2*j)))/(factorial(2*j));

sum2=sum2+b;

end

for g=1:n3

c=(((-1)^g)*(valor^(2*g)))/(factorial(2*g));

sum3=sum3+c;

end

eval1=cos0+sum1;

eval2=cos0+sum2;

eval3=cos0+sum3;

poli=[1 2 3];

resp=[eval1 eval2 eval3];

table=[poli;resp];

fprintf(’Polinomio Valor \n’);

fprintf(’%5.0f %15.8f \n’,table);

Ejecucion del Programa cos(x):

ejercicio_13_2

Ingrese el primer grado del polinomio: 1

Ingrese el tercer grado del polinomio: 5

Ingrese el tercer grado del polinomio: 10

Ingrese el valor que desea evaluar: 0.1

Polinomio Valor

1 0.99500000

2 0.99500000

Ronny Moreano 12

Metodos Numericos Deber 1

3 0.99500417

13.3. Programa para el arctan(x)

%EJERCICIO 13.3: Polinomio de taylor f(x)=arctan(x)

%este programa calcula el valor del arctan(x) evaluado en tres

%polinomios de taylor centrados en 0 de diferente grado

function ejercicio_13_3(n1,n2,n3,valor)

n1=input(’Ingrese el primer grado del polinomio: ’);

n2=input(’Ingrese el tercer grado del polinomio: ’);

n3=input(’Ingrese el tercer grado del polinomio: ’);

valor=input(’Ingrese el valor que desea evaluar: ’);

arctan0=valor;

sum1=0;

sum2=0;

sum3=0;

%Primer polinomio

for i=1:n1

a=(((-1)^i)*(valor^(2*i+1)))/(2*i+1);

sum1=sum1+a;

end

for j=1:n1

b=(((-1)^j)*(valor^(2*j+1)))/(2*j+1);

sum2=sum2+b;

end

for g=1:n3

c=(((-1)^g)*(valor^(2*g+1)))/(2*g+1);

sum3=sum3+c;

end

eval1=arctan0+sum1;

eval2=arctan0+sum2;

eval3=arctan0+sum3;

poli=[1 2 3];

resp=[eval1 eval2 eval3];

table=[poli;resp];

fprintf(’Polinomio Valor \n’);

fprintf(’%5.0f %15.8f \n’,table);

Ejecucion del Programa arctan(x):

ejercicio_13_3

Ingrese el primer grado del polinomio: 1

Ingrese el tercer grado del polinomio: 5

Ingrese el tercer grado del polinomio: 10

Ingrese el valor que desea evaluar: 0.1

Polinomio Valor

1 0.09966667

2 0.09966667

3 0.09966865

Ronny Moreano 13

Metodos Numericos Deber 1

14. Ejercicio 14

En cada uno de los siguientes casos, halle el error absoluto y relativo y determine el numero de cifras de laaproximacion.

%En cada uno de los siguientes casos, halle el error absoluto y relativo y

%determine el numero de cifras signi?cativas de la aproximacion.}

x=input(’ingrese X = ’);

y=input(’ingrese X-rayado = ’);

Ea=abs(x-y)

Er=(abs(x-y))/abs(x)

cont=0;

while floor(Er)==0;

Er=Er*10;

cont=cont+1;

end

cf=cont-1;

fprintf(’El numero de cifras significativas de la aproximacion es \n %.0f \n ’,cf)

14.1. a)

x = 2,71828182x = 2,7182

Ejecucion del Programa

ingrese X = 2.71828182

ingrese X-rayado = 2.7182

Ea =

8.1820e-05

Er =

3.0100e-05

El numero de cifras significativas de la aproximacion es

4

14.2. b)

y = 98350y = 98000

Ejecucion del Programa

ingrese X = 98350

ingrese X-rayado = 98000

Ea =

350

Er =

Ronny Moreano 14

Metodos Numericos Deber 1

0.0036

El numero de cifras significativas de la aproximacion es

2

14.3. c)

z = 0,000068z = 0,00006

Ejecucion del Programa

ingrese X = 0.000068

ingrese X-rayado = 0.00006

Ea =

8.0000e-06

Er =

0.1176

El numero de cifras significativas de la aproximacion es

0

15. Ejercicio 15

Complete el siguiete calculo:

∫ 14

0ex2

dx =∫ 1

4

0(1 + x2 +

x4

2!+

x6

3!)dx = p

Determine que tipo de error se presenta en esta situacion y compare su resultado con el valor exactop=0.2553074606

%Determine que tipo de error se presenta en esta situacion y compare su

%resultado con el valor exacto p=0.2553074606

syms x;

e=0;

f=1;

for i=1:1:3

fac=1;

for j=1:1:i

fac=fac*j;

end

e=e+1;

f=f+(x^(2*e))/fac ;

end

disp(’la serie de e^(x^2) es ’);

F=inline(char(f),’x’)

F=int(f);

F2=inline(char(F),’x’);

Ronny Moreano 15

Metodos Numericos Deber 1

a=input(’ingrese el limite inferior: ’);

b=input(’ingrese el limite superior: ’);

li=F2(a); %evalua el limite inferior

ls=F2(b); %evalua el limite superior

pr = ls-li; %(p-rayado)

p=0.2553074606;

Ea=abs(p-pr)

Er=abs((p-pr)/p)

ct=0;

while floor(Er)==0;

Er=Er*10;

ct=ct+1;

end

f=ct-1;

fprintf(’El numero de cifras significativas de la aproximacion es \n %.0f \n ’,f)

Ejecucion del Programa:

ejercicio_15

la serie de e^(x^2) es

F =

Inline function:

F(x) = x^2 + x^4/2 + x^6/6 + 1

ingrese el limite inferior: 0

ingrese el limite superior: 1/4

Ea =

1.7799e-08

Er =

6.9715e-08

El numero de cifras significativas de la aproximacion es

7

Ronny Moreano 16