Está en la página 1de 8

Tarea 1

Error y Ecuaciones no Lineales

Presentado por:
Marlyn Giraldo Múnera

Código: 1020451054

Grupo 100401_67

Presentado a:
Edgar Andrés Villabon
Tutor

Escuela De Ciencias Básicas Tecnología E Ingeniería


Universidad Nacional Abierta Y A Distancia
Marzo de 2020
Tema 1: Error
2

Problema 2: f ( x )=e x , centrado en x=0

Ejercicio 1: determine los polinomios de Taylor desde el grado cero (0)


hasta el grado cinco (5).

Los 6 polinomios de taylor calculados gracias a Excel se muestran


acontinuación

Ejercicio 2: Realice una gráfica comparativa con la evaluación de los


polinomios solicitados en el ejercicio anterior y determine cuál es el
error de truncamiento resultante en cada uno de los polinomios
hallados. Haga una gráfica del comportamiento del error para cada
polinomio.
Para la evaluación de los polinomios use Excel, evaluando desde menos
dos a dos con pasos de 0,025

Chart Title
60.000000
50.000000
40.000000
30.000000
20.000000
10.000000
0.000000
-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5
-10.000000
-20.000000
-30.000000
-40.000000

e^(x^2) Polinomio orden 0 Polinomio orden 1


Polinomio orden 2 Polinomio orden 3 Polinomio orden 4
Polinomio orden 5

Ejercicio 3: Haga un análisis de resultados basándose en la teoría y en


los resultados obtenidos. Debe incluir referencias a la bibliografía
empleada. Comentarios sin referencias no serán tenidos en cuenta.
.

Rn
0.600000

0.400000

0.200000

0.000000
0 1 2 3 4 5 6
-0.200000

-0.400000

-0.600000

-0.800000

Quisé tomar un valor medianamente cercano a cero, pero los resultados obtenidos no son
tan buenos, aunque el error de truncamiento tiende a disminuir si hubiera usado un valor
más pequeño la evaluación de los polinomios hubiera estado más cerca del uno cosa que
se evidencia en la tabla no se cumple a cabalidad

Tema 2: Ecuaciones No Lineales

Problema 2: Considere la ecuación del movimiento de Kepler

M =E−e × seno ( E)

relacionando la anomalía media M con la anomalía excéntrica E de una


órbita elíptica con excentricidad e . Para encontrar E , necesitamos
resolver la ecuación no lineal:
f ( E )=M +e × seno ( E )−E=0

Dada e=0.0167 , la excentricidad de la tierra, y M =1, calcule E empleando


los métodos solicitados en el Ejercicio 2.

Ejercicio 1:
Realice una tabla en el intervalo en donde se encuentre la primera raíz
(positiva o negativa) y grafique la función en ese intervalo (use un
tamaño de paso adecuado que le permita observar los cambios de
signo). Indique el, o los, subintervalo en donde posiblemente se
encuentra la raíz.

Con la ayuda de Matlab realicé la tabla y encuentro que el intervalo donde se encuentra la
raíz es desde 1 hasta 1.1

Ejercicio 2:

Determine, con una exactitud de 10−6 o al menos 10 iteraciones, la raíz


visualizada en el ejercicio anterior empleando cada uno de los siguientes
métodos:

Bisección
Basandome en el código utilizado en el siguiente link y mejorandolo para
la tarea indicada

https://la.mathworks.com/matlabcentral/fileexchange/65664-biseccion

Regla Falsa
Para realizar las iteraciones con el método de Regula falsi, tomo el mismo codigo de
Bisección y solo cambio la forma como se calcula el Xr

Newton Raphson
Para el método de Nr usaré el código suministrado en la página de Mathworks
https://la.mathworks.com/matlabcentral/fileexchange/68885-the-newton-raphson-method
arreglandolo para lo solicitado en la guía.
Secante
Finalmente para el método de la secante, arreglaré el código de Newton Raphson y
obtengo los siguientes resultados.

 A continuación se anexa el códgo utilizado para la tabla y los 4 métodos mencionados.

clc
clear all
close all

x=0:1/10:2;
e = 0.0167;
M = 1;

