Upload
truongkiet
View
247
Download
1
Embed Size (px)
Citation preview
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
restart:
with(plots):
with(linalg):
POLINÔMIO DE HERMITEEXEMPLO1:
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.note que f(x)=x^2 e g(x)=f´(x)=2xx0:=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);
> >
(2)(2)> >
(1)(1)> >
> >
(4)(4)
(3)(3)
> >
> > (6)(6)
> >
(7)(7)
(5)(5)
x0.5 1 1.5 2
0
0.2
0.4
0.6
0.8
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 xK1.50
DL1:=evalf(diff(L1,x),3);DL1 := K2.00 xC2.00
DL2:=evalf(diff(L2,x),3);DL2 := 1.00 xK0.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);
> >
(8)(8)> >
(10)(10)
(9)(9)> >
> >
> >
(7)(7)
> >
> >
PHI0 := 0.250 1.C3.00 x xK1.0 2 xK2.0 2
PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
PHI1 := 1.00 x2 xK2.0 2
PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3);
PHI2 := 0.250 7.00K3.00 x x2 xK1.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);
x0 0.5 1 1.5 2
0
0.2
0.4
0.6
0.8
1
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 DAFUNÇÃO fPSI0:=(x-x0)*(L0*L0);
> >
> >
(11)(11)
> >
> >
> >
(10)(10)
> >
> >
(12)(12)
PSI0 := 0.2500000000 x xK1.0 2 xK2.0 2
PSI1:=(x-x1)*(L1)^2;
PSI1 := 1.000000000 xK1.0 x2 xK2.0 2
PSI2:=(x-x2)*(L2)^2;
PSI2 := 0.2500000000 xK2.0 x2 xK1.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);
x0.5 1 1.5 2
K0.2
K0.1
0
0.1
0.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 HERMITEAssim 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*
> >
> >
(16)(16)
> >
> >
> >
(14)(14)
(15)(15)
> >
> >
(13)(13)
> >
(17)(17)
> >
> >
> >
> >
> >
(18)(18)
PSI2,3)); # ESSE É POLINÔMIO DE HERMITE
P := 1.000000 x2
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
Q:=simplify(evalf(diff(P,x),3));# DERIVADA DO POLINÔMIO DE
HERMITE Q := 2.00 x
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.000000a2 := 4.000000
b0:=subs(x=0, Q);b1:=subs(x=1, Q);b2:=subs(x=2, Q);b0 := 0.
b1 := 2.00b2 := 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
b3:=subs(x=0.6, Q);b3 := 1.200
Note que as tabelas foram construídas a partir da função f(x)=x^2. Consequentemente a função g(x)=f´(x)=2xAssim é 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ômiode Hermite é N=2+2+2-1=5.
NOTE QUE EM PARTICULAR SABEMOS QUE f(x)=e^x e g(x)=f´(x)=e^x
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:
> >
(29)(29)
> >
> >
> >
> > (19)(19)
(22)(22)
(21)(21)
> >
> >
> >
(28)(28)
> >
(30)(30)
(24)(24)
> >
> >
(23)(23)
> >
> >
(26)(26)
(20)(20)
> >
(25)(25)
> >
> >
(27)(27)
> >
> >
> >
> >
> >
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 xK1.0 xK2.0
L1:=evalf((x-x0)*(x-x2)/((x1-x0)*(x1-x2)),3);L1 := K1.00 x xK2.0
L2:=evalf((x-x0)*(x-x1)/((x2-x0)*(x2-x1)),3);L2 := 0.500 x xK1.0
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):;
CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE
DL0:=evalf(diff(L0,x),3);DL0 := 1.00 xK1.50
DL1:=evalf(diff(L1,x),3);DL1 := K2.00 xC2.00
DL2:=evalf(diff(L2,x),3);DL2 := 1.00 xK0.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);
PHI0 := 0.250 1.C3.00 x xK1.0 2 xK2.0 2
PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
PHI1 := 1.00 x2 xK2.0 2
PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3);
PHI2 := 0.250 7.00K3.00 x x2 xK1.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]):
> >
> >
(32)(32)
(33)(33)
> >
> >
> >
> >
> >
> >
> >
> >
> >
(39)(39)
(31)(31)
(34)(34)
> >
(35)(35)
> >
(38)(38)
(37)(37)
> >
(36)(36)
> >
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 := 0.250000 x xK1.0 2 xK2.0 2
PSI1:=(x-x1)*(L1)^2;
PSI1 := 1.0000 xK1.0 x2 xK2.0 2
PSI2:=(x-x2)*(L2)^2;
PSI2 := 0.250000 xK2.0 x2 xK1.0 2
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 fcom a combinação dos elementos da base da derivada)
OBERVE QUE O POLINÔMIO TEM GRAU 5P:=simplify(evalf(f0*PHI0+f1*PHI1+f2*PHI2+g0*PSI0+g1*PSI1+g2*
PSI2,4)); # ESSE É POLINÔMIO DE HERMITE
P := xC1.00000000C0.0010000 x4C0.20800000 x3C0.024000 x5C0.48500000 x2
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITEQ:=simplify(evalf(diff(P,x),4)); # DERIVADA DO POLINÔMIO DE
HERMITE
Q := 1.C0.004000 x3C0.6240 x2C0.1200 x4C0.9700 x
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.00000000a1 := 2.71800000a2 := 7.38800000
b0:=subs(x=0, Q);b1:=subs(x=1, Q);b2:=subs(x=2, Q);b0 := 1.
b1 := 2.718000b2 := 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);
> >
(40)(40)
(43)(43)
> >
> >
(41)(41)
> >
> >
> >
> >
> >
> >
> >
> >
> >
(39)(39)
> >
(44)(44)
(42)(42)
> >
> >
(45)(45)
> >
> >
> >
b3 := 3.667080000Note 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
bb3:=evalf(subs(x=1.3, exp(x)));bb3 := 3.669296668
Podemos verificar o erro absoluto da aproximação da função e de sua derivada.
e1:=abs(aa3-a3);e1 := 0.000704248
e2:=abs(bb3-b3);e2 := 0.002216668
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 xK0.5 xK1.0 xK1.5
L1:=evalf((x-x0)*(x-x2)*(x-x3)/((x1-x0)*(x1-x2)*(x1-x3)),3);L1 := 4.00 x xK1.0 xK1.5
> >
(46)(46)> >
> >
> >
> >
> >
> >
(47)(47)> >
> >
> >
L2:=evalf((x-x0)*(x-x1)*(x-x3)/((x2-x0)*(x2-x1)*(x2-x3)),3);L2 := K4.00 x xK0.5 xK1.5
L3:=evalf((x-x0)*(x-x1)*(x-x2)/((x3-x0)*(x3-x1)*(x3-x2)),3);L3 := 1.33 x xK0.5 xK1.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);
x0.5 1 1.5
K0.2
0
0.2
0.4
0.6
0.8
1.0
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):;
(52)(52)
> >
> >
> >
> >
(55)(55)
> >
> >
> >
(54)(54)
> >
(53)(53)
> >
> >
> >
> >
> >
> >
(50)(50)
> >
(51)(51)
> >
> >
(49)(49)
> >
> >
> >
> >
(48)(48)
> >
> >
> >
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 fPHI0:=(1-2*D0*(x-x0))*(L0)^2;
PHI0 := 1.7689 1C7.3150 x xK0.5 2 xK1.0 2 xK1.5 2
PHI1:=(1-2*D1*(x-x1))*(L1)^2;
PHI1 := 32.00000000 x3 xK1.0 2 xK1.5 2
PHI2:=(1-2*D2*(x-x2))*(L2)^2;
PHI2 := 16.0000 3.00000K2.0000 x x2 xK0.5 2 xK1.5 2
PHI3:=(1-2*D3*(x-x3))*(L3)^2;
PHI3 := 1.7689 11.97250K7.3150 x x2 xK0.5 2 xK1.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);
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DAFUNÇÃO fPSI0:=evalf((x-x0)*(L0*L0),3);
PSI0 := 1.77 x xK0.5 2 xK1.0 2 xK1.5 2
PSI1:=evalf((x-x1)*(L1*L1),3);
PSI1 := 16.0 xK0.5 x2 xK1.0 2 xK1.5 2
PSI2:=evalf((x-x2)*(L2)^2,3);
PSI2 := 16.0 xK1.0 x2 xK0.5 2 xK1.5 2
PSI3:=evalf((x-x3)*(L3)^2,3);
PSI3 := 1.77 xK1.5 x2 xK0.5 2 xK1.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);
POLINÔMIO DE HERMITEOBSERVE QUE O POLINÔMIO TEM GRAU 7
P:=simplify(evalf(f0*PHI0+f1*PHI1+f2*PHI2+f3*PHI3+g0*PSI0+g1*
> >
(57)(57)
> >
> >
> >
> >
(56)(56)
> >
PSI1+g2*PSI2+g3*PSI3,4)); # ESSE É POLINÔMIO DE HERMITE
P := 18.77625000 xC212.39775 x7K987.352750 x6K1271.730000 x4C346.336188 x3
C1692.901188 x5C10.6713750 x2
LP0:=plot([P(x)], x=x0..x3, color=[black], style=[point]):
display(LP0);
x0 0.5 1 1.5
0
5
10
15
20
CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE
Q:=simplify(evalf(diff(P,x),5)); # DERIVADA DO POLINÔMIO DE
HERMITE
Q := 18.776C1486.8 x6K5924.1 x5K5086.8 x3C1039.0 x2C8464.5 x4C21.342 x
LQ0:=plot([Q(x)], x=x0..x3, color=[black], style=[point]):
display(LQ0);
> >
> >
(59)(59)
(58)(58)
x0.5 1 1.5
K20
K10
0
10
20
30
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.00000007a2 := 22.00000100a3 := 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.4813750b2 := 19.518000b3 := 21.56712
> >
> >
> >
> >
> >
(60)(60)
> >
> >
> >
> >
(61)(61)
> >
> >
> >
> >
(62)(62)
> >
> >
(63)(63)
> >
> >
> >
> >
POLINÔMIOS POR PARTES DE HERMITEVamos 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 x1L0:=evalf((x-x1)/((x0-x1)),3);
L0 := K2.00 xC1.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 := K2.00
DL1:=diff(L1,x);DL1 := 2.00
(68)(68)
(71)(71)
(65)(65)
> >
> >
(67)(67)
(64)(64)
> >
> >
> >
(73)(73)
> >
(66)(66)
(70)(70)
(69)(69)
> >
(72)(72)
> >
> >
> >
D0:=subs(x=x0, DL0);D0 := K2.00
D1:=subs(x=x1, DL1);D1 := 2.00
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA fPHI0:=(1-2*D0*(x-x0))*(L0)^2;
PHI0 := 1C4.00 x K2.00 xC1.00 2
PHI1:=(1-2*D1*(x-x1))*(L1)^2;
PHI1 := 4.0000 3.000K4.00 x x2
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DAFUNÇÃO fPSI0:=(x-x0)*(L0*L0);
PSI0 := x K2.00 xC1.00 2
PSI1:=(x-x1)*(L1*L1);
PSI1 := 4.0000 xK0.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); # ESSE É POLINÔMIO
DE HERMITE
P1 := 60.0 3.00K4.00 x x2C18.9 x K2.00 xC1.00 2C82.0 xK0.5 x2
CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE
Q1:=evalf(diff(P1,x),3); # DERIVADA DO POLINÔMIO DE HERMITE
Q1 := K158. x2C120. 3.00K4.00 x xC18.9 K2.00 xC1.00 2K75.6 x K2.00 xC1.00C164. xK0.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.90000b1 := 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.
(77)(77)
> >
> >
(83)(83)
(87)(87)
(76)(76)
> >
> >
(85)(85)
(80)(80)
> >
> >
(82)(82)
(79)(79)
(86)(86)
> >
> >
> >
(81)(81)
(75)(75)
> >
> >
> >
(84)(84)
> >
> >
(74)(74)
(78)(78)
Polinômio de Hermite de grau 3 para o segundo intervalo: [X1, X2]
L1:=evalf((x-x2)/((x1-x2)),3);L1 := K2.00 xC2.00
L2:=evalf((x-x1)/((x2-x1)),3);L2 := 2.00 xK1.00
CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE
DL1:=diff(L1,x);DL1 := K2.00
DL2:=diff(L2,x);DL2 := 2.00
D1:=subs(x=x1, DL1);D1 := K2.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 := K1.000C4.00 x K2.00 xC2.00 2
PHI2:=(1-2*D2*(x-x2))*(L2)^2;
PHI2 := 5.000K4.00 x 2.00 xK1.00 2
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DA FUNÇÃO f
PSI1:=(x-x1)*(L1*L1);
PSI1 := xK0.5 K2.00 xC2.00 2
PSI2:=(x-x2)*(L2*L2);
PSI2 := xK1.0 2.00 xK1.00 2
POLINÔMIO DE HERMITE PARA O SEGUNDO INTERVALO:
P2:=f1*PHI1+f2*PHI2+g1*PSI1+g2*PSI2; # ESSE É POLINÔMIO DE
HERMITE
P2 := 15.0 K1.000C4.00 x K2.00 xC2.00 2C22.0 5.000K4.00 x 2.00 xK1.00 2
C20.47 xK0.5 K2.00 xC2.00 2C19.38 xK1.0 2.00 xK1.00 2
Fazendo uma simplificação temos:
P22:simplify(P2);
K107.7400000 x2C92.6600000 xK10.32000000C47.4000000 x3
CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE
Q2:=diff(P2,x); # DERIVADA DO POLINÔMIO DE HERMITE
Q2 := 80.470 K2.00 xC2.00 2K60.000 K1.000C4.00 x K2.00 xC2.00K68.620 2.00 xK1.00 2C88.000 5.000K4.00 x 2.00 xK1.00 K81.8800 xK0.5 K2.00 xC2.00 C77.5200 xK1.0 2.00 xK1.00
Fazendo uma simplificação temos:
Q22:=simplify(Q2);
> >
> >
(87)(87)
(89)(89)
> >
(91)(91)
(92)(92)> >
(94)(94)
> >
> >
> >
(88)(88)
(97)(97)
> >
> >
(95)(95)
(90)(90)
(96)(96)
> >
(93)(93)
Q22 := 142.2000000 x2K215.4800000 xC92.6600000VERIFICAÇÃ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.00000000a1 := 22.00000000
b0:=subs(x=0.5, Q2); b1:=subs(x=1.0, Q2); b0 := 20.47000000b1 := 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 xC3.00
L3:=evalf((x-x2)/((x3-x2)),3);L3 := 2.00 xK2.00
CÁLCULO DA DERIVADAS DOS POLINÔMIOS DE LAGRANGE
DL2:=diff(L2,x);DL2 := K2.00
DL3:=diff(L3,x);DL3 := 2.00
D2:=subs(x=x2, DL2);D2 := K2.00
D3:=subs(x=x3, DL3);D3 := 2.00
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA fPHI2:=(1-2*D2*(x-x2))*(L2)^2;
PHI2 := K3.000C4.00 x K2.00 xC3.00 2
PHI3:=(1-2*D3*(x-x3))*(L3)^2;
PHI3 := 7.000K4.00 x 2.00 xK2.00 2
> >
> >
(105)(105)
(101)(101)
(100)(100)
(104)(104)> >
> >
> >
> >
(99)(99)
> >
> >
(98)(98)
(102)(102)
> >
> >
(103)(103)
> >
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DAFUNÇÃO fPSI2:=evalf((x-x2)*(L2*L2),3);
PSI2 := xK1.0 K2.00 xC3.00 2
PSI3:=evalf((x-x3)*(L3*L3),3);
PSI3 := xK1.5 2.00 xK2.00 2
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
P3 := 22.0 K3.00C4.00 x K2.00 xC3.00 2C21.0 7.00K4.00 x 2.00 xK2.00 2
C19.4 xK1.0 K2.00 xC3.00 2C21.0 xK1.5 2.00 xK2.00 2
Fazendo uma simplificação temos:
P33:=simplify(P3);
P33 := K664.400000 x2C815.400000 xK306.6000000C177.6000000 x3
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
Q3:=evalf(diff(P3,x),3); # DERIVADA DO POLINÔMIO DE HERMITE
Q3 := 107. K2.00 xC3.00 2K88.0 K3.00C4.00 x K2.00 xC3.00 K63.0 2.00 xK2.00 2C84.0 7.00K4.00 x 2.00 xK2.00 K77.6 xK1.0 K2.00 xC3.00C84.0 xK1.5 2.00 xK2.00
Fazendo uma simplificação temos:
Q33:=simplify(Q3);
Q33 := 531.20000 x2K1324.00000 xC811.80000VERIFICAÇÃ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.00000000a1 := 21.00000000
b0:=subs(x=1.0, Q3); b1:=subs(x=1.5, Q3); b0 := 19.0000000b1 := 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);
x0 0.5 1 1.5
0
5
10
15
20
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);
(106)(106)
(108)(108)
> >
> > (107)(107)
x0.5 1 1.5
K10
0
10
20
30
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);9.15120000
18.0076000022.80160000
Para as derivadas temos:
d0:=subs(x=0.3, Q1); d1:=subs(x=0.7, Q2); d2:=subs(x=1.1, Q3);34.6920000
11.50200000K1.8480000
`?`
EXEMPLO DE POLINOMIO LINEAR POR PARTES
(109)(109)
> >
(115)(115)
(112)(112)
(113)(113)
> >
> >
> >
> >
> >
(114)(114)
> >
> >
(116)(116)
> >
> >
> >
> >
(111)(111)
> >
> >
> > (110)(110)
> >
> >
USANDO OS DADOS DA FUNÇÃO f = x2
x0:=0.0:
x1:=1.0:
x2:=2.0:
O valor da função f(x)=x^2f0:=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 DOPOLINÔMIO É IGUAL A TRÊS
PRIMEIRA PARTE
L0:=(x-x1)/((x0-x1));L0 := K1.000000000 xC1.000000000
L1:=(x-x0)/((x1-x0));L1 := 1.000000000 x
DL0:=evalf(diff(L0,x),3);DL0 := K1.00
DL1:=evalf(diff(L1,x),3);DL1 := 1.00
D0:=subs(x=x0, DL0);D0 := K1.00
D1:=subs(x=x1, DL1);D1 := 1.00
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA fPHI0:=evalf((1-2*D0*(x-x0))*(L0)^2,3);
PHI0 := 1.C2.00 x K1.00 xC1.00 2
PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
> >
(124)(124)> >
(116)(116)
(117)(117)
> >
(120)(120)
> >
> >
(118)(118)
(121)(121)
> >
(119)(119)
> >
(122)(122)
(123)(123)
> >
PHI1 := 1.00 K2.00 xC3.00 x2
O grafico acima é a base da função base que interpola a função f(x). Note que são polinômios de grau 3e ortogonais.
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DAFUNÇÃO f
PSI0:=(x-x0)*(L0*L0);
PSI0 := x K1.000000000 xC1.000000000 2
PSI1:=(x-x1)*(L1)^2;
PSI1 := 1.000000000 xK1.0 x2
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 HERMITEAssim 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));
P1 := 1.0000 x2
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
Q1:=simplify(evalf(diff(P,x),3));Q1 := 0.
VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS TABELADOS.
a0:=subs(x=0, P);a1:=subs(x=1, P);a0 := Pa1 := P
b0:=subs(x=0, Q);b1:=subs(x=1, Q);b0 := Qb1 := Q
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
b3:=subs(x=0.6, Q);b3 := 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
(126)(126)
> >
(128)(128)
> >
> >
> >
(133)(133)
(132)(132)
> >
> >
(125)(125)
> >
(130)(130)
(127)(127)
> >
(129)(129)
(131)(131)
> >
> >
(134)(134)
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 PARTEL1:=(x-x2)/((x1-x2));
L1 := K1.000000000 xC2.000000000
L2:=(x-x1)/((x2-x1));L2 := 1.000000000 xK1.000000000
DL1:=evalf(diff(L1,x),3);DL1 := K1.00
DL2:=evalf(diff(L2,x),3);DL2 := 1.00
D1:=subs(x=x1, DL1);D1 := K1.00
D2:=subs(x=x2, DL2);D2 := 1.00
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f
PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
PHI1 := 2.00 xK1.00 K1.00 xC2.00 2
PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3);
PHI2 := 5.00K2.00 x 1.00 xK1.00 2
O grafico acima é a base da função base que interpola a função f(x). Note que são polinômios de grau 3e ortogonais.
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DAFUNÇÃO fPSI1:=(x-x1)*(L1*L1);
PSI1 := xK1.0 K1.000000000 xC2.000000000 2
PSI2:=(x-x2)*(L2)^2;
PSI2 := xK2.0 1.000000000 xK1.000000000 2
> >
> >
> >
(138)(138)
(135)(135)
(139)(139)
(140)(140)
> >
> > (136)(136)
> >
> >
> >
> >
(137)(137)
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));
P2 := 1.0000000 x2
CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE
Q2:=simplify(evalf(diff(P2,x),3));Q2 := 2.00 x
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.0000000a1 := 4.0000000
b0:=subs(x=1, Q2);b1:=subs(x=2, Q2);b0 := 2.00b1 := 4.00
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
b3:=subs(x=1.5, Q2);b3 := 3.000
Note que as tabelas foram construídas a partir da função f(x)=x^2. Consequentemente a função g(x)=f´(x)=2xAssim é 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);
> >
> >
> >
(141)(141)
> >
x0 0.5 1 1.5 2
0
1
2
3
4
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 nointervalo [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):
?`?`
> >
(151)(151)
(149)(149)
(145)(145)
(147)(147)
> >
> >
(154)(154)
> >
(142)(142)
> >
> >
(150)(150)
(144)(144)
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
(146)(146)
(152)(152)> >
> >
(153)(153)
> >
> >
> >
> >
(143)(143)
> >
(148)(148)
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 xK7.00
DL1:=evalf(diff(L1,x),3);DL1 := K8.00 xC12.0
DL2:=evalf(diff(L2,x),3);DL2 := 4.00 xK5.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);
PHI0 := 4.00 K5.00C6.00 x xK1.5 2 xK2.0 2
PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
PHI1 := 16.0 xK1.0 2 xK2.0 2
PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3);
PHI2 := 4.00 13.0K6.00 x xK1.0 2 xK1.5 2
PSI0:=(x-x0)*(L0*L0);
PSI0 := 4.000000000 xK1.0 xK1.5 2 xK2.0 2
PSI1:=(x-x1)*(L1)^2;
PSI1 := 16.00000000 xK1.5 xK1.0 2 xK2.0 2
PSI2:=(x-x2)*(L2)^2;
PSI2 := 4.000000000 xK2.0 xK1.0 2 xK1.5 2
`?`
PHI0:=evalf((1-2*D0*(x-x0))*(L0)^2,3);
> >
(158)(158)
> >
> >
(159)(159)
> >
(160)(160)
> >
(156)(156)
(157)(157)
(163)(163)
(161)(161)
> >
> >
> >
> >
> >
> >
> >
(162)(162)
(155)(155)PHI0 := 4.00 K5.00C6.00 x xK1.5 2 xK2.0 2
PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
PHI1 := 16.0 xK1.0 2 xK2.0 2
PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3);
PHI2 := 4.00 13.0K6.00 x xK1.0 2 xK1.5 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 DAFUNÇÃO fPSI0:=(x-x0)*(L0*L0);
PSI0 := 4.000000000 xK1.0 xK1.5 2 xK2.0 2
PSI1:=(x-x1)*(L1)^2;
PSI1 := 16.00000000 xK1.5 xK1.0 2 xK2.0 2
PSI2:=(x-x2)*(L2)^2;
PSI2 := 4.000000000 xK2.0 xK1.0 2 xK1.5 2
Assim o Polinômio Interpolador de Hermite é dado por:( combinação dos elementos da base de fcom 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].
P := K2221.900000 xK2135.900000 x3C715.600000 x4K94.00000 x5C616.2000000C3119.000000 x2
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
Q:=simplify(evalf(diff(P,x),4));
Q := K2222.K6408. x2C2862. x3K470.0 x4C6238. x
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.000000a1 := 1.350000
> >
> >
(164)(164)
(163)(163)
> >
a2 := 2.80000
b0:=subs(x=x0, Q);b1:=subs(x=x1, Q);b2:=subs(x=x2, Q);b0 := 0.
b1 := K3.12500b2 := K2.00000
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);
x1.2 1.4 1.6 1.8 2
K1
0
1
2
CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA INTERVALO [X0, X1]=[0,1]: GRAU DO POLINÔMIO É IGUAL A TRÊS
(168)(168)
> >
(167)(167)
(174)(174)
> >
> >
> >
(172)(172)> >
> >
(165)(165)
(173)(173)> >
(166)(166)
> >
(169)(169)
> >
(171)(171)
(170)(170)
> >
PRIMEIRA PARTEL0:=(x-x1)/((x0-x1));
L0 := K2.000000000 xC3.000000000
L1:=(x-x0)/((x1-x0));L1 := 2.000000000 xK2.000000000
DL0:=evalf(diff(L0,x),3);DL0 := K2.00
DL1:=evalf(diff(L1,x),3);DL1 := 2.00
D0:=subs(x=x0, DL0);D0 := K2.00
D1:=subs(x=x1, DL1);D1 := 2.00
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA fPHI0:=evalf((1-2*D0*(x-x0))*(L0)^2,3);
PHI0 := K3.00C4.00 x K2.00 xC3.00 2
PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
PHI1 := 7.00K4.00 x 2.00 xK2.00 2
O grafico acima é a base da função base que interpola a função f(x). Note que são polinômios de grau 3e ortogonais.
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DAFUNÇÃO fPSI0:=(x-x0)*(L0*L0);
PSI0 := xK1.0 K2.000000000 xC3.000000000 2
PSI1:=(x-x1)*(L1)^2;
PSI1 := xK1.5 2.000000000 xK2.000000000 2
Note novamente que são polinômios de grau 3 e ortogonais.
POLINÔMIO DE HERMITE
> >
> >
> >
> >
(179)(179)
(182)(182)
(178)(178)
(177)(177)
> >
> >
(184)(184)
> >
> >
(180)(180)
(175)(175)
> >
(176)(176)
(181)(181)
(183)(183)
> >
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].
P1 := 142.2000000 x2K168.4000000 xC63.60000000K38.40000000 x3
CALCULABDO A DERIVADA DO POLINÔMIO DE HERMITE
Q1:=simplify(evalf(diff(P,x),3));
Q1 := K2220.K6420. x2C2860. x3K470. x4C6240. x
VERIFICAÇÃO DA INTERPOLAÇÃO POLINOMIAL E DE SUA DERIVADA NOS PONTOS TABELADOS.
a0:=subs(x=x0, P);a1:=subs(x=x1, P);a0 := K1.000000a1 := 1.350000
b0:=subs(x=x0, Q);b1:=subs(x=x1, Q);b0 := 0.
b1 := K3.12500
************************************************************************************
CÁLCULO DOS POLINÔMIOS DE LAGRANGE, PARA INTERVALO [X1, X2]=[1,2]: GRAU DOPOLINÔMIO É IGUAL A TRÊS
SEGUNDA PARTEL1:=(x-x2)/((x1-x2));
L1 := K2.000000000 xC4.000000000
L2:=(x-x1)/((x2-x1));L2 := 2.000000000 xK3.000000000
DL1:=evalf(diff(L1,x),3);DL1 := K2.00
DL2:=evalf(diff(L2,x),3);DL2 := 2.00
D1:=subs(x=x1, DL1);D1 := K2.00
D2:=subs(x=x2, DL2);D2 := 2.00
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO PRIMITIVA f
> >
> >
(193)(193)
> >
> >
(187)(187)
(192)(192)
(185)(185)
> >
(188)(188)
> >
> >
(194)(194)
(190)(190)
> >
> >
(186)(186)
(191)(191)
> >
(189)(189)
PHI1:=evalf((1-2*D1*(x-x1))*(L1)^2,3);
PHI1 := 4.00 xK5.00 K2.00 xC4.00 2
PHI2:=evalf((1-2*D2*(x-x2))*(L2)^2,3);
PHI2 := 9.00K4.00 x 2.00 xK3.00 2
CÁLCULO DAS FUNÇÕES BASE PARA A FUNÇÃO g, DERIVADA DAFUNÇÃO f
PSI1:=(x-x1)*(L1*L1);
PSI1 := xK1.5 K2.000000000 xC4.000000000 2
PSI2:=(x-x2)*(L2)^2;
PSI2 := xK2.0 2.000000000 xK3.000000000 2
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].
P2 := K17.20000000 x3C93.8000000 x2K166.3000000 xC97.8000000
CALCULANDO A DERIVADA DO POLINÔMIO DE HERMITE
Q2:=simplify(evalf(diff(P2,x),3)); # DERIVADA DO POLINÔMIO DE
HERMITE
Q2 := K51.6 x2C188. xK166.
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.3500000a1 := 2.8000000
b0:=subs(x=x1, Q2);b1:=subs(x=x2, Q2);b0 := K0.100b1 := 3.600
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
b3:=subs(x=1.5, Q2);b3 := K0.100
Note que as tabelas foram construídas a partir da função f(x)=x^2. Consequentemente a função g(x)=f´(x)=2xAssim é facil de f(0.6)=0.36 e g(0.6)=1.2, tendo assim uma excelente aproXimação.
> >
(195)(195)> >
> >
> >
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);
x1.2 1.4 1.6 1.8 2
K1
0
1
2
COMPRANDO OS GRAFICOS DOS POLINÔMIOS LINEAR POR PARTES COM O POLINÔMIO GLOBAL
`?`display P01, P12, P02 ;
(202)(202)
> >
(198)(198)
> >
(201)(201)
> >
(200)(200)
(196)(196)
> >
> >
(199)(199)
(197)(197)
> >
> >
x1.2 1.4 1.6 1.8 2
K1
0
1
2
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
b:=subs(x=1.4, Q);b := K0.70400
a1 subs x = 1.4, P1 ;a1 := 1.1824000
b1 subs x = 1.4, Q1 ;b1 := K24.9120
C:=subs(x=1.9, P);C := 2.27960
DD:=subs(x=1.9, Q);DD := 2.69100
C1 subs x = 1.4, P2 ;C1 := 1.6312000
> > (204)(204)
(203)(203)
> >
> >
> >
D1 subs x = 1.4, Q2 ;D1 := K3.936
?`?`
�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������