Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

> restart:
> with(plots):
> with(linalg):
Warning, new definition for norm
Warning, new definition for trace
POLINÔMIO DE HERMITE
EXEMPLO1: Interpole a função e sua derivada pelo Polinômio de Hermite, usando a tabela abaixo, 
onde por g(x) estamos denotando a devidada de f(x)
Queremos interpolar a função e sua derivada. Multiplicidade 2. Usando três pontos o grau do 
polinômio de Hermite é 
2+2+2-1=5
> x0:=0.0:
> x1:=1.0:
> x2:=2.0:
O valor da função f(x)=x^2
> f0:=0.0:
> f1:=1.0:
> f2:=4.0:
Vamos denotar g valor da derivada g(x)=f ' (x) 
> g0:=0.0:
> g1:=2.0:
> g2:=4.0:
> 
CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA CADA PONTO UM POLINÔMIO.
NESSE CASO OS PPOLINÔMIOS SÃO DE GRAU 2
> L0:=(x-x1)*(x-x2)/((x0-x1)*(x0-x2)):;
> L1:=(x-x0)*(x-x2)/((x1-x0)*(x1-x2)):;
> L2:=(x-x0)*(x-x1)/((x2-x0)*(x2-x1)):;
> LL0:=plot([L0(x)], x=x0..x2, color=[red], style=[line]):
> LL1:=plot([L1(x)], x=x0..x2, color=[blue], style=[line]):
> LL2:=plot([L2(x)], x=x0..x2, color=[green], style=[line]):
> display(LL0,LL1,LL2);
Page 1
O Grafico acima é dos 3 polinômios de Lagrange de grau n=3. Note que os polinômios são ortogonais
CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE
> DL0:=evalf(diff(L0,x),3);
 := DL0 − 1.00 x 1.50
> DL1:=evalf(diff(L1,x),3);
 := DL1 − + 2.00 x 2.00
> DL2:=evalf(diff(L2,x),3);
 := DL2 − 1.00 x .500
> D0:=subs(x=x0, DL0);
 := D0 -1.50
> D1:=subs(x=x1, DL1);
 := D1 0
> D2:=subs(x=x2, DL2);
 := D2 1.500
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f
> PHI0:=evalf((1-2*D0*(x-x0))*(L0)^2,3);
 := PHI0 .250 ( ) + 1. 3.00 x ( ) − x 1.0 2 ( ) − x 2.0 2
> PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
 := PHI1 1.00 x2 ( ) − x 2.0 2
> PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3);Page 2
 := PHI2 .250 ( ) − 7.00 3.00 x x2 ( ) − x 1.0 2
> LPHI0:=plot([PHI0(x)], x=x0..x2, color=[red], style=[line]):
> LPHI1:=plot([PHI1(x)], x=x0..x2, color=[blue], style=[line]):
> LPHI2:=plot([PHI2(x)], x=x0..x2, color=[green], style=[line]):
> 
> display(LPHI0,LPHI1,LPHI2);
O grafico acima é a base da função base que interpola a função f(x). Note novamente que são 
polinômios de grau 5 e ortogonais.
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f
> PSI0:=(x-x0)*(L0*L0);
 := PSI0 .2500000000 x ( ) − x 1.0 2 ( ) − x 2.0 2
> PSI1:=(x-x1)*(L1)^2;
 := PSI1 1.000000000 ( ) − x 1.0 x2 ( ) − x 2.0 2
> PSI2:=(x-x2)*(L2)^2;
 := PSI2 .2500000000 ( ) − x 2.0 x2 ( ) − x 1.0 2
> LPS0:=plot([PSI0(x)], x=x0..x2, color=[red], style=[line]):
> LPS1:=plot([PSI1(x)], x=x0..x2, color=[blue], style=[line]):
> LPS2:=plot([PSI2(x)], x=x0..x2, color=[green], style=[line]):
> 
> display(LPS0,LPS1,LPS2);
Page 3
O grafico acima é a base da função base que interpola a função g(x). Note novamente que são 
polinômios de grau 5 e ortogonais.
POLINÔMIO DE HERMITE
Assim o polinômio de Hermite é dado por:( combinação dos elementos da base de f com a 
combinação dos elementos da base da derivada)
> P:=simplify(evalf(f0*PHI0+f1*PHI1+f2*PHI2+g0*PSI0+g1*PSI1+g2*PSI2,
3));
P 447.5000000 x7 18.84375000 x 87.56250000 x2 992.4687500 x3 2083. x6 + − + − := 
3628.750000 x5 2895. x4 + − 
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
> Q:=simplify(evalf(diff(P,x),3));
 := Q + − + − + − 3140. x6 18.80000000 175. x 2980. x2 12500. x5 18200. x4 11600. x3
VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS 
TABELADOS.
> a0:=subs(x=0, P);a1:=subs(x=1, P);a2:=subs(x=2, P);
 := a0 0
 := a1 1.0000
 := a2 4.000000
Page 4
> b0:=subs(x=0, Q);b1:=subs(x=1, Q);b2:=subs(x=2, Q);
 := b0 0
 := b1 2.0000
 := b2 4.000000
Se desejamos saber o valor aproximado de f(x) e g(x) no ponto x=0.6, temos:
> a3:=subs(x=0.6, P);
 := a3 .360000000