f = M + e*sin(x)-x;

T =table(x',f')

%% BISECCI”N
Xa= 1;
Xb= 1.1;
error= 10^-6;
x = Xa
Ya= M + e*sin(x)-x;
x = Xb;
Yb= M + e*sin(x)-x;

disp(' N Xa Xb Xr
F(Xa) F(Xb) F(Xr) error ');
disp('|--------|------------------|------------------|------------------|
---------------|---------------|----------------|---------------|');
Xant=0;
N=0;
while N<50
Xr=(Xa+Xb)/2;
Xact=Xr;
x=Xr;
Yr= M + e*sin(x)-x;
Ea1= abs((Xact-Xant)/Xact)*100;
ds_i=fprintf('%4d %17.8g %17.8g %17.8g %17.8g %17.8g %17.8g %4d', N,
Xa, Xb, Xr, Ya, Yb, Yr, Ea1);
disp(ds_i);
if Ea1<error
fprintf('\n\n La raiz exacta es: %d', Xr);
fprintf('\n\n numero de iteraciones: %d \n\n', N);
break
end
if(Ya*Yr)<0
Xb=Xr;
elseif (Ya*Yr)==0
fprintf('\n\n la raiz exacta es: %17.8g',Xr);
fprintf('\n\n el numero de iteraciones fue %d', N);
break
else
Xa=Xr;
end
Xant=Xr;
N=N+1;

end

%% Regula Falsi
Xa= 1;
Xb= 1.1;
error= 10^-6;
x = Xa
Ya= M + e*sin(x)-x;
x = Xb;
Yb= M + e*sin(x)-x;

disp(' N Xa Xb Xr
F(Xa) F(Xb) F(Xr) error ');
disp('|--------|------------------|------------------|------------------|
---------------|---------------|----------------|---------------|');
Xant=0;
N=0;
while N<50
Xr=Xb-Yb*(Xb-Xa)/(Yb-Ya);
Xact=Xr;
x=Xr;
Yr= M + e*sin(x)-x;
Ea2= abs((Xact-Xant)/Xact)*100;
ds_i=fprintf('%4d %17.8g %17.8g %17.8g %17.8g %17.8g %17.8g %4d', N,
Xa, Xb, Xr, Ya, Yb, Yr, Ea2);
disp(ds_i);
if Ea2<error
fprintf('\n\n La raiz exacta es: %d', Xr);
fprintf('\n\n numero de iteraciones: %d \n\n', N);
break
end
if(Ya*Yr)<0
Xb=Xr;
elseif (Ya*Yr)==0
fprintf('\n\n la raiz exacta es: %17.8g',Xr);
fprintf('\n\n el numero de iteraciones fue %d', N);
break
else
Xa=Xr;
end
Xant=Xr;
N=N+1;
end

%% Newton Raphson

syms x;
f=M+e*sin(x)-x;
g=diff(f); %The Derivative of the Function
n = 5;
epsilon = 10^-(n+1);
x0 = 1;
for i=1:100
f0=vpa(subs(f,x,x0));
f0_der=vpa(subs(g,x,x0));
y=x0-f0/f0_der;
err=abs(y-x0);
if err<epsilon
break
end
x0=y;
end
y = y - rem(y,10^-n);
fprintf('La raiz es : %f \n',y);
fprintf('N˙mero de iteraciones: %d\n',i);

%% Secante

syms x;
f=M+e*sin(x)-x; %Enter the Function here
n = 5;
epsilon = 10^-(n+1);
x0 = 1;
x1 = 1.1;
for i=1:100
f0=vpa(subs(f,x,x0)); %Calculating the value of function at x0
f1=vpa(subs(f,x,x1)); %Calculating the value of function at x1
y=x1-((x1-x0)/(f1-f0))*f1; %[x0,x1] is the interval of the root
err=abs(y-x1);
if err<epsilon %checking the amount of error at each iteration
break
end
x0=x1;
x1=y;
end
y = y - rem(y,10^-n); %Displaying upto required decimal places
fprintf('La raÌz es : %f \n',y);
fprintf('N˙mero de iteracione: %d\n',i);

También podría gustarte