> restart: > with(plots): > with(linalg): 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 é N=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); 1 0.8 0.6 0.4 0.2 0 0.5 1 x 1.5 2 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 K 1.50 > DL1:=evalf(diff(L1,x),3); DL1 := K2.00 x C2.00 > DL2:=evalf(diff(L2,x),3); DL2 := 1.00 x K0.500 > D0:=subs(x=x0, DL0); D0 := K1.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); (1) (2) (3) (4) (5) (6) (7) 2 2 PHI0 := 0.250 1. C3.00 x x K1.0 x K2.0 > PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3); 2 2 PHI1 := 1.00 x x K2.0 > PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3); 2 2 PHI2 := 0.250 7.00 K 3.00 x x x K1.0 > LPHI0:=plot([PHI0(x)], x=x0..x2, color=[red], style=[line]): (7) (8) (9) > 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); 1 0.8 0.6 0.4 0.2 0 0 0.5 1 x 1.5 2 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); (10) 2 2 PSI0 := 0.2500000000 x x K1.0 x K2.0 > PSI1:=(x-x1)*(L1)^2; 2 2 PSI1 := 1.000000000 x K1.0 x x K 2.0 > PSI2:=(x-x2)*(L2)^2; 2 2 PSI2 := 0.2500000000 x K2.0 x x K1.0 > LPS0:=plot([PSI0(x)], x=x0..x2, color=[red], style=[line]): (10) (11) (12) > 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); 0.2 0.1 0 0.5 1 x 1.5 2 K0.1 K0.2 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 são 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)); # ESSE É POLINÔMIO DE HERMITE 2 P := 1.000000 x CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE (13) > Q:=simplify(evalf(diff(P,x),3));# DERIVADA DO POLINÔMIO DE HERMITE Q := 2.00 x (14) 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.000000 (15) a2 := 4.000000 > b0:=subs(x=0, Q);b1:=subs(x=1, Q);b2:=subs(x=2, Q); b0 := 0. b1 := 2.00 (16) b2 := 4.00 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 := 0.36000000 (17) > b3:=subs(x=0.6, Q); b3 := 1.200 (18) 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 é N=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 := 0.500 x K 1.0 x K2.0 > L1:=evalf((x-x0)*(x-x2)/((x1-x0)*(x1-x2)),3); L1 := K1.00 x x K 2.0 > L2:=evalf((x-x0)*(x-x1)/((x2-x0)*(x2-x1)),3); L2 := 0.500 x x K1.0 > LL0:=plot([L0(x)], x=x0..x2, color=[red], style=[line]): (19) (20) (21) > 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 K 1.50 > DL1:=evalf(diff(L1,x),3); DL1 := K2.00 x C2.00 > DL2:=evalf(diff(L2,x),3); DL2 := 1.00 x K0.500 > D0:=evalf(subs(x=x0, DL0),3); D0 := K1.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); 2 2 PHI0 := 0.250 1. C3.00 x x K1.0 x K2.0 > PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3); 2 2 PHI1 := 1.00 x x K2.0 > PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3); 2 2 PHI2 := 0.250 7.00 K 3.00 x x x K1.0 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 (22) (23) (24) (25) (26) (27) (28) (29) (30) > PSI0:=(x-x0)*(L0*L0); 2 2 PSI0 := 0.250000 x x K1.0 x K2.0 > PSI1:=(x-x1)*(L1)^2; 2 2 PSI1 := 1.0000 x K1.0 x x K2.0 > PSI2:=(x-x2)*(L2)^2; 2 2 PSI2 := 0.250000 x K2.0 x x K1.0 (31) (32) (33) 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)); # ESSE É POLINÔMIO DE HERMITE 4 3 5 2 P := x C1.00000000 C0.0010000 x C0.20800000 x C0.024000 x C0.48500000 x (34) CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE > Q:=simplify(evalf(diff(P,x),4)); # DERIVADA DO POLINÔMIO DE HERMITE 3 2 4 Q := 1. C0.004000 x C0.6240 x C0.1200 x C0.9700 x (35) 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.71800000 a2 := 7.38800000 > b0:=subs(x=0, Q);b1:=subs(x=1, Q);b2:=subs(x=2, Q); b0 := 1. b1 := 2.718000 b2 := 7.388000 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); (36) (37) (38) (39) b3 := 3.667080000 (39) 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.669296668 (40) > bb3:=evalf(subs(x=1.3, exp(x))); bb3 := 3.669296668 (41) Podemos verificar o erro absoluto da aproximação da função e de sua derivada. > e1:=abs(aa3-a3); e1 := 0.000704248 (42) e2 := 0.002216668 (43) > e2:=abs(bb3-b3); EXEMPLO 3: 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) > 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 := K1.33 x K 0.5 x K1.0 x K1.5 > L1:=evalf((x-x0)*(x-x2)*(x-x3)/((x1-x0)*(x1-x2)*(x1-x3)),3); L1 := 4.00 x x K1.0 x K1.5 (44) (45) > L2:=evalf((x-x0)*(x-x1)*(x-x3)/((x2-x0)*(x2-x1)*(x2-x3)),3); L2 := K4.00 x x K0.5 x K1.5 > L3:=evalf((x-x0)*(x-x1)*(x-x2)/((x3-x0)*(x3-x1)*(x3-x2)),3); L3 := 1.33 x x K0.5 x K1.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); 1.0 0.8 0.6 0.4 0.2 0 0.5 1 1.5 x K0.2 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 LAGRANGE > DL0:=diff(L0,x):; > DL1:=diff(L1,x):; > DL2:=diff(L2,x):; (46) (47) > 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; 2 2 2 PHI0 := 1.7689 1 C7.3150 x x K0.5 x K1.0 x K1.5 > PHI1:=(1-2*D1*(x-x1))*(L1)^2; 3 2 2 PHI1 := 32.00000000 x x K1.0 x K1.5 > PHI2:=(1-2*D2*(x-x2))*(L2)^2; 2 2 2 PHI2 := 16.0000 3.00000 K 2.0000 x x x K0.5 x K1.5 > PHI3:=(1-2*D3*(x-x3))*(L3)^2; 2 2 2 PHI3 := 1.7689 11.97250 K 7.3150 x x x K0.5 x K1.0 > #LPHI0:=plot([PHI0(x)], x=x0..x3, color=[red], style=[line]): (48) (49) (50) (51) > #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); CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f > PSI0:=evalf((x-x0)*(L0*L0),3); 2 PSI0 := 1.77 x x K 0.5 > PSI1:=evalf((x-x1)*(L1*L1),3); 2 PSI1 := 16.0 x K0.5 x > PSI2:=evalf((x-x2)*(L2)^2,3); 2 PSI2 := 16.0 x K1.0 x > PSI3:=evalf((x-x3)*(L3)^2,3); 2 PSI3 := 1.77 x K1.5 x > #LPS0:=plot([PSI0(x)], x=x0..x3, x K 1.0 2 x K 1.5 2 (52) x K 1.0 2 x K 1.5 2 (53) x K 0.5 2 x K 1.5 2 (54) 2 (55) 2 x K 0.5 x K 1.0 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); POLINÔMIO DE HERMITE OBSERVE 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)); # ESSE É POLINÔMIO DE HERMITE 7 6 4 3 P := 18.77625000 x C212.39775 x K987.352750 x K1271.730000 x C346.336188 x 5 2 C1692.901188 x C10.6713750 x (56) > LP0:=plot([P(x)], x=x0..x3, color=[black], style=[point]): > display(LP0); 20 15 10 5 0 0 0.5 1 1.5 x CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE > Q:=simplify(evalf(diff(P,x),5)); # DERIVADA DO POLINÔMIO DE HERMITE 6 5 3 2 4 Q := 18.776 C1486.8 x K5924.1 x K5086.8 x C1039.0 x C8464.5 x C21.342 x > LQ0:=plot([Q(x)], x=x0..x3, color=[black], style=[point]): > display(LQ0); (57) 30 20 10 0 0.5 1 1.5 x K10 K20 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.00000007 a2 := 22.00000100 (58) a3 := 20.84463375 > 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.776 b1 := 20.4813750 b2 := 19.518000 (59) b3 := 21.56712 POLINÔMIOS POR PARTES DE HERMITE Vamos calcular para cada dois pontos consectivos um polinomio de Hermite de grau N=2+2-1=3 > restart: > with(plots): > with(linalg): > 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 DOIS PONTOS UM POLINÔMIO. ASSIM O GRAU SÃO 2*2-1= 3. 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 := K2.00 x C1.00 > L1:=evalf((x-x0)/((x1-x0)),3); L1 := 2.00 x (60) (61) CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE > DL0:=diff(L0,x); DL0 := K2.00 (62) DL1 := 2.00 (63) > DL1:=diff(L1,x); > D0:=subs(x=x0, DL0); D0 := K2.00 (64) D1 := 2.00 (65) > D1:=subs(x=x1, DL1); CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f > PHI0:=(1-2*D0*(x-x0))*(L0)^2; PHI0 := 1 C 4.00 x K2.00 x C 1.00 > PHI1:=(1-2*D1*(x-x1))*(L1)^2; 2 PHI1 := 4.0000 3.000 K4.00 x x 2 (66) (67) CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f > PSI0:=(x-x0)*(L0*L0); 2 PSI0 := x K2.00 x C1.00 > PSI1:=(x-x1)*(L1*L1); 2 PSI1 := 4.0000 x K0.5 x (68) (69) 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); # ESSE É POLINÔMIO DE HERMITE 2 2 2 P1 := 60.0 3.00 K4.00 x x C18.9 x K2.00 x C1.00 C82.0 x K0.5 x (70) CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE > Q1:=evalf(diff(P1,x),3); # DERIVADA DO POLINÔMIO DE HERMITE 2 2 Q1 := K158. x C120. 3.00 K4.00 x x C18.9 K2.00 x C1.00 K75.6 x K2.00 x C1.00 C164. x K0.5 x (71) 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 (72) (73) 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 := K2.00 x C2.00 > L2:=evalf((x-x1)/((x2-x1)),3); L2 := 2.00 x K1.00 (74) (75) CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE > DL1:=diff(L1,x); DL1 := K2.00 (76) DL2 := 2.00 (77) D1 := K2.00 (78) > DL2:=diff(L2,x); > D1:=subs(x=x1, DL1); > 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; 2 PHI1 := K1.000 C4.00 x K2.00 x C2.00 > PHI2:=(1-2*D2*(x-x2))*(L2)^2; 2 PHI2 := 5.000 K4.00 x 2.00 x K1.00 CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f > PSI1:=(x-x1)*(L1*L1); 2 PSI1 := x K 0.5 K2.00 x C2.00 > PSI2:=(x-x2)*(L2*L2); 2 PSI2 := x K1.0 2.00 x K 1.00 POLINÔMIO DE HERMITE PARA O SEGUNDO INTERVALO: > P2:=f1*PHI1+f2*PHI2+g1*PSI1+g2*PSI2; # ESSE É POLINÔMIO DE HERMITE 2 P2 := 15.0 K1.000 C4.00 x K2.00 x C2.00 C 22.0 5.000 K 4.00 x 2.00 x K1.00 2 2 C20.47 x K0.5 K2.00 x C2.00 C19.38 x K 1.0 2.00 x K1.00 Fazendo uma simplificação temos: > P22:simplify(P2); 2 3 K107.7400000 x C92.6600000 x K10.32000000 C47.4000000 x CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE > Q2:=diff(P2,x); # DERIVADA 2 Q2 := 80.470 K2.00 x C2.00 K60.000 2 K 68.620 2.00 x K1.00 C88.000 K 0.5 K2.00 x C2.00 C77.5200 Fazendo uma simplificação temos: > Q22:=simplify(Q2); DO POLINÔMIO DE HERMITE K1.000 C4.00 x K2.00 x C2.00 5.000 K 4.00 x 2.00 x K1.00 K81.8800 x x K 1.0 2.00 x K1.00 (79) (80) (81) (82) (83) 2 (84) (85) (86) (87) 2 Q22 := 142.2000000 x K215.4800000 x C92.6600000 (87) 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 (88) a1 := 22.00000000 > b0:=subs(x=0.5, Q2); b1:=subs(x=1.0, Q2); b0 := 20.47000000 (89) 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 := K2.00 x C3.00 > L3:=evalf((x-x2)/((x3-x2)),3); L3 := 2.00 x K2.00 (90) (91) CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE > DL2:=diff(L2,x); DL2 := K2.00 (92) DL3 := 2.00 (93) D2 := K2.00 (94) D3 := 2.00 (95) > DL3:=diff(L3,x); > D2:=subs(x=x2, DL2); > D3:=subs(x=x3, DL3); CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f > PHI2:=(1-2*D2*(x-x2))*(L2)^2; PHI2 := K3.000 C4.00 x > PHI3:=(1-2*D3*(x-x3))*(L3)^2; PHI3 := 7.000 K4.00 x K2.00 x C3.00 2.00 x K2.00 2 2 (96) (97) CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f > PSI2:=evalf((x-x2)*(L2*L2),3); 2 PSI2 := x K 1.0 K2.00 x C3.00 > PSI3:=evalf((x-x3)*(L3*L3),3); 2 PSI3 := x K1.5 2.00 x K 2.00 (98) (99) POLINÔMIO DE HERMITE: OBERVE QUE O POLINÔMIO TEM GRAU 3 > P3:=evalf(f2*PHI2+f3*PHI3+g2*PSI2+g3*PSI3,3); # ESSE É POLINÔMIO DE HERMITE 2 2 P3 := 22.0 K3.00 C4.00 x K2.00 x C3.00 C 21.0 7.00 K 4.00 x 2.00 x K2.00 (100) 2 2 C19.4 x K1.0 K2.00 x C3.00 C21.0 x K 1.5 2.00 x K2.00 Fazendo uma simplificação temos: > P33:=simplify(P3); 2 3 P33 := K664.400000 x C815.400000 x K306.6000000 C177.6000000 x (101) CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE > Q3:=evalf(diff(P3,x),3); # DERIVADA DO POLINÔMIO DE HERMITE 2 Q3 := 107. K2.00 x C3.00 K88.0 K3.00 C4.00 x K2.00 x C3.00 K63.0 2.00 x (102) 2 K 2.00 C84.0 7.00 K4.00 x 2.00 x K2.00 K77.6 x K1.0 K2.00 x C3.00 C84.0 x K1.5 2.00 x K2.00 Fazendo uma simplificação temos: > Q33:=simplify(Q3); 2 Q33 := 531.20000 x K1324.00000 x C811.80000 (103) 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 (104) a1 := 21.00000000 > b0:=subs(x=1.0, Q3); b1:=subs(x=1.5, Q3); b0 := 19.0000000 (105) 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); 20 15 10 5 0 0 0.5 1 1.5 x > 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); 30 20 10 0 0.5 1 1.5 x K10 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 := K1.8480000 (106) (107) >? `?` EXEMPLO DE POLINOMIO LINEAR POR PARTES (108) 2 USANDO OS DADOS DA FUNÇÃO f = x > 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 INTERVALO [X0, X1]=[0,1]: GRAU DO POLINÔMIO É IGUAL A TRÊS PRIMEIRA PARTE > L0:=(x-x1)/((x0-x1)); L0 := K1.000000000 x C1.000000000 > L1:=(x-x0)/((x1-x0)); L1 := 1.000000000 x (109) (110) > DL0:=evalf(diff(L0,x),3); DL0 := K1.00 (111) DL1 := 1.00 (112) D0 := K1.00 (113) D1 := 1.00 (114) > DL1:=evalf(diff(L1,x),3); > D0:=subs(x=x0, DL0); > D1:=subs(x=x1, DL1); CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f > PHI0:=evalf((1-2*D0*(x-x0))*(L0)^2,3); PHI0 := 1. C2.00 x K1.00 x C1.00 > PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3); 2 (115) (116) 2 PHI1 := 1.00 K2.00 x C 3.00 x (116) O grafico acima é a base da função base que interpola a função f(x). Note que são polinômios de grau 3 e ortogonais. CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f > PSI0:=(x-x0)*(L0*L0); PSI0 := x K1.000000000 x C1.000000000 > PSI1:=(x-x1)*(L1)^2; 2 PSI1 := 1.000000000 x K1.0 x 2 (117) (118) 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) > P1:=simplify(evalf(f0*PHI0+f1*PHI1+g0*PSI0+g1*PSI1,3)); 2 P1 := 1.0000 x CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE (119) > Q1:=simplify(evalf(diff(P,x),3)); Q1 := 0. (120) VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS TABELADOS. > a0:=subs(x=0, P);a1:=subs(x=1, P); a0 := P a1 := P > b0:=subs(x=0, Q);b1:=subs(x=1, Q); b0 := Q b1 := Q (121) (122) 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 := P (123) b3 := Q (124) > b3:=subs(x=0.6, Q); 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 aproximação. *********************************************************************************** * CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA INTERVALO [X1, X2]=[1,2]: GRAU DO POLINÔMIO É IGUAL A TRÊS SEGUNDA PARTE > L1:=(x-x2)/((x1-x2)); L1 := K1.000000000 x C2.000000000 > L2:=(x-x1)/((x2-x1)); L2 := 1.000000000 x K1.000000000 (125) (126) > DL1:=evalf(diff(L1,x),3); DL1 := K1.00 (127) DL2 := 1.00 (128) D1 := K1.00 (129) D2 := 1.00 (130) > DL2:=evalf(diff(L2,x),3); > D1:=subs(x=x1, DL1); > D2:=subs(x=x2, DL2); CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f > PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3); 2 PHI1 := 2.00 x K1.00 K1.00 x C2.00 > PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3); 2 PHI2 := 5.00 K 2.00 x 1.00 x K1.00 (131) (132) O grafico acima é a base da função base que interpola a função f(x). Note que são polinômios de grau 3 e ortogonais. CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f > PSI1:=(x-x1)*(L1*L1); PSI1 := x K 1.0 > PSI2:=(x-x2)*(L2)^2; K1.000000000 x C2.000000000 2 (133) (134) PSI2 := x K2.0 1.000000000 x K 1.000000000 2 (134) 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) > P2:=simplify(evalf(f1*PHI1+f2*PHI2+g1*PSI1+g2*PSI2,3)); 2 P2 := 1.0000000 x (135) CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE > Q2:=simplify(evalf(diff(P2,x),3)); Q2 := 2.00 x (136) VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS TABELADOS. > a0:=subs(x=1, P2);a1:=subs(x=2, P2); a0 := 1.0000000 a1 := 4.0000000 > b0:=subs(x=1, Q2);b1:=subs(x=2, Q2); b0 := 2.00 b1 := 4.00 (137) (138) Se desejamos saber o valor aproximado de f(x) e g(x) no ponto x=0.6, temos: > a3:=subs(x=1.5, P2); a3 := 2.250000000 (139) b3 := 3.000 (140) > b3:=subs(x=1.5, Q2); 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. > P01:=plot([P1(x)], x=x0..x1, color=[red], style=[line]): > P12:=plot([P2(x)], x=x1..x2, color=[blue], style=[line]): Os gráficos da cada derivada do polinômio de Hermite por partes é dado abaixo > display(P01,P12); 4 3 2 1 0 0 0.5 1 x 1.5 2 Observe que nesse exemplo temos a solução exata, o polinômio de ajuste tem grau dois tanto no intervalo [0,1] que obtamos o polinômio P1(x) quanto no intervalo [1,2] que obtivemos o polinômio P2(x). Nesse caso os polinômio por partes coincidem com o polinômio de Hermite usando todos o spontos pontos pois o polinômi ótimo encontrado foi de grau 2, veja que o P(x)=x^2. EXEMPLO 5 No próximo exemplo vamos fazer uma pequena munda nos dados e ver os resultados usando um único polinômio de Hermite e o polinômio de Hermite por partes. VAMOS CONSIDERAR AGORA A SEGUINTE TABELA: > restart: > with(plots): > with(linalg): > > x0 d 1.0 : > x1:=1.5: > x2:= 2.0: O valor da função f(x) > f0:=-1.0: > f1:=1.35: > f2:=2.8: Vamos denotar g valor da derivada g(x)=f ' (x) > g0:=0.8: > g1:=-1.0: > g2:=2.5: > 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)):; > DL0:=evalf(diff(L0,x),3); DL0 := 4.00 x K 7.00 > DL1:=evalf(diff(L1,x),3); DL1 := K8.00 x C12.0 > DL2:=evalf(diff(L2,x),3); DL2 := 4.00 x K 5.00 > D0:=subs(x=x0, DL0); D0 := K3.000 > D1:=subs(x=x1, DL1); D1 := 0. > D2:=subs(x=x2, DL2); D2 := 3.000 > PHI0:=evalf((1-2*D0*(x-x0))*(L0)^2,3); 2 2 PHI0 := 4.00 K5.00 C6.00 x x K1.5 x K2.0 > PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3); 2 2 PHI1 := 16.0 x K 1.0 x K 2.0 > PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3); 2 2 PHI2 := 4.00 13.0 K 6.00 x x K1.0 x K1.5 > PSI0:=(x-x0)*(L0*L0); 2 2 PSI0 := 4.000000000 x K1.0 x K1.5 x K2.0 > PSI1:=(x-x1)*(L1)^2; 2 2 PSI1 := 16.00000000 x K1.5 x K1.0 x K2.0 (141) (142) (143) (144) (145) (146) (147) (148) (149) (150) (151) > PSI2:=(x-x2)*(L2)^2; 2 2 PSI2 := 4.000000000 x K2.0 x K1.0 x K1.5 >? `?` > PHI0:=evalf((1-2*D0*(x-x0))*(L0)^2,3); 2 2 PHI0 := 4.00 K5.00 C6.00 x x K1.5 x K2.0 > PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3); 2 2 PHI1 := 16.0 x K 1.0 x K 2.0 > PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3); 2 2 PHI2 := 4.00 13.0 K 6.00 x x K1.0 x K1.5 (152) (153) (154) (155) (156) 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 := 4.000000000 x K1.0 > PSI1:=(x-x1)*(L1)^2; PSI1 := 16.00000000 x K1.5 > PSI2:=(x-x2)*(L2)^2; PSI2 := 4.000000000 x K2.0 x K1.5 2 x K2.0 2 (157) x K1.0 2 x K2.0 2 (158) x K1.0 2 x K1.5 2 (159) 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)); # ESSE É POLINÔMIO DE HERMITE PROCURADO NO INTERVALO [X0,X2]. 3 4 5 P := K2221.900000 x K2135.900000 x C715.600000 x K94.00000 x C616.2000000 2 C3119.000000 x CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE (160) > Q:=simplify(evalf(diff(P,x),4)); 2 3 4 Q := K2222. K6408. x C2862. x K470.0 x C6238. x (161) VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS TABELADOS. f(x) > a0:=subs(x=x0, P);a1:=subs(x=x1, P);a2:=subs(x=x2, P); a0 := K1.000000 a1 := 1.350000 a2 := 2.80000 > b0:=subs(x=x0, Q);b1:=subs(x=x1, Q);b2:=subs(x=x2, Q); b0 := 0. b1 := K3.12500 b2 := K2.00000 (162) (163) Se desejamos saber o valor aproximado de f(x) e g(x) no ponto x=1.3, temos: > P02:=plot([P(x)], x=x0..x2, color=[red], style=[line]): Os gráficos da cada derivada do polinômio de Hermite por partes é dado abaixo > display(P02); 2 1 0 1.2 1.4 1.6 1.8 2 x K1 CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA INTERVALO [X0, X1]=[0,1]: GRAU DO POLINÔMIO É IGUAL A TRÊS PRIMEIRA PARTE > L0:=(x-x1)/((x0-x1)); L0 := K2.000000000 x C3.000000000 > L1:=(x-x0)/((x1-x0)); L1 := 2.000000000 x K2.000000000 (164) (165) > DL0:=evalf(diff(L0,x),3); DL0 := K2.00 (166) DL1 := 2.00 (167) D0 := K2.00 (168) > DL1:=evalf(diff(L1,x),3); > D0:=subs(x=x0, DL0); > D1:=subs(x=x1, DL1); D1 := 2.00 (169) CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f > PHI0:=evalf((1-2*D0*(x-x0))*(L0)^2,3); 2 PHI0 := K3.00 C 4.00 x K2.00 x C 3.00 > PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3); 2 PHI1 := 7.00 K 4.00 x 2.00 x K2.00 (170) (171) O grafico acima é a base da função base que interpola a função f(x). Note que são polinômios de grau 3 e ortogonais. CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f > PSI0:=(x-x0)*(L0*L0); 2 PSI0 := x K 1.0 K2.000000000 x C3.000000000 > PSI1:=(x-x1)*(L1)^2; 2 PSI1 := x K1.5 2.000000000 x K 2.000000000 (172) (173) Note novamente que são polinômios de grau 3 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) > P1:=simplify(evalf(f0*PHI0+f1*PHI1+g0*PSI0+g1*PSI1,3)); # ESSE É POLINÔMIO DE HERMITE PROCURADO NO INTERVALO [X0,X1]. 2 3 P1 := 142.2000000 x K 168.4000000 x C63.60000000 K38.40000000 x (174) CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE > Q1:=simplify(evalf(diff(P,x),3)); 2 3 4 Q1 := K2220. K6420. x C2860. x K470. x C6240. x VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS TABELADOS. (175) > a0:=subs(x=x0, P);a1:=subs(x=x1, P); a0 := K1.000000 a1 := 1.350000 > b0:=subs(x=x0, Q);b1:=subs(x=x1, Q); b0 := 0. b1 := K3.12500 (176) (177) *********************************************************************************** * CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA INTERVALO [X1, X2]=[1,2]: GRAU DO POLINÔMIO É IGUAL A TRÊS SEGUNDA PARTE > L1:=(x-x2)/((x1-x2)); L1 := K2.000000000 x C4.000000000 > L2:=(x-x1)/((x2-x1)); L2 := 2.000000000 x K3.000000000 (178) (179) > DL1:=evalf(diff(L1,x),3); DL1 := K2.00 (180) DL2 := 2.00 (181) D1 := K2.00 (182) D2 := 2.00 (183) > DL2:=evalf(diff(L2,x),3); > D1:=subs(x=x1, DL1); > D2:=subs(x=x2, DL2); CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f > PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3); 2 PHI1 := 4.00 x K5.00 K2.00 x C4.00 > PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3); 2 PHI2 := 9.00 K 4.00 x 2.00 x K3.00 (184) (185) CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f > PSI1:=(x-x1)*(L1*L1); (186) 2 PSI1 := x K 1.5 K2.000000000 x C4.000000000 > PSI2:=(x-x2)*(L2)^2; 2 PSI2 := x K2.0 2.000000000 x K 3.000000000 (186) (187) POLINÔMIO DE HERMITE > P2:=simplify(evalf(f1*PHI1+f2*PHI2+g1*PSI1+g2*PSI2,3));# ESSE É POLINÔMIO DE HERMITE PROCURADO NO INTERVALO [X1,X2]. 3 2 P2 := K17.20000000 x C93.8000000 x K166.3000000 x C 97.8000000 (188) CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE > Q2:=simplify(evalf(diff(P2,x),3)); # DERIVADA DO POLINÔMIO DE HERMITE 2 Q2 := K51.6 x C188. x K 166. (189) VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS TABELADOS. > a0:=subs(x=x1, P2);a1:=subs(x=x2, P2); a0 := 1.3500000 a1 := 2.8000000 > b0:=subs(x=x1, Q2);b1:=subs(x=x2, Q2); b0 := K0.100 b1 := 3.600 (190) (191) Se desejamos saber o valor aproximado de f(x) e g(x) no ponto x=0.6, temos: > a3:=subs(x=1.5, P2); a3 := 1.3500000 (192) > b3:=subs(x=1.5, Q2); b3 := K0.100 (193) 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 aproXimação. > P01:=plot([P1(x)], x=x0..x1, color=[green], style=[line]): > P12:=plot([P2(x)], x=x1..x2, color=[blue], style=[line]): Os gráficos da cada derivada do polinômio de Hermite por partes é dado abaixo > display(P01,P12); 2 1 0 1.2 1.4 1.6 1.8 2 x K1 COMPRANDO OS GRAFICOS DOS POLINÔMIOS LINEAR POR PARTES COM O POLINÔMIO GLOBAL `?` > display P01, P12, P02 ; (194) 2 1 0 1.2 1.4 1.6 1.8 2 x K1 Observe que nesse caso os dois polinômios por partes de grau 3 estão próximos do polinômio de grau 5 VALORES APROXIMADOS : OBSERVE QUE A DERIVADAS NÃO SÃO BEM APROXIMADAS. > a:=subs(x=1.4, P); a := 1.364800 (195) b := K0.70400 (196) a1 := 1.1824000 (197) b1 := K24.9120 (198) C := 2.27960 (199) DD := 2.69100 (200) C1 := 1.6312000 (201) > b:=subs(x=1.4, Q); > a1 > b1 subs x = 1.4, P1 ; subs x = 1.4, Q1 ; > C:=subs(x=1.9, P); > DD:=subs(x=1.9, Q); > C1 subs x = 1.4, P2 ; > D1 subs x = 1.4, Q2 ; D1 := K3.936 > (202) ��������������������������������������������������������������������������� ��������������������������������������������������������������������������������� �����������������������������������������������������