> b3:=subs(x=0.6, Q);
 := b3 1.20000000
Note que as tabelas foram construídas a partir da função f(x)=x^2. Consequentemente a função 
g(x)=f´(x)=2x
Assim é facil de f(0.6)=0.36 e g(0.6)=1.2, tendo assim uma excelente aproimação.
EXEMPLO 2:
INTERPOLAÇÃO DA FUNÇÃO f(x) e sua derivadas, usando três pontos. 
Queremos interpolar a função e sua derivada. Multiplicidade 2. Usando três pontos o grau do 
polinômio de Hermite é 
2+2+2-1=5
> x0:=0.0:
> x1:=1.0:
> x2:=2.0:
O valor da função f(x)
> f0:=1.00:
> f1:=2.71828:
> f2:=7.389056:
Vamos denotar g valor da derivada g(x)=f ' (x) 
> g0:=1.00:
> g1:=2.71828:
> g2:=7.389056:
> 
CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA CADA PONTO UM POLINÔMIO.
NESSE CASO OS PPOLINÔMIOS SÃO DE GRAU 2
> L0:=evalf((x-x1)*(x-x2)/((x0-x1)*(x0-x2)),3);
 := L0 .500 ( ) − x 1.0 ( ) − x 2.0
> L1:=evalf((x-x0)*(x-x2)/((x1-x0)*(x1-x2)),3);
 := L1 −1.00 x ( ) − x 2.0
> L2:=evalf((x-x0)*(x-x1)/((x2-x0)*(x2-x1)),3);
 := L2 .500 x ( ) − x 1.0
> LL0:=plot([L0(x)], x=x0..x2, color=[red], style=[line]):
Page 5
> LL1:=plot([L1(x)], x=x0..x2, color=[blue], style=[line]):
> LL2:=plot([L2(x)], x=x0..x2, color=[green], style=[line]):
> display(LL0,LL1,LL2):;
CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE
> DL0:=evalf(diff(L0,x),3);
 := DL0 − 1.00 x 1.50
> DL1:=evalf(diff(L1,x),3);
 := DL1 − + 2.00 x 2.00
> DL2:=evalf(diff(L2,x),3);
 := DL2 − 1.00 x .500
> D0:=evalf(subs(x=x0, DL0),3);
 := D0 -1.50
> D1:=subs(x=x1, DL1);
 := D1 0
> D2:=subs(x=x2, DL2);
 := D2 1.500
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f
> PHI0:=evalf((1-2*D0*(x-x0))*(L0)^2,3);
 := PHI0 .250 ( ) + 1. 3.00 x ( ) − x 1.0 2 ( ) − x 2.0 2
> PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
 := PHI1 1.00 x2 ( ) − x 2.0 2
> PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3);
 := PHI2 .250 ( ) − 7.00 3.00 x x2 ( ) − x 1.0 2
As funções acima é a base da função base que interpola a função f(x). {PHI0,PHI1,PHI2}
Note novamente que são polinômios de grau 5 e ortogonais.
> LPHI0:=plot([PHI0(x)], x=x0..x2, color=[red], style=[line]):
> LPHI1:=plot([PHI1(x)], x=x0..x2, color=[blue], style=[line]):
> LPHI2:=plot([PHI2(x)], x=x0..x2, color=[green], style=[line]):
> 
> display(LPHI0,LPHI1,LPHI2):;
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f
> PSI0:=(x-x0)*(L0*L0);
 := PSI0 .250000 x ( ) − x 1.0 2 ( ) − x 2.0 2
> PSI1:=(x-x1)*(L1)^2;
 := PSI1 1.0000 ( ) − x 1.0 x2 ( ) − x 2.0 2
> PSI2:=(x-x2)*(L2)^2;
 := PSI2 .250000 ( ) − x 2.0 x2 ( ) − x 1.0 2
Page 6
As funções acima é a base da função base que interpola a função g(x). {PSI0,PSI1,PSI2}
Note novamente que são polinômios de grau 5 e ortogonais.
> LPS0:=plot([PSI0(x)], x=x0..x2, color=[red], style=[line]):
> LPS1:=plot([PSI1(x)], x=x0..x2, color=[blue], style=[line]):
> LPS2:=plot([PSI2(x)], x=x0..x2, color=[green], style=[line]):
> 
> display(LPS0,LPS1,LPS2):;
Assim o Polinômio Interpolador de Hermite é dado por:( combinação dos elementos da base de f com 
a combinação dos elementos da base da derivada)
OBERVE QUE O POLINÔMIO TEM GRAU 5
> P:=simplify(evalf(f0*PHI0+f1*PHI1+f2*PHI2+g0*PSI0+g1*PSI1+g2*PSI2,
4));
P 446.9800000 x7 18.77625000 x 86.56125000 x2 988.3775000 x3 2080.030000 x6 + − + − := 
3622.085000 x5 2887.627500 x4 + − 
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
> Q:=simplify(evalf(diff(P,x),4));
 := Q + − + − + − 3129. x6 18.78000000 173.1000000 x 2965. x2 12480. x5 18110. x4 11550. x3
VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS 
TABELADOS.
f(x)
> a0:=subs(x=0, P);a1:=subs(x=1, P);a2:=subs(x=2, P);
 := a0 1.00000000
 := a1 2.71800
 := a2 7.3880000
> b0:=subs(x=0, Q);b1:=subs(x=1, Q);b2:=subs(x=2, Q);
 := b0 1.0000000
 := b1 2.71800
 := b2 7.3880000
> 
Se desejamos saber o valor aproximado de f(x) e g(x) no ponto x=1.3, temos:
> a3:=subs(x=1.3, P);
 := a3 3.668592420
> b3:=subs(x=1.3, Q);
 := b3 3.667080000
Note que as tabelas foram construídas a partir da função f(x)=exp(x). Consequentemente a função 
g(x)=f´(x)=exp(x)
Assim temos o seguinte valor "exato" para a função exponencial:
> aa3:=evalf(subs(x=1.3, exp(x)));
 := aa3 3.669296668Page 7
> bb3:=evalf(subs(x=1.3, exp(x)));
 := bb3 3.669296668
Podemos verificar o erro abosluto da aproximação da função e de sua derivada.
> e1:=abs(aa3-a3);
 := e1 .000704248
> e2:=abs(bb3-b3);:= e2 .002216668
EXEMPLO 3: ENVOLVENDO TEMPO EM (X) SEGUNDO, ESPAÇO EM METRO F(X) E 
VELOCIDADE F '(X)=G(X) EM METRO POR SEGUNDO
NOTE INICIALMENTE QUE O POLINOMIO DE HERMITE SERÁ DE GRAU 5
> x0:=0.0:
> x1:=0.5:
> x2:=1.0:
> 
O valor da função f(x)
> f0:=0.0:
> f1:=15.0:
> f2:=22.0:
Vamos denotar g valor da derivada g(x)=f ' (x) 
> g0:=18.86:
> g1:=20.47:
> g2:=19.38:
CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA CADA PONTO UM POLINÔMIO.
NESSE CASO OS PPOLINÔMIOS SÃO DE GRAU 3
> L0:=evalf((x-x1)*(x-x2)/((x0-x1)*(x0-x2)),3);
 := L0 2.00 ( ) − x .5 ( ) − x 1.0
> L1:=evalf((x-x0)*(x-x2)/((x1-x0)*(x1-x2)),3);
 := L1 −4.00 x ( ) − x 1.0
> L2:=evalf((x-x0)*(x-x1)/((x2-x0)*(x2-x1)),3);
 := L2 2.00 x ( ) − x .5
CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE
> DL0:=diff(L0,x);
 := DL0 − 4.00 x 3.000
> DL1:=diff(L1,x);
 := DL1 − + 8.00 x 4.000
> DL2:=diff(L2,x);
 := DL2 − 4.00 x 1.000
Page 8
> 
> D0:=subs(x=x0, DL0);
 := D0 -3.000
> D1:=subs(x=x1, DL1);
 := D1 0
> D2:=subs(x=x2, DL2);
 := D2 3.000
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f
> PHI0:=(1-2*D0*(x-x0))*(L0)^2;
 := PHI0 4.0000 ( ) + 1 6.000 x ( ) − x .5 2 ( ) − x 1.0 2
> PHI1:=(1-2*D1*(x-x1))*(L1)^2;
 := PHI1 16.0000 x2 ( ) − x 1.0 2
> PHI2:=(1-2*D2*(x-x2))*(L2)^2;
 := PHI2 4.0000 ( ) − 7.0000 6.000 x x2 ( ) − x .5 2
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f
> PSI0:=(x-x0)*(L0*L0);
 := PSI0 4.0000 x ( ) − x .5 2 ( ) − x 1.0 2
> PSI1:=(x-x1)*(L1*L1);
 := PSI1 16.0000 ( ) − x .5 x2 ( ) − x 1.0 2
> PSI2:=(x-x2)*(L2)^2;
 := PSI2 4.0000 ( ) − x 1.0 x2 ( ) − x .5 2
POLINÔMIO DE HERMITE
OBERVE QUE O POLINÔMIO TEM GRAU 5
> P:=simplify(evalf(f0*PHI0+f1*PHI1+f2*PHI2+g0*PSI0+g1*PSI1+g2*PSI2,
3));
P 447.5000000 x7 18.84375000 x 87.56250000 x2 992.4687500 x3 2083. x6 + − + − := 
3628.750000 x5 2895. x4 + − 
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
> Q:=simplify(evalf(diff(P,x),3));
 := Q + + + − + − 1480. x6 18.80000000 21.40000000 x 1040. x2 5920. x5 8450. x4 5080. x3
> a0:=subs(x=0.0, P);a1:=subs(x=0.5, P);a2:=subs(x=1.0, P);
 := a0 0
 := a1 15.0000
 := a2 22.00000000
> b0:=subs(x=0, Q); b1:=subs(x=0.5, Q); b2:=subs(x=1.0, Q); 
Page 9
 := b0 18.90000
 := b1 20.5000
 := b2 19.500000
Note que os valores obtidos acima, asseguram que o polinômio interpola corretamente a função e sua 
derivada.
A seguir as respostas dos itens do exercício.
A POSIÇÃO E A VELOCIDADE DO CARRO NO TEMPO PASSADO DE 0.8 SEGUNDOS É 
DADO POR:
> a4:=subs(x=0.8, P); b4:=subs(x=0.8, Q);
 := a4 19.13817600
 := b4 11.088160
Suponhamos que a partir da aproximação da derivada, queira se obter a velocidade máximo do carro 
na distância percorrida.
Nesse caso, como temos um polinômio de grau 5 então devemos resolver por um método numérico. 
Assim vamos empregar o Método de Newton_Raphson, para determinar os pontos críticos de da 
derivada do polinômio Q(x) que dá uma aproximação para a derivda.
> DQ:=simplify(diff(Q,x));
DQ 21.34275000 2078.018250 x 15260.77013 x2 8920.719000 x5 29620.61625 x4 + − + − := 
33858.05300 x3 + 
ACHAR OS PONTOS CRÍTICOS; VAMOS APLICAR O METODO DE NEWTON-RAPHSON
MÉTODO DE NEWTON-RAPHSON
> D1Q:=simplify(diff(DQ,x));
 := D1Q − + − 2812.800000 x2 4375.200000 x 1377.600000
> 
Fazendo o método iterativo de Newton_Raphson para determinar a razi de Q(x). t0,t1,t2......
> t0:=0.1;
 := t0 .1
> DQ0:=evalf(subs(x=t0, DQ),5); D1Q0:=evalf(subs(x=t0, D1Q),5);
 := DQ0 77.77
 := D1Q0 -968.2
> t1:=t0-(DQ0/D1Q0);
 := t1 .1803243132
> DQ1:=subs(x=t1, DQ); D1Q1:=subs(x=t1, D1Q);
 := DQ1 11.8214117
 := D1Q1 -680.108484
> t2:=t1-(DQ1/D1Q1);
 := t2 .1977059692
Page 10
> DQ2:=subs(x=t2, DQ); D1Q2:=subs(x=t2, D1Q);
> t3:=t2-(DQ2/D1Q2);
 := DQ2 .5027573
 := D1Q2 -622.542585
 := t3 .1985135562
> erro:=abs(t3-t2);
 := erro .0008075870
> DQ3:=subs(x=t3, DQ); D1Q3:=subs(x=t3, D1Q);
> t4:=t3-(DQ3/D1Q3);
> erro:=abs(t4-t3);
 := DQ3 .0010637
 := D1Q3 -619.909276
 := t4 .1985152721
 := erro .17159 10-5
Assim a raiz aproximada da funçao Q(x)=P'(x) é x=0.19836. Nesse caso a velocidade máxima é dada 
por:
> Vmax:=subs(x=t4, Q);
 := Vmax 35.72724147
VELOCIDADE MAXIMA EM METROS POR SEGUNDOS NO INTERVALO DE 0 A 1 
SEGUNDOS DA TABELA, O QUE SIGNIFICA EM KM POR HORA:
> vam:=3.6*Vmax;
 := vam 128.6180693
CALCULO DA VELOCIDADE MÍNIMA
> t0:=0.6;
 := t0 .6
> DQ0:=subs(x=t0, DQ); D1Q0:=subs(x=t0, D1Q);
 := DQ0 -46.94560
 := D1Q0 234.9120
> 
> t1:=t0-(DQ0/D1Q0);
 := t1 .7998433456
> DQ1:=subs(x=t1, DQ); D1Q1:=subs(x=t1, D1Q);
 := DQ1 12.4822979
 := D1Q1 322.3875580
> t2:=t1-(DQ1/D1Q1);
 := t2 .7611250465
Page 11
> DQ2:=subs(x=t2, DQ); D1Q2:=subs(x=t2, D1Q);
> t3:=t2-(DQ2/D1Q2);
 := DQ2 -.0388224
 := D1Q2 322.9873746
 := t3 .7612452444
> erro:=abs(t3-t2);
 := erro .0001201979
> DQ3:=subs(x=t3, DQ); D1Q3:=subs(x=t3, D1Q);
> t4:=t3-(DQ3/D1Q3);
> erro:=abs(t4-t3);
 := DQ3 .9 10-6
 := D1Q3 322.9985638
 := t4 .7612452416
 := erro .28 10-8
Assim a raiz aproximada da funçao Q(x)=P'(x) é x=0.761195 Nesse caso a velocidade máxima é dada 
por:
> Vmin:=subs(x=t4, Q);
 := Vmin 10.84522827
VELOCIDADE MINIMA EM METROS POR SEGUNDOS NO INTERVALO DE 0 A 1 
SEGUNDOS DA TABELA, O QUE SIGNIFICA EM KM POR HORA:
> vim:=3.6*Vmin;
 := vim 39.04282177
> 
EXEMPL 4: Determine o polinômio de Hermite para os 4 pontos tabelados. Observe que agora o grau 
do polinômio é : 
São 4 pontos então teremos um polinômio de grau n=2*4-1=7
> x0:=0:
> x1:=0.5:
> x2:=1.0:
> x3:=1.5:
O valor da função f(x)
> f0:=0.0:
> f1:=15.0:
> f2:=22.0:
> f3:=21.0:
Vamos denotar g valor da derivada g(x)=f ' (x) Page 12
> g0:=18.86:
> g1:=20.47:
> g2:=19.38:
> g3:=21.00:
CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA CADA PONTO UM POLINÔMIO.
NESSE CASO OS PPOLINÔMIOS SÃO DE GRAU 3
> L0:=evalf((x-x1)*(x-x2)*(x-x3)/((x0-x1)*(x0-x2)*(x0-x3)),3);
 := L0 −1.33 ( ) − x .5 ( ) − x 1.0 ( ) − x 1.5
> L1:=evalf((x-x0)*(x-x2)*(x-x3)/((x1-x0)*(x1-x2)*(x1-x3)),3);
 := L1 4.00 x ( ) − x 1.0 ( ) − x 1.5
> L2:=evalf((x-x0)*(x-x1)*(x-x3)/((x2-x0)*(x2-x1)*(x2-x3)),3);
 := L2 −4.00 x ( ) − x .5 ( ) − x 1.5
> L3:=evalf((x-x0)*(x-x1)*(x-x2)/((x3-x0)*(x3-x1)*(x3-x2)),3);
 := L3 1.33 x ( ) − x .5 ( ) − x 1.0
> LL0:=plot([L0(x)], x=x0..x3, color=[red], style=[line]):
> LL1:=plot([L1(x)], x=x0..x3, color=[blue], style=[line]):
> LL2:=plot([L2(x)], x=x0..x3, color=[green], style=[line]):
> LL3:=plot([L3(x)], x=x0..x3, color=[black], style=[line]):
> display(LL0,LL1,LL2,LL3);
OBSERVE PELO GRÁFICO QUE OS QUATRO POLINÔMIOS DE LAGRANGE SÃO 
ORTOGONAIS EM RELAÇÃO AOS PONTOS TABELADOS.
CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGEPage 13
> DL0:=diff(L0,x):;
> DL1:=diff(L1,x):;
> DL2:=diff(L2,x):;
> DL3:=diff(L3,x):;
> D0:=subs(x=x0, DL0):;
> D1:=subs(x=x1, DL1):;
> D2:=subs(x=x2, DL2):;
> D3:=subs(x=x3, DL3):;
> 
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f
> PHI0:=(1-2*D0*(x-x0))*(L0)^2;
 := PHI0 1.7689 ( ) + 1 7.3150 x ( ) − x .5 2 ( ) − x 1.0 2 ( ) − x 1.5 2
> PHI1:=(1-2*D1*(x-x1))*(L1)^2;
 := PHI1 32.00000000 x3 ( ) − x 1.0 2 ( ) − x 1.5 2
> PHI2:=(1-2*D2*(x-x2))*(L2)^2;
 := PHI2 16.0000 ( ) − 3.00000 2.0000 x x2 ( ) − x .5 2 ( ) − x 1.5 2
> PHI3:=(1-2*D3*(x-x3))*(L3)^2;
 := PHI3 1.7689 ( ) − 11.97250 7.3150 x x2 ( ) − x .5 2 ( ) − x 1.0 2
> LPHI0:=plot([PHI0(x)], x=x0..x3, color=[red], style=[line]):
> LPHI1:=plot([PHI1(x)], x=x0..x3, color=[blue], style=[line]):
> LPHI2:=plot([PHI2(x)], x=x0..x3, color=[green], style=[line]):
> LPHI3:=plot([PHI3(x)], x=x0..x3, color=[black], style=[line]):
> display(LPHI0,LPHI1,LPHI2, LPHI3);
Page 14
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f
> PSI0:=evalf((x-x0)*(L0*L0),3);
 := PSI0 1.77 x ( ) − x .5 2 ( ) − x 1.0 2 ( ) − x 1.5 2
> PSI1:=evalf((x-x1)*(L1*L1),3);
 := PSI1 16.0 ( ) − x .5 x2 ( ) − x 1.0 2 ( ) − x 1.5 2
> PSI2:=evalf((x-x2)*(L2)^2,3);
 := PSI2 16.0 ( ) − x 1.0 x2 ( ) − x .5 2 ( ) − x 1.5 2
> PSI3:=evalf((x-x3)*(L3)^2,3);
 := PSI3 1.77 ( ) − x 1.5 x2 ( ) − x .5 2 ( ) − x 1.0 2
> LPS0:=plot([PSI0(x)], x=x0..x3,color=[red], style=[line]):
> LPS1:=plot([PSI1(x)], x=x0..x3, color=[blue], style=[line]):
> LPS2:=plot([PSI2(x)], x=x0..x3, color=[green], style=[line]):
> LPS3:=plot([PSI3(x)], x=x0..x3, color=[black], style=[line]):
> display(LPS0,LPS1,LPS2,LPS3);
Page 15
POLINÔMIO DE HERMITE
OBERVE QUE O POLINÔMIO TEM GRAU 7
> P:=simplify(evalf(f0*PHI0+f1*PHI1+f2*PHI2+f3*PHI3+g0*PSI0+g1*PSI1+
g2*PSI2+g3*PSI3,4));
P 212.3977500 x7 18.77625000 x 10.67137500 x2 346.3361875 x3 987.3527500 x6 + + + − := 
1692.901188 x5 1271.730000 x4 + − 
> 
> LP0:=plot([P(x)], x=x0..x3, color=[black], style=[point]):
> display(LP0);
Page 16
> 
CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE
> Q:=simplify(evalf(diff(P,x),5));
Q 18.77625000 21.34275000 x 1039.009125 x2 5086.923375 x3 1486.786500 x6 + + − + := 
5924.123250 x5 8464.513250 x4 − + 
> 
> LQ0:=plot([Q(x)], x=x0..x3, color=[black], style=[point]):
> display(LQ0);
Page 17
VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS 
TABELADOS.
> a0:=subs(x=0.0, P);a1:=subs(x=0.5, P);a2:=subs(x=1.0, 
P);a3:=subs(x=1.5, P);
 := a0 0
 := a1 15.00000000
 := a2 22.00000000
 := a3 20.84463281
> b0:=subs(x=0, Q); b1:=subs(x=0.5, Q); b2:=subs(x=1.0, Q); 
b3:=subs(x=1.5, Q);
 := b0 18.77625000
 := b1 20.4687500
 := b2 19.38125000
 := b3 20.9081251
Para calcular a velocidade máxima devemos determinar o valor máximo da função Q(x) que 
representa a velocidade.
Note que convertendo 90 Km/h=25m/s. OBSERVE PELO GRAFICO ABAIXO A VELOCIDADE 
FOI SUPERIOR A 104,26 metros por segundo
que representa=104,26*3.6=375,34 Km/h. nOTE QUE PELO GRÁFICO A VELOCIDADE 
MAXIMA É ATINGIDA PROXIMO AO PONTO 1. pARA SE CALCULAR PRECISAMENTE O 
Page 18
VALOR MAXIMO DA DERIVADA,
TEMOS QUE CALCULAR INICIALMENTE ENCONTRAR OS PONTOS CRÍTICOS, OU SEJA 
Q'(X)=0. PARA ISSO PODE SER USADO O METODO NUMÉRICO DE NEWTON-RAPHSON, 
POR EXEMPLO
> DQ:=diff(Q,x):;
ACHAR OS PONTOS CRÍTICOS; VAMOS APLICAR O METODO DE NEWTON-RAPHSON
MÉTODO DE NEWTON-RAPHSON
> D1Q:=diff(DQ,x):;
> t0:=0.3;
 := t0 .3
> DQ0:=subs(x=t0, DQ); D1Q0:=subs(x=t0, D1Q);
 := DQ0 -32.8480794
 := D1Q0 -770.039094
> 
> t1:=t0-(DQ0/D1Q0);
 := t1 .2573423224
> DQ1:=subs(x=t1, DQ); D1Q1:=subs(x=t1, D1Q);
 := DQ1 2.3978516
 := D1Q1 -868.417191
> t2:=t1-(DQ1/D1Q1);
 := t2 .2601034971
> DQ2:=subs(x=t2, DQ); D1Q2:=subs(x=t2, D1Q);
> t3:=t2-(DQ2/D1Q2);
 := DQ2 .0049796
 := D1Q2 -864.740890
 := t3 .2601092556
> erro:=abs(t3-t2);
 := erro .57585 10-5
> DQ3:=subs(x=t3, DQ); D1Q3:=subs(x=t3, D1Q);
> t4:=t3-(DQ3/D1Q3);
> erro:=abs(t4-t3);
 := DQ3 -.9 10-6
 := D1Q3 -864.732791
 := t4 .2601092546
 := erro .10 10-8
> DQ4:=subs(x=t4, DQ); D1Q4:=subs(x=t4, D1Q);
> t5:=t4-(DQ4/D1Q4); Page 19
> erro:=abs(t4-t3);
 := DQ4 .2 10-6
 := D1Q4 -864.732794
 := t5 .2601092548
 := erro .10 10-8
> DQ5:=subs(x=t5, DQ); D1Q5:=subs(x=t5, D1Q);
> t6:=t5-(DQ5/D1Q5);
> erro:=abs(t5-t4);
 := DQ5 .8 10-6
 := D1Q5 -864.732792
 := t6 .2601092557
 := erro .2 10-9
> DQ6:=subs(x=t6, DQ); D1Q6:=subs(x=t6, D1Q);
> t7:=t6-(DQ6/D1Q6);
> erro:=abs(t6-t5);
 := DQ6 -.2 10-6
 := D1Q6 -864.732790
 := t7 .2601092555
 := erro .9 10-9
> 
Assim a raiz aproximada da funçao Q(x)=P'(x) é x=0.523806. Nesse caso a velocidade máxima é 
dada por:
> Vmax:=subs(x=t7, Q);
 := Vmax 37.21699616
VELOCIDADE MAXIMA EM METROS POR SEGUNDOS NO INTERVALO DE 0 A 5 
SEGUNDOS DA TABELA, O QUE SIGNIFICA EM KM POR HORA:
> 
> vam:=3.6*Vmax;
 := vam 133.9811862
 POLINÔMIOS POR PARTES DE HERMITE
Vamos calcular para cada dois pontos consectivos um polinomio de Hermite de grau 2+2-1=3
> restart:
> with(plots):
Page 20
> with(linalg):
Warning, new definition for norm
Warning, new definition for trace
> x0:=0.0:
> x1:=0.5:
> x2:=1.0:
> x3:=1.5:
O valor da função f(x)
> f0:=0.0:
> f1:=15.0:
> f2:=22.0:
> f3:=21.0:
Vamos denotar g valor da derivada g(x)=f ' (x) 
> g0:=18.86:
> g1:=20.47:
> g2:=19.38:
> g3:=21.00:
CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA CADA PONTO UM POLINÔMIO.
NESSE CASO OS POLINÔMIOS SÃO DE GRAU 3; 
Primeiro polinômio por partes envolvendo os pontos x0 e x1
> L0:=evalf((x-x1)/((x0-x1)),3);
 := L0 − + 2.00 x 1.00
> L1:=evalf((x-x0)/((x1-x0)),3);
 := L1 2.00 x
CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE
> DL0:=diff(L0,x);
 := DL0 -2.00
> DL1:=diff(L1,x);
 := DL1 2.00
> D0:=subs(x=x0, DL0);
 := D0 -2.00
> D1:=subs(x=x1, DL1);
 := D1 2.00
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f
> PHI0:=(1-2*D0*(x-x0))*(L0)^2;
 := PHI0 ( ) + 1 4.00 x ( )− + 2.00 x 1.00 2
> PHI1:=(1-2*D1*(x-x1))*(L1)^2;
 := PHI1 4.0000 ( ) − 3.000 4.00 x x2
Page 21
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f
> PSI0:=(x-x0)*(L0*L0);
 := PSI0 x ( )− + 2.00 x 1.00 2
> PSI1:=(x-x1)*(L1*L1);
 := PSI1 4.0000 ( ) − x .5 x2
POLINÔMIO DE HERMITE: Para o primeiro intervalo temos o seguinte polinômio de grau 3:
> P1:=evalf(f0*PHI0+f1*PHI1+g0*PSI0+g1*PSI1,3);
 := P1 + + 60.0 ( ) − 3.00 4.00 x x2 18.9 x ( )− + 2.00 x 1.00 2 82.0 ( ) − x .5 x2
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
> Q1:=evalf(diff(P1,x),3);
Q1 158. x2 120. ( ) − 3.00 4.00 x x 18.9 ( )− + 2.00 x 1.00 2 75.6 x ( )− + 2.00 x 1.00− + + − := 
164. ( ) − x .5 x + 
VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS 
TABELADOS.
f(x)= g(x)
> a0:=subs(x=0, P1);a1:=subs(x=0.5, P1);
 := a0 0
 := a1 15.000000
> b0:=subs(x=0, Q1); b1:=subs(x=0.5, Q1); 
 := b0 18.90000
 := b1 20.5000
Note que os valores obtidos acima, asseguram que o polinômio interpola corretamente a função e sua 
derivada.
A seguir as respostas dos itens do exercício.
Polinômio de Hermite de grau 3 para o segundo intervalo: [X1, X2]
> L1:=evalf((x-x2)/((x1-x2)),3);
 := L1 − + 2.00 x 2.00
> L2:=evalf((x-x1)/((x2-x1)),3);
 := L2 − 2.00 x 1.00
CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE
> DL1:=diff(L1,x);
 := DL1 -2.00
> DL2:=diff(L2,x);
Page 22
 := DL2 2.00
> D1:=subs(x=x1, DL1);
 := D1 -2.00
> D2:=subs(x=x2, DL2);
 := D2 2.00
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f
> PHI1:=(1-2*D1*(x-x1))*(L1)^2;
 := PHI1 ( )− + 1.000 4.00 x ( )− + 2.00 x 2.00 2
> PHI2:=(1-2*D2*(x-x2))*(L2)^2;
 := PHI2 ( ) − 5.000 4.00 x ( ) − 2.00 x 1.00 2
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f
> PSI1:=(x-x1)*(L1*L1);
 := PSI1 ( ) − x .5 ( )− + 2.00 x 2.00 2
> PSI2:=(x-x2)*(L2*L2);
 := PSI2 ( ) − x 1.0 ( ) − 2.00 x 1.00 2
POLINÔMIO DE HERMITE PARA O SEGUNDO INTERVALO:
> P2:=f1*PHI1+f2*PHI2+g1*PSI1+g2*PSI2;
P2 15.0 ( )− + 1.000 4.00 x ( )− + 2.00 x 2.00 2 22.0 ( ) − 5.000 4.00 x ( ) − 2.00 x 1.00 2 + := 
20.47 ( ) − x .5 ( )− + 2.00 x 2.00 2 19.38 ( ) − x 1.0 ( ) − 2.00 x 1.00 2 + + 
Fazendo uma simplificação temos:
> P22:simplify(P2);
− + − + 107.7400000 x2 92.66000000 x 10.32000000 47.40000000 x3
CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE
> Q2:=diff(P2,x);
Q2 80.470 ( )− + 2.00 x 2.00 2 60.000 ( )− + 1.000 4.00 x ( )− + 2.00 x 2.00 − := 
68.620 ( ) − 2.00 x 1.00 2 88.000 ( ) − 5.000 4.00 x ( ) − 2.00 x 1.00 − + 
81.8800 ( ) − x .5 ( )− + 2.00 x 2.00 77.5200 ( ) − x 1.0 ( ) − 2.00 x 1.00 − + 
Fazendo uma simplificação temos:
> Q22:=simplify(Q2);
 := Q22 − + 142.2000000 x2 215.4800000 x 92.66000000
VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS 
TABELADOS.
f(x)= g(x)=exp(x)
> a0:=subs(x=0.5, P2);a1:=subs(x=1.0, P2);
 := a0 15.00000000
 := a1 22.00000000
> b0:=subs(x=0.5, Q2); b1:=subs(x=1.0, Q2); 
Page 23
 := b0 20.47000000
 := b1 19.38000000
Note que os valores obtidos acima, asseguram que o polinômio interpola corretamente a função e sua 
derivada.
Note que nos extremos do intervalo em comum com os dois Polinômios por partes temos:
P1(0.5)=P2(0.5)=22.0 (assegurando a continuidade). 
Além disso Q1(0.5)=Q2(0.5)=19.38 (assegurando a continuidade da derivada)
INTERPOLANDO AGORA NO INTERVALO [X2, X3]
POLINÔMIO DE HERMITE
> L2:=evalf((x-x3)/((x2-x3)),3);
 := L2 − + 2.00 x 3.00
> L3:=evalf((x-x2)/((x3-x2)),3);
 := L3 − 2.00 x 2.00
CÁLCULO DADERIVADAS DOS POLINÔMIOS DE LAGRANGE
> DL2:=diff(L2,x);
 := DL2 -2.00
> DL3:=diff(L3,x);
 := DL3 2.00
> D2:=subs(x=x2, DL2);
 := D2 -2.00
> D3:=subs(x=x3, DL3);
 := D3 2.00
> 
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f
> PHI2:=(1-2*D2*(x-x2))*(L2)^2;
 := PHI2 ( )− + 3.000 4.00 x ( )− + 2.00 x 3.00 2
> PHI3:=(1-2*D3*(x-x3))*(L3)^2;
 := PHI3 ( ) − 7.000 4.00 x ( ) − 2.00 x 2.00 2
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f
> PSI2:=evalf((x-x2)*(L2*L2),3);
 := PSI2 ( ) − x 1.0 ( )− + 2.00 x 3.00 2
> PSI3:=evalf((x-x3)*(L3*L3),3);
 := PSI3 ( ) − x 1.5 ( ) − 2.00 x 2.00 2
POLINÔMIO DE HERMITE
OBERVE QUE O POLINÔMIO TEM GRAU 3
Page 24
> P3:=evalf(f2*PHI2+f3*PHI3+g2*PSI2+g3*PSI3,3);
P3 22.0 ( )− + 3.00 4.00 x ( )− + 2.00 x 3.00 2 21.0 ( ) − 7.00 4.00 x ( ) − 2.00 x 2.00 2 + := 
19.4 ( ) − x 1.0 ( )− + 2.00 x 3.00 2 21.0 ( ) − x 1.5 ( ) − 2.00 x 2.00 2 + + 
Fazendo uma simplificação temos:
> P33:=simplify(P3);
 := P33 − + − + 664.4000000 x2 815.4000000 x 306.6000000 177.6000000 x3
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
> Q3:=evalf(diff(P3,x),3);
Q3 107. ( )− + 2.00 x 3.00 2 88.0 ( )− + 3.00 4.00 x ( )− + 2.00 x 3.00 63.0 ( ) − 2.00 x 2.00 2 − − := 
84.0 ( ) − 7.00 4.00 x ( ) − 2.00 x 2.00 77.6 ( ) − x 1.0 ( )− + 2.00 x 3.00 + − 
84.0 ( ) − x 1.5 ( ) − 2.00 x 2.00 + 
Fazendo uma simplificação temos:
> Q33:=simplify(Q3);
 := Q33 − + 531.2000000 x2 1324. x 811.8000000
VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS 
TABELADOS.
f(x)= g(x)=exp(x)
> a0:=subs(x=1.0, P3);a1:=subs(x=1.5, P3);
 := a0 22.00000000
 := a1 21.00000000
> b0:=subs(x=1.0, Q3); b1:=subs(x=1.5, Q3); 
 := b0 19.0000000
 := b1 21.0000000
FAZENDO OS GRÁFICO DOS POLINÔMIOS DE HERMITE POR PARTES EM CADA 
INTERVALO:
> H01:=plot([P1(x)], x=x0..x1, color=[red], style=[line]):
> H12:=plot([P2(x)], x=x1..x2, color=[blue], style=[line]):
> H23:=plot([P3(x)], x=x2..x3, color=[green], style=[line]):
O gráficos de cada polinômio por partes de Hermite é dado abaixo:
> display(H01,H12,H23);
Page 25
> G01:=plot([Q1(x)], x=x0..x1, color=[red], style=[line]):
> G12:=plot([Q2(x)], x=x1..x2, color=[blue], style=[line]):
> G23:=plot([Q3(x)], x=x2..x3, color=[green], style=[line]):
Os gráficos da cada derivada do polinômio de Hermite por partes é dado abaixo
> 
> display(G01,G12,G23);
Page 26
Suponhamos que queiramos calcular o valor da função aproximada e de sua derivada nos pontos 
x=0.3; x=0.7 e x=1.1. então
> c0:=subs(x=0.3, P1); c1:=subs(x=0.7, P2); c2:=subs(x=1.1, P3);
 := c0 9.15120000
 := c1 18.00760000
 := c2 22.80160000
Para as derivadas temos:
> d0:=subs(x=0.3, Q1); d1:=subs(x=0.7, Q2); d2:=subs(x=1.1, Q3);
 := d0 34.6920000
 := d1 11.50200000
 := d2 -1.8480000
> 
Page 27

Mais conteúdos dessa disciplina