Error Taylor
Error Taylor
Error Taylor
Prcticas Matlab
Prctica 4
Objetivos
Comandos
Los comandos que se utilizarn ya se han visto en prcticas anteriores.
Ejemplos resueltos
f (x ) = x a = 1
T2
T3
T4
T2
T3
T4
x = 1.5
Polinomios de
g (x ) = (1.5) a = 1
x
x = 0.5
Qu polinomio de Taylor aproxima mejor al valor 1.5 ?
PGINA 2
Una aproximacin de
1.5 con 20 cifras decimales es:
1.2247448713915890491. Puedes utilizar Matlab para calcular este
valor tecleando:
>>vpa(sqrt(1.5),20)
Solucin:
(a) Cdigo Matlab
syms x
% Funciones a utilizar
f=sqrt(x);
g=(1.5)^x;
% Punto en el que se desarrolla el polinomio
a=1.0;
% Polinomios de Taylor de grados 3, 4 y 5
polinomiosf=[taylor(f,3,a) taylor(f,4,a) taylor(f,5,a)]
polinomiosg=[taylor(g,3,a) taylor(g,4,a) taylor(g,5,a)]
Cdigo Matlab
Al cdigo del apartado anterior habr que aadir:
(b)
% Puntos a analizar
punf=1.5;
pung=0.5;
% Sustitucin de los polinomios de Taylor de f en puntf
valorPolinomiof=subs(polinomiosf,x,punf);
% Sustitucin de los polinomos de Taylor de f en puntg
valorPolinomiog=subs(polinomiosg,x,pung);
% Mostramos los valores de las funciones y de los polinomios
disp('---------------Valores funciones--------------------')
disp('
x
f(x)')
disp([punf
subs(f,x,punf)])
disp('
x
g(x)')
disp([pung
subs(g,x,pung)])
disp('---------------Valores polinomios--------------------')
disp('
grado
Taylor_f
Taylor_g')
disp([[2 3 4]' valorPolinomiof' valorPolinomiog'])
Se considera la funcin f (x ) =
1
1+x
PGINA 3
dy = f ' (0) x
y dy
x = 0.5
x = 0.1
x = 0.01
2
por
3
f ' (0 ) 1
. Da un intervalo en el que puedas asegurar que est el
1!
2
valor exacto de
2
.
3
Solucin:
(a) Cdigo Matlab
syms x
f=1/sqrt(1+x);
a=0;
n=1;
%Clculo a+incremento
incrementox=[0.5 0.1
0.01];
x=a+incrementox;
% Calculo del incremento y de la diferencial para los valores de h
incrementoy=subs(f,x)-subs(f,a);
derivada=diff(f,1);
der=subs(derivada,a);
diferencialy=der*incrementox;
%Escribimos en forma de tabla
disp([incrementox' incrementoy' diferencialy'])
PGINA 4
En
el caso particular
de
que
f '' (t )
2!
(x )
f (x ) =
2
M
x )
(
2!
1
1+x
la
derivada
segunda
es
5/2
3
que al ser una funcin decreciente y positiva toma su valor ms
1 + x)
(
4
grande en valor absoluto en el punto 0 , por lo que bastara tomar M = f '' (0)
f '' (x ) =
f ' (0 )
2
= f (0.5) y que T1 (0.5) = f (0) +
0.5 = 0.75 .
3
1!
2
0.75 .
3
Cdigo Matlab
syms x
f=1/sqrt(1+x);
a=0;
n=1;
puntox=0.5;
%Para acotar el resto de Lagrange dibujamos la derivada
%de orden n+1 y vemos donde alcanza su valor mximo
dominio=a:0.01:puntox;
figure(1)
plot(dominio,subs(diff(f,n+1),dominio))
legend('Derivada n+1')
%Acotamos la expresin del resto acotando la
%derivada n+1 en t por M. Para este ejemplo
%la derivada n+1 toma el valor mayor, en valor
%absoluto, en el punto 0
M=abs(subs(diff(f,n+1),0));
%Escribimos una cota del Resto de Lagrange en valor absoluto
cotaResto=M/factorial(n+1)*(puntox-a).^(n+1);
PGINA 5
Una cota del error sera 0.0938. El intervalo en el que se encuentra el valor exacto de
2 / 3 es el siguiente:
0.75 0.0938, 0.75 + 0.0938 = 0.6562, 0.8438 .
1
1+x
por su
1
?
2
2
con un error menor que 108 ?
3
(a) Bastara sustituir en el cdigo del apartado (c) del ejercicio anterior puntox por un
1
vector con valores 0 x . Por ejemplo: puntox=0:0.1:0.5;
2
Observa que como la derivada tercera es creciente pero tomando valores negativos el
valor ms grande en valor absoluto se encuentra en el punto 0 . Es decir, M = f ''' (0)
PGINA 6
(d) El grado del polinomio es 23. Basta ir aumentando el valor de n hasta comprobar
que cotaResto es menor que 108 .
Cdigo Matlab
syms x
f=1/sqrt(1+x);
a=0;
punto=0.5;
n=23;
polinomio=taylor(f,n+1,a);
derivadaN1=diff(f,n+1);
M=abs(subs(derivadaN1,x,0));
cotaResto=M/factorial(n+1)*(punto-a)^(n+1);
format long
disp([n cotaResto])
(1) (2n 1) !!
n
(n +1
(t ) =
(1 + t )
(n +1)
2
con
0 t 0.5
f (n +1 (t ) f (n +1 (0) = M
Otra forma:
syms x
f=1/sqrt(1+x);
a=0;
punto=0.5;
n=0;
cotaResto=1;
while cotaResto>(10^(-8))
n=n+1;
polinomio=taylor(f,n+1,a);
derivadaN1=diff(f,n+1);
M=abs(subs(derivadaN1,x,0));
cotaResto=M/factorial(n+1)*(punto-a)^(n+1);
end
disp('-------------------------------------------------')
disp(['El grado del polinomio es ' num2str(n)])
PGINA 7
Ejercicios propuestos
( )
(a )
f (x ) = s en e x
(b )
f (x ) = cos log x
3
2
( )
(a )
f (x ) = s en e x
(b )
f (x ) = cos log x
3
2