Aproximação de uma função pelo polinómio de Taylor.
Fu n çõe s r e la cion a da s do M a t la b:
1 . Polin óm ios
e st a s fu n çõe s e n con t r a m - se no I n t e r pola t ion a n d Polyn om ia ls t oolbox
fu n çã o POLYV AL: avalia um polinóm io
Sej a um polinóm io Pn( x) = c( 1) xn + c( 2) xn- 1 + ...+ c( n) x + c( n+ 1)
Se C é um vect or cuj os elem ent os são os coeficient es c( 1) , c( 2) , …, c( n+ 1) ( nest e ordem ! ! ! ) ent ão y= polyva l( C,x ) é o valor do polinóm io avaliado em x.
Ex e m plo 1: Det erm inar o valor de P2( x) = x2 – 3x + 2 em x= 2.
» C = [ 1 - 3 2 ] % os coeficient es são arm azenados na list a( vect or) C C =
1 - 3 2
» x = 2
x = 2
» y = polyva l C,x )
y =
0 % o valor do polinóm io em x= 2 é igual a 0
Ex e m plo 2: Det erm inar o valor de P2( x) = x2 – 3x + 2 para valores ent re x= 0 e x= 2 com increm ent o 0,5.
» for x= 0: 0.5: 3, % são avalidos valores desde x= 0 at é 2 com increm ent o de 0.5
disp( [ x,polyva l( C,x) ] ) , e n d
0 2
0.5000 0.7500 1 0
1.5000 - 0.2500 2 0
2.5000 0.7500 3 2
fu n çã o ROOTS: Det erm ina as raízes de um polinóm io
Ex e m plo 1 3 .2: Det erm inar as raízes de p( x) = x5 - 10x4 + 35x3 - 50x2 + 24
» C = [ 1 - 10 35 - 50 24] C =
1 - 10 35 - 50 24
» root s( C) ans = 4.0000 3.0000 2.0000 1.0000
Por exem plo:
» z = [ 1 ;2 ] % é int roduzido um vect or com as raízes do polinóm io z =
1 2
» p= poly( z)
p =
1 - 3 2 % é obt ido o polinóm io de grau 2: x^ 2- 3x+ 2 Se realizam os agora a função inversa r oot s obt ém - se:
» r oot s( p)
a n s = % são obt idas as raízes do polinóm io
2 1
con v( A) : de t e r m ina o pr odu t o de 2 polinóm ios
Exem plo: Det erm ine o produt o de dois polinóm ios de 1- er grau p e q , cuj as raízes são 2 e 3 respect ivam ent e.
» p= poly( 2 ) p =
1 - 2 % 2 é raiz do polinóm io x- 2
» q= poly( 3 ) q =
1 - 3 % 3 é raiz do polinóm io x- 3
» conv( p,q) ans =
1 - 5 6 % o polinóm io result ado é x2- 5x+ 6
2 . Com pu t a çã o Sim bólica e m M a t La b
est as funções encont r am - se no Sym bolic M a t h Toolbox
O t oolbox pa r a com pu t a çã o sim bólica u t iliza obj e ct os sim bólicos de fin idos a t r a vé s da fu n çã o sym
SYM → const rui núm eros sim bólicos, variáveis e obj ect os
» S = sym ( A)
const rui um obj ect o S da classe “ sym ” a part ir da expressão A
se A é st ring o result ado é um a variável.
se A é um núm ero escalar ou um a m at riz o result ado é a represent ação sim bólica dest e( s) núm ero( s)
Por exem plo:
» x = sym ( 'x ') % cria a variável sim bólica com o nom e 'x' e arm azena o result ado em x
» x = sym ( 'x ', 'r e a l') % asum e que x é real
SYM S → define vários obj ect os sim bólicos
Por exem plo, os seguint es com andos:
podem ser com binados num único com ando
» sym s a t x y % define 4 variáveis sim bólicas
» syms
% lista os objectos simbólicos no workspace
As variáveis sim bólicas podem ser ut ilizadas com o argum ent o das funções:
Por exem plo:
» r = x ^ 2 + y^ 2 » t h e t a = a t a n ( y/ x ) » a t a n( y/ x )
» i= 1 0
» e = e x p( i* pi* t ) e =
exp( 10* pi* t ) % a variável i não é sim bólica, por isso fica subst it uída na expressão
Por vezes é aconselhável t o ut ilizar as funções " sim ple" or " sim plify" para t ransform ar expressões em form at os m ais sim ples:
Por exem plo:
» f = cos( x ) ^ 2 + sin( x ) ^ 2 f =
cos( x) ^ 2+ sin( x) ^ 2
» f = sim ple ( f) f =
1
Podem ser calculadas as derivadas e int egrais dum a função ut ilizando as funções " diff" e " int " .
» diff( x ^ 3 ) ans = 3* x^ 2
» in t ( x ^ 3 ) ans = 1/ 4* x^ 4
Tam bém podem ser criadas const ant es sim bólicas com a função sym. O argum ent o pode ser um a represent ação sim bólica de um valor num érico. Por exem plo, com andos com o pi = sym ( 'pi') e de lt a = sym ( '1 / 1 0 ') criam núm eros sim bólicos os quais evit am os erros de aproxim ações inerent es aos valores de pi e 1/ 10. O pi criado com a função sym subst it ui t em porariam ent e a função do Mat lab const ruída com o m esm o nom e
» pi = sym ( 'pi') pi =
pi
» de lt a = sym ( '1 / 1 0 ') delt a =
1/ 10
s = sqrt ( 2)
List a de fun çõe s pa r a com pu t a çã o sim bólica :
Sim plifica çã o
♦ sim plify → sim plifica um a expressão
♦ sim ple → re- escrev e um a expressão num a form a m ais sim ples ♦ e x pa n d → expande um a expressão
♦ colle ct → re- escrev e a expressão com o um polinóm io
♦ su bs → subst it ui a variável x por um valor
Ca lcu lu s
♦ diff → diferencial
♦ in t → int egral
♦ lim it → lim it e
♦ t a ylor → a série de Taylor ( polinóm io de Maclaurin de grau 5)
Conve r sõe s
♦ poly2 sym → const rui um polinóm io sim bólico a part ir dum vect or com os seus coeficient es
♦ sym 2 poly → const rui um vect or com os coeficient es dum polinóm io a part ir dum polinóm io sim bólico
Solu çã o de e qua çõe s
♦ solve → solução sim bólica de equações
♦ dsolve → solução sim bólica de equações difer enciais
♦ fin ve r se → a função inversa
♦ com pose → a função com post a
Ex e m plos:
2.1. Det erm ine a série de Taylor para a função sin( x)
» sym s x
» t aylor( sin( x) ) ans =
x- 1/ 6* x^ 3+ 1/ 120* x^ 5
2.2. Det erm ine a derivada da função 1+ ln( x) . Avalie- a no pont o x= 0.25
» sym s x » f= 1 + log( x )
f = 1+ log( x)
» f1 = diff( f)
f1 = 1/ x
» su bs( f1 ,0 .5 ) % est a função subst it ui na função f1 a variável x pelo valor 0.5
2.3. Det erm ine o polinóm io de Maclaurin de grau 5 que apr oxim a a função ex . Const rua o gráfico da função e do polinóm io de Maclaurin no int ervalo –10 ≤x
≤ 10 com increm ent o 0.5.
syms x; % a variável x é definida como simbólica
t=taylor(exp(x)) % determina o polinómio de Taylor simbólico
C=sym2poly(t) % determina o vector com os coeficientes do polinómio
x = -10:0.05:10; % um vector x com pontos equidistantes
fun = 'exp(x)'; % a função pode ser armazenada numa variável como string
y = eval(fun); % a função eval avalia uma função definida como string
figure(1); clf; % mostra a janela de gráficos
hold on;
title('Comparação da função exp(x) e o polinómio de Taylor');
% desenhar as linhas dos eixos
ymin=min(y); % são calculados os valores min e max para as ordenadas
if min(p)<ymin ymin=min(p)
end
ymax=max(y);
if max(p)<ymax ymax=max(p)
end
axis([-10 10 ymin ymax]); % define os eixos
plot([-10 10],[0 0],'b',[0 0],[ymin ymax],'b'); % desenha os eixos
plot(x,y,'g',x,p,'b'); % desenha os dois gráficos
Exercícios para desenvolver em Matlab
1. Ut ilize o Mat lab no m odo im ediat o e a função poly va l para det erm inar: a. o valor de P2( x) = x2 – 3x + 2 em x= 2.
b. o valor de P2( x) = x2 – 3x + 2 para valores ent re x= 0 e x= 2 com increm ent o 0,5.
2. Escreva um program a em Mat lab ( Horner.m ) para avaliar um polinóm io num pont o x usando o algorit m o de Horner. O program a deverá prim eiram ent e pedir ao ut ilizador para int roduzir o grau do polinóm io, os coeficient es e o valor de x. Com o result ado o progr am a m ost rará o valor do polinóm io no pont o x . Com pare os result ados obt idos por est e program a e a função do Mat lab poly va l.
3. No m odo im ediat o do Mat lab e dada as funções sin( x) , cos( x) , ex ,e2x
a. det erm ine o polinóm io de Maclaurin de grau 5 que aproxim a cada um das seguint es funções
b. a part ir do polinóm io obt ido em a) e para cada função const rua o gráfico da função e do seu respect ivo polinóm io. Escolha int ervalos adequados a cada função. Por exem plo para o sin( x) um int ervalo adequado seria –pi
≤ x ≤ pi
sugest ão: ut ilize as funções de com put ação sim bólica t aylor, sym 2poly e a função
polyval ut ilizada em 2.
4.
Escreva um program a em Mat lab que const rua o gráfico dum a função e do seu polinóm io de Maclaurin de grau 5. O program a deverá pedir ao ut ilizador para int roduzir qual a função e qual o int ervalo para x. Com o result ado deverá m ost rar qual o polinóm io e gerar um gráfico com a função e o polinóm io.sugest ão: ut ilize as m esm as funções de com put ação sim bólica t aylor, sym 2poly, polyval
que foram ut ilizadas no exercício 3.
5. Escreva em Mat lab a função “GeraTaylor” para det erm inar o polinóm io de
Maclaurin de grau 9 que aproxim a um a função. O parâm et ro de ent rada seria a própria função. Os parâm et ros de saída ser ia um a var iável sim bólica com a expressão do polinóm io de Maclaur in de grau 9. Com pare os result ados obt idos com o program a do exercício 4.
6. Dada a função sin( x) , escreva um program a em Mat Lab que perm it a:
a. det erm inar os polinóm ios de Maclaurin P5( x) , P7( x) e P9( x) .
Sug: ut ilize a função GeraTaylor do exercício 5
b. const ruir num m esm o gráfico a função sin( x) e os polinóm ios de Maclaurin det erm inados na alinha a) no int ervalo –pi ≤ x ≤ pi
c. visualizar um a t abela com 4 colunas que cont enham os valores para x, sin( x) , P9( x) , E9( x) = sin( x) - P9( x) avaliados em 10 pont os equidist ant es do int ervalo [ - 1,1] . Most rar os dados no form at o long.
d. const ruir o gráfico com o erro de t runcat ura E9( x) para –1 ≤ x ≤ 1 . e. m ost re analit icam ent e que se | x|≤1 ent ão verifica- se que:
| E9( x) | < 1/ 10! ≤ 2.75574 x 10- 7
Com pare est e result ado com os dados da t abela da alinha c e com o gráfico do erro da alinha d.
7. Dada a função cos( x) , escreva um program a em Mat Lab que perm it a: a. det erm inar os polinóm ios de Maclaurin P4( x) , P6( x) e P8( x)
Sug: ut ilize a função GeraTaylor do exercício 5
b. desenhar num m esm o gráfico a função cos( x) e os polinóm ios de Maclaurin det erm inados na alinha a) no int ervalo –pi ≤ x ≤ pi
d. const ruir o gráfico com o erro de t runcat ura E8( x) para –1 ≤ x ≤ 1 .
e. m ost re analit icam ent e que se | x|≤1 ent ão verifica- se que: