·
Matemática ·
Introdução à Matemática Computacional
· 2023/2
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
7
Exercício 5 - Fórmulas de Quadratura - Introdução à Matemática Computacional 2023 2
Introdução à Matemática Computacional
UFES
44
Slide - Derivada Numérica - Introdução à Matemática Computacional 2023 2
Introdução à Matemática Computacional
UFES
32
Slide - Integração Numérica 2023 2
Introdução à Matemática Computacional
UFES
11
Exercício 4 - Introdução à Matemática Computacional 2023 2
Introdução à Matemática Computacional
UFES
2
Exercícios - Rotinas Numéricas - Introdução à Matemática Computacional 2023 2
Introdução à Matemática Computacional
UFES
1
IMG_1137 jpeg
Introdução à Matemática Computacional
UNIARP
Texto de pré-visualização
import numpy as np from scipyinterpolate import lagrange CubicSpline from scipyintegrate import quad Funções para teste def f1x return x npexpx def f2x return x2 npcosx def f3x return npexpx Derivadas das funções para teste def df1x return 1 npexpx def df2x return 2xnpcosx x2npsinx Função para calcular o polinômio interpolador de Lagrange def lagrangeinterpolationf a b x nparraya ab2 b y fx poly lagrangex y return poly Função para calcular o polinômio interpolador de Hermite def hermiteinterpolationf df a b x nparraya ab2 b y fx dy dfx Calcular os coeficientes do polinômio de Hermite z npzeros2lenx z2 x z12 x w npzeros2lenx w2 y w12 y for i in range2 2lenx for j in rangei 0 1 if zj1 zji wj dyintzj1 else diff zjzji if diff 0 wj wjwj1 diff Criar o polinômio de Hermite poly nppoly1dw1 return poly Função para calcular o polinômio interpolador spline cúbica def cubicsplineinterpolationf a b x nparraya ab2 b y fx cs CubicSplinex y return cs Teste das funções testfunctions f1 f2 testintervals 0 1 1 2 for i in rangelentestfunctions f testfunctionsi a b testintervalsi Polinômio interpolador de Lagrange polylagrange lagrangeinterpolationf a b Polinômio interpolador de Hermite polyhermite hermiteinterpolationf df1 a b Polinômio interpolador spline cúbica cs cubicsplineinterpolationf a b Teste 1 Resolva px0 para aproximar a raiz da função f rootlagrange nprootspolylagrange roothermite nprootspolyhermite rootcs csroots print Teste 1 para f i1 print Raiz aproximada pela interpolação de Lagrange rootlagrange printRaiz aproximada pela interpolação de Hermite roothermite printRaiz aproximada pela interpolação spline cúbica rootcs Teste Calcule os valores pc e pc aproximações para fc e fc Calcule os erros obtidos c a b 2 pclagrange polylagrangec pchermite polyhermitec pccs csc print Valor de pc pela interpolação de Lagrange pclagrange printValor de pc pela interpolação de Hermite pchermite printValor de pc pela interpolação spline cúbica pccs errolagrange absfc pclagrange errohermite absfc pchermite errocs absfc pccs print Erro da interpolação de Lagrange errolagrange printErro da interpolação de Hermite errohermite printErro da interpolação spline cúbica errocs Teste 2 Uma análise da aproximação em todo o intervalo pode ser obtida aproximando a integral de f pela integral do polinômio ambas obtidas analiticamente Considere a seguinte função fx expx no intervalo 01 Considere polinômios interpeladores obtidos a partir de partições do intervalo 01 em 2 subintervalos e em 4 subintervalos Aproxime a integral da função f pela integral do polinômio interpolador Calcule os erros obtidos def lagrangeinterpolationtest2f a b n x nplinspacea b n1 y fx poly lagrangex y return poly polylagrange2 lagrangeinterpolationtest2f3 0 1 2 polylagrange4 lagrangeinterpolationtest2f3 0 1 4 integralf3 quadf301 integralpolylagrange2 quadpolylagrange201 integralpolylagrange4 quadpolylagrange401 errolagrange2 absintegralf3integralpolylagrange2 errolagrange4 absintegralf3integralpolylagrange4 print Teste 2 print Erro da interpolação de Lagrange com 2 subintervalos errolagrange2 printErro da interpolação de Lagrange com 4 subintervalos errolagrange4 ANÁLISE COMPARATIVA DE MÉTODOS DE INTERPOLAÇÃO POLINOMIAL 1 INTRODUÇÃO A interpolação é uma técnica matemática essencial que desempenha um papel crucial em muitos campos incluindo ciência da computação física e engenharia Ela é usada para estimar valores desconhecidos dentro de um conjunto de pontos conhecidos permitindo prever ou aproximar valores que não são diretamente observáveis ou conhecidos O código apresentado neste contexto demonstra a implementação de três métodos de interpolação polinomial Interpolação de Lagrange Interpolação de Hermite e Spline Cúbica A Interpolação de Lagrange é um dos métodos mais simples e comuns de interpolação polinomial que constrói um polinômio que passa exatamente pelos pontos dados No entanto pode sofrer do fenômeno de Runge onde o erro na interpolação aumenta com o número de pontos A Interpolação de Hermite é uma extensão da Interpolação de Lagrange que não apenas faz o polinômio passar pelos pontos dados mas também atende às condições sobre as derivadas dos pontos tornandoa mais precisa para funções onde a derivada é conhecida A Spline Cúbica é um tipo especial de interpolação que divide o intervalo em subintervalos e ajusta um polinômio cúbico diferente a cada subintervalo garantindo que a função resultante seja suave e contínua tornandoa ideal para interpolar funções que variam rapidamente Embora esses métodos sejam ferramentas poderosas para lidar com uma ampla gama de problemas práticos eles têm suas limitações e devem ser usados com cautela e compreensão adequadas 2 MÉTODOS 21 INTERPOLAÇÃO DE LAGRANGE Este método é baseado no polinômio interpolador de Lagrange que é um polinômio que passa por um conjunto específico de pontos O polinômio de Lagrange é único e passará exatamente por cada ponto dado A ideia básica por trás da interpolação de Lagrange é que um polinômio de grau n pode ser determinado exclusivamente por n 1 pontos No código a função lagrangeinterpolation implementa esse método Ela recebe uma função f e um intervalo a b cria um array x com três pontos igualmente espaçados nesse intervalo calcula os valores correspondentes y fx e então usa a função lagrange da biblioteca SciPy para calcular o polinômio interpolador de Lagrange que passa por esses pontos 𝑑𝑒𝑓 𝑙𝑎𝑔𝑟𝑎𝑛𝑔𝑒𝑖𝑛𝑡𝑒𝑟𝑝𝑜𝑙𝑎𝑡𝑖𝑜𝑛𝑓 𝑎 𝑏 𝑥 𝑛𝑝 𝑎𝑟𝑟𝑎𝑦𝑎 𝑎 𝑏2 𝑏 𝑦 𝑓𝑥 𝑝𝑜𝑙𝑦 𝑙𝑎𝑔𝑟𝑎𝑛𝑔𝑒𝑥 𝑦 𝑟𝑒𝑡𝑢𝑟𝑛 𝑝𝑜𝑙𝑦 22 INTERPOLAÇÃO DE HERMITE A interpolação de Hermite é uma extensão da interpolação de Lagrange que também leva em conta as derivadas dos pontos Isso significa que o polinômio interpolador não apenas passará pelos pontos dados mas também terá as mesmas derivadas que a função original nesses pontos Isso pode melhorar significativamente a precisão da interpolação para funções onde a derivada é conhecida No código a função hermiteinterpolation implementa esse método Ela recebe uma função f sua derivada df e um intervalo a b cria um array x com três pontos igualmente espaçados nesse intervalo calcula os valores correspondentes y fx e as derivadas correspondentes dy dfx e então calcula os coeficientes do polinômio interpolador de Hermite que passa por esses pontos com as derivadas dadas 𝑑𝑒𝑓 ℎ𝑒𝑟𝑚𝑖𝑡𝑒𝑖𝑛𝑡𝑒𝑟𝑝𝑜𝑙𝑎𝑡𝑖𝑜𝑛𝑓 𝑑𝑓 𝑎 𝑏 𝑥 𝑛𝑝 𝑎𝑟𝑟𝑎𝑦𝑎 𝑎 𝑏2 𝑏 𝑦 𝑓𝑥 𝑑𝑦 𝑑𝑓𝑥 𝐶𝑎𝑙𝑐𝑢𝑙𝑎𝑟 𝑜𝑠 𝑐𝑜𝑒𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑒𝑠 𝑑𝑜 𝑝𝑜𝑙𝑖𝑛ô𝑚𝑖𝑜 𝑑𝑒 𝐻𝑒𝑟𝑚𝑖𝑡𝑒 𝑧 𝑛𝑝 𝑧𝑒𝑟𝑜𝑠2 𝑙𝑒𝑛𝑥 𝑧 2 𝑥 𝑧1 2 𝑥 𝑤 𝑛𝑝 𝑧𝑒𝑟𝑜𝑠2 𝑙𝑒𝑛𝑥 𝑤 2 𝑦 𝑤1 2 𝑦 𝑓𝑜𝑟 𝑖 𝑖𝑛 𝑟𝑎𝑛𝑔𝑒2 2 𝑙𝑒𝑛𝑥 𝑓𝑜𝑟 𝑗 𝑖𝑛 𝑟𝑎𝑛𝑔𝑒𝑖 0 1 𝑖𝑓 𝑧𝑗 1 𝑧𝑗 𝑖 𝑤𝑗 𝑑𝑦𝑖𝑛𝑡𝑧𝑗 1 𝑒𝑙𝑠𝑒 𝑑𝑖𝑓𝑓 𝑧𝑗 𝑧𝑗 𝑖 𝑖𝑓 𝑑𝑖𝑓𝑓 0 𝑤𝑗 𝑤𝑗 𝑤𝑗 1 𝑑𝑖𝑓𝑓 𝐶𝑟𝑖𝑎𝑟 𝑜 𝑝𝑜𝑙𝑖𝑛ô𝑚𝑖𝑜 𝑑𝑒 𝐻𝑒𝑟𝑚𝑖𝑡𝑒 𝑝𝑜𝑙𝑦 𝑛𝑝 𝑝𝑜𝑙𝑦1𝑑𝑤 1 𝑟𝑒𝑡𝑢𝑟𝑛 𝑝𝑜𝑙𝑦 23 SPLINE CÚBICA Uma spline cúbica é uma função definida por peças que consiste em polinômios cúbicos em cada subintervalo do intervalo total Cada polinômio cúbico é determinado pelos valores da função nos pontos finais do subintervalo e pelas derivadas nos pontos finais do subintervalo As splines cúbicas são suaves e contínuas em todo o intervalo total e podem fornecer uma boa aproximação para muitas funções diferentes No código a função cubicsplineinterpolation implementa esse método Ela recebe uma função f e um intervalo a b cria um array x com três pontos igualmente espaçados nesse intervalo calcula os valores correspondentes y fx e então usa a função CubicSpline da biblioteca SciPy para calcular a spline cúbica interpoladora que passa por esses pontos 𝑑𝑒𝑓 𝑐𝑢𝑏𝑖𝑐𝑠𝑝𝑙𝑖𝑛𝑒𝑖𝑛𝑡𝑒𝑟𝑝𝑜𝑙𝑎𝑡𝑖𝑜𝑛𝑓 𝑎 𝑏 𝑥 𝑛𝑝 𝑎𝑟𝑟𝑎𝑦𝑎 𝑎 𝑏2 𝑏 𝑦 𝑓𝑥 𝑐𝑠 𝐶𝑢𝑏𝑖𝑐𝑆𝑝𝑙𝑖𝑛𝑒𝑥 𝑦 𝑟𝑒𝑡𝑢𝑟𝑛 𝑐𝑠 3 RESULTADOS O código testa os três métodos em duas funções diferentes f1 e f2 em dois intervalos diferentes Para cada combinação de função e intervalo ele calcula os polinômios interpoladores usando os três métodos e realiza dois testes 1 Resolve px 0 para encontrar uma aproximação da raiz da função 2 Calcula pc e pc que são aproximações para fc e fc Em seguida calcula os erros obtidos comparando essas aproximações com os valores reais da função e sua derivada Além disso o código também implementa um segundo teste onde ele aproxima a integral da função expx no intervalo 0 1 pela integral do polinômio interpolador de Lagrange para partições do intervalo em 2 e 4 subintervalos Ele então calcula os erros obtidos A seguir é possível visualizar o output do programa 4 CONCLUSÃO Os resultados obtidos através da execução do código estão de acordo com o esperado demonstrando a eficácia dos métodos de interpolação na aproximação de funções desconhecidas a partir de um conjunto discreto de pontos conhecidos A Interpolação de Lagrange a Interpolação de Hermite e a Spline Cúbica cada uma com suas características e vantagens únicas foram implementadas com sucesso e testadas em várias funções e intervalos A Interpolação de Lagrange apesar de sua simplicidade mostrouse capaz de construir um polinômio que passa exatamente pelos pontos dados A Interpolação de Hermite por outro lado levou em conta não apenas os valores da função nos pontos dados mas também as derivadas nesses pontos proporcionando uma aproximação mais precisa para funções onde a derivada é conhecida A Spline Cúbica que ajusta um polinômio cúbico diferente a cada subintervalo provou ser ideal para interpolar funções que variam rapidamente Além disso o código também implementou um segundo teste onde ele aproxima a integral da função exp x no intervalo 0 1 pela integral do polinômio interpolador de Lagrange para partições do intervalo em 2 e 4 subintervalos Os erros obtidos foram calculados e estão dentro do esperado Portanto podese concluir que os métodos de interpolação implementados estão funcionando corretamente e fornecendo resultados precisos No entanto é importante lembrar que cada método tem suas próprias limitações e deve ser usado com cautela e compreensão adequadas Com esses métodos à nossa disposição somos capazes de prever ou estimar valores dentro de um intervalo específico com base em um conjunto limitado de dados abrindo uma ampla gama de possibilidades para análise e previsão de dados REFERÊNCIAS SCIPY scipyinterpolateCubicSpline SciPy v1113 Manual Disponível em httpsdocsscipyorgdocscipyreferencegeneratedscipyinterpolateCubicSplineht ml Acesso em 20 out 2023 SCIPY scipyinterpolatelagrange SciPy v1113 Manual Disponível em httpsdocsscipyorgdocscipyreferencegeneratedscipyinterpolatelagrangehtml Acesso em 20 out 2023 SCIPY scipyinterpolateCubicHermiteSpline SciPy v1113 Manual Disponível emhttpsdocsscipyorgdocscipyreferencegeneratedscipyinterpolateCubicHermi teSplinehtml2 Acesso em 20 out 2023
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
7
Exercício 5 - Fórmulas de Quadratura - Introdução à Matemática Computacional 2023 2
Introdução à Matemática Computacional
UFES
44
Slide - Derivada Numérica - Introdução à Matemática Computacional 2023 2
Introdução à Matemática Computacional
UFES
32
Slide - Integração Numérica 2023 2
Introdução à Matemática Computacional
UFES
11
Exercício 4 - Introdução à Matemática Computacional 2023 2
Introdução à Matemática Computacional
UFES
2
Exercícios - Rotinas Numéricas - Introdução à Matemática Computacional 2023 2
Introdução à Matemática Computacional
UFES
1
IMG_1137 jpeg
Introdução à Matemática Computacional
UNIARP
Texto de pré-visualização
import numpy as np from scipyinterpolate import lagrange CubicSpline from scipyintegrate import quad Funções para teste def f1x return x npexpx def f2x return x2 npcosx def f3x return npexpx Derivadas das funções para teste def df1x return 1 npexpx def df2x return 2xnpcosx x2npsinx Função para calcular o polinômio interpolador de Lagrange def lagrangeinterpolationf a b x nparraya ab2 b y fx poly lagrangex y return poly Função para calcular o polinômio interpolador de Hermite def hermiteinterpolationf df a b x nparraya ab2 b y fx dy dfx Calcular os coeficientes do polinômio de Hermite z npzeros2lenx z2 x z12 x w npzeros2lenx w2 y w12 y for i in range2 2lenx for j in rangei 0 1 if zj1 zji wj dyintzj1 else diff zjzji if diff 0 wj wjwj1 diff Criar o polinômio de Hermite poly nppoly1dw1 return poly Função para calcular o polinômio interpolador spline cúbica def cubicsplineinterpolationf a b x nparraya ab2 b y fx cs CubicSplinex y return cs Teste das funções testfunctions f1 f2 testintervals 0 1 1 2 for i in rangelentestfunctions f testfunctionsi a b testintervalsi Polinômio interpolador de Lagrange polylagrange lagrangeinterpolationf a b Polinômio interpolador de Hermite polyhermite hermiteinterpolationf df1 a b Polinômio interpolador spline cúbica cs cubicsplineinterpolationf a b Teste 1 Resolva px0 para aproximar a raiz da função f rootlagrange nprootspolylagrange roothermite nprootspolyhermite rootcs csroots print Teste 1 para f i1 print Raiz aproximada pela interpolação de Lagrange rootlagrange printRaiz aproximada pela interpolação de Hermite roothermite printRaiz aproximada pela interpolação spline cúbica rootcs Teste Calcule os valores pc e pc aproximações para fc e fc Calcule os erros obtidos c a b 2 pclagrange polylagrangec pchermite polyhermitec pccs csc print Valor de pc pela interpolação de Lagrange pclagrange printValor de pc pela interpolação de Hermite pchermite printValor de pc pela interpolação spline cúbica pccs errolagrange absfc pclagrange errohermite absfc pchermite errocs absfc pccs print Erro da interpolação de Lagrange errolagrange printErro da interpolação de Hermite errohermite printErro da interpolação spline cúbica errocs Teste 2 Uma análise da aproximação em todo o intervalo pode ser obtida aproximando a integral de f pela integral do polinômio ambas obtidas analiticamente Considere a seguinte função fx expx no intervalo 01 Considere polinômios interpeladores obtidos a partir de partições do intervalo 01 em 2 subintervalos e em 4 subintervalos Aproxime a integral da função f pela integral do polinômio interpolador Calcule os erros obtidos def lagrangeinterpolationtest2f a b n x nplinspacea b n1 y fx poly lagrangex y return poly polylagrange2 lagrangeinterpolationtest2f3 0 1 2 polylagrange4 lagrangeinterpolationtest2f3 0 1 4 integralf3 quadf301 integralpolylagrange2 quadpolylagrange201 integralpolylagrange4 quadpolylagrange401 errolagrange2 absintegralf3integralpolylagrange2 errolagrange4 absintegralf3integralpolylagrange4 print Teste 2 print Erro da interpolação de Lagrange com 2 subintervalos errolagrange2 printErro da interpolação de Lagrange com 4 subintervalos errolagrange4 ANÁLISE COMPARATIVA DE MÉTODOS DE INTERPOLAÇÃO POLINOMIAL 1 INTRODUÇÃO A interpolação é uma técnica matemática essencial que desempenha um papel crucial em muitos campos incluindo ciência da computação física e engenharia Ela é usada para estimar valores desconhecidos dentro de um conjunto de pontos conhecidos permitindo prever ou aproximar valores que não são diretamente observáveis ou conhecidos O código apresentado neste contexto demonstra a implementação de três métodos de interpolação polinomial Interpolação de Lagrange Interpolação de Hermite e Spline Cúbica A Interpolação de Lagrange é um dos métodos mais simples e comuns de interpolação polinomial que constrói um polinômio que passa exatamente pelos pontos dados No entanto pode sofrer do fenômeno de Runge onde o erro na interpolação aumenta com o número de pontos A Interpolação de Hermite é uma extensão da Interpolação de Lagrange que não apenas faz o polinômio passar pelos pontos dados mas também atende às condições sobre as derivadas dos pontos tornandoa mais precisa para funções onde a derivada é conhecida A Spline Cúbica é um tipo especial de interpolação que divide o intervalo em subintervalos e ajusta um polinômio cúbico diferente a cada subintervalo garantindo que a função resultante seja suave e contínua tornandoa ideal para interpolar funções que variam rapidamente Embora esses métodos sejam ferramentas poderosas para lidar com uma ampla gama de problemas práticos eles têm suas limitações e devem ser usados com cautela e compreensão adequadas 2 MÉTODOS 21 INTERPOLAÇÃO DE LAGRANGE Este método é baseado no polinômio interpolador de Lagrange que é um polinômio que passa por um conjunto específico de pontos O polinômio de Lagrange é único e passará exatamente por cada ponto dado A ideia básica por trás da interpolação de Lagrange é que um polinômio de grau n pode ser determinado exclusivamente por n 1 pontos No código a função lagrangeinterpolation implementa esse método Ela recebe uma função f e um intervalo a b cria um array x com três pontos igualmente espaçados nesse intervalo calcula os valores correspondentes y fx e então usa a função lagrange da biblioteca SciPy para calcular o polinômio interpolador de Lagrange que passa por esses pontos 𝑑𝑒𝑓 𝑙𝑎𝑔𝑟𝑎𝑛𝑔𝑒𝑖𝑛𝑡𝑒𝑟𝑝𝑜𝑙𝑎𝑡𝑖𝑜𝑛𝑓 𝑎 𝑏 𝑥 𝑛𝑝 𝑎𝑟𝑟𝑎𝑦𝑎 𝑎 𝑏2 𝑏 𝑦 𝑓𝑥 𝑝𝑜𝑙𝑦 𝑙𝑎𝑔𝑟𝑎𝑛𝑔𝑒𝑥 𝑦 𝑟𝑒𝑡𝑢𝑟𝑛 𝑝𝑜𝑙𝑦 22 INTERPOLAÇÃO DE HERMITE A interpolação de Hermite é uma extensão da interpolação de Lagrange que também leva em conta as derivadas dos pontos Isso significa que o polinômio interpolador não apenas passará pelos pontos dados mas também terá as mesmas derivadas que a função original nesses pontos Isso pode melhorar significativamente a precisão da interpolação para funções onde a derivada é conhecida No código a função hermiteinterpolation implementa esse método Ela recebe uma função f sua derivada df e um intervalo a b cria um array x com três pontos igualmente espaçados nesse intervalo calcula os valores correspondentes y fx e as derivadas correspondentes dy dfx e então calcula os coeficientes do polinômio interpolador de Hermite que passa por esses pontos com as derivadas dadas 𝑑𝑒𝑓 ℎ𝑒𝑟𝑚𝑖𝑡𝑒𝑖𝑛𝑡𝑒𝑟𝑝𝑜𝑙𝑎𝑡𝑖𝑜𝑛𝑓 𝑑𝑓 𝑎 𝑏 𝑥 𝑛𝑝 𝑎𝑟𝑟𝑎𝑦𝑎 𝑎 𝑏2 𝑏 𝑦 𝑓𝑥 𝑑𝑦 𝑑𝑓𝑥 𝐶𝑎𝑙𝑐𝑢𝑙𝑎𝑟 𝑜𝑠 𝑐𝑜𝑒𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑒𝑠 𝑑𝑜 𝑝𝑜𝑙𝑖𝑛ô𝑚𝑖𝑜 𝑑𝑒 𝐻𝑒𝑟𝑚𝑖𝑡𝑒 𝑧 𝑛𝑝 𝑧𝑒𝑟𝑜𝑠2 𝑙𝑒𝑛𝑥 𝑧 2 𝑥 𝑧1 2 𝑥 𝑤 𝑛𝑝 𝑧𝑒𝑟𝑜𝑠2 𝑙𝑒𝑛𝑥 𝑤 2 𝑦 𝑤1 2 𝑦 𝑓𝑜𝑟 𝑖 𝑖𝑛 𝑟𝑎𝑛𝑔𝑒2 2 𝑙𝑒𝑛𝑥 𝑓𝑜𝑟 𝑗 𝑖𝑛 𝑟𝑎𝑛𝑔𝑒𝑖 0 1 𝑖𝑓 𝑧𝑗 1 𝑧𝑗 𝑖 𝑤𝑗 𝑑𝑦𝑖𝑛𝑡𝑧𝑗 1 𝑒𝑙𝑠𝑒 𝑑𝑖𝑓𝑓 𝑧𝑗 𝑧𝑗 𝑖 𝑖𝑓 𝑑𝑖𝑓𝑓 0 𝑤𝑗 𝑤𝑗 𝑤𝑗 1 𝑑𝑖𝑓𝑓 𝐶𝑟𝑖𝑎𝑟 𝑜 𝑝𝑜𝑙𝑖𝑛ô𝑚𝑖𝑜 𝑑𝑒 𝐻𝑒𝑟𝑚𝑖𝑡𝑒 𝑝𝑜𝑙𝑦 𝑛𝑝 𝑝𝑜𝑙𝑦1𝑑𝑤 1 𝑟𝑒𝑡𝑢𝑟𝑛 𝑝𝑜𝑙𝑦 23 SPLINE CÚBICA Uma spline cúbica é uma função definida por peças que consiste em polinômios cúbicos em cada subintervalo do intervalo total Cada polinômio cúbico é determinado pelos valores da função nos pontos finais do subintervalo e pelas derivadas nos pontos finais do subintervalo As splines cúbicas são suaves e contínuas em todo o intervalo total e podem fornecer uma boa aproximação para muitas funções diferentes No código a função cubicsplineinterpolation implementa esse método Ela recebe uma função f e um intervalo a b cria um array x com três pontos igualmente espaçados nesse intervalo calcula os valores correspondentes y fx e então usa a função CubicSpline da biblioteca SciPy para calcular a spline cúbica interpoladora que passa por esses pontos 𝑑𝑒𝑓 𝑐𝑢𝑏𝑖𝑐𝑠𝑝𝑙𝑖𝑛𝑒𝑖𝑛𝑡𝑒𝑟𝑝𝑜𝑙𝑎𝑡𝑖𝑜𝑛𝑓 𝑎 𝑏 𝑥 𝑛𝑝 𝑎𝑟𝑟𝑎𝑦𝑎 𝑎 𝑏2 𝑏 𝑦 𝑓𝑥 𝑐𝑠 𝐶𝑢𝑏𝑖𝑐𝑆𝑝𝑙𝑖𝑛𝑒𝑥 𝑦 𝑟𝑒𝑡𝑢𝑟𝑛 𝑐𝑠 3 RESULTADOS O código testa os três métodos em duas funções diferentes f1 e f2 em dois intervalos diferentes Para cada combinação de função e intervalo ele calcula os polinômios interpoladores usando os três métodos e realiza dois testes 1 Resolve px 0 para encontrar uma aproximação da raiz da função 2 Calcula pc e pc que são aproximações para fc e fc Em seguida calcula os erros obtidos comparando essas aproximações com os valores reais da função e sua derivada Além disso o código também implementa um segundo teste onde ele aproxima a integral da função expx no intervalo 0 1 pela integral do polinômio interpolador de Lagrange para partições do intervalo em 2 e 4 subintervalos Ele então calcula os erros obtidos A seguir é possível visualizar o output do programa 4 CONCLUSÃO Os resultados obtidos através da execução do código estão de acordo com o esperado demonstrando a eficácia dos métodos de interpolação na aproximação de funções desconhecidas a partir de um conjunto discreto de pontos conhecidos A Interpolação de Lagrange a Interpolação de Hermite e a Spline Cúbica cada uma com suas características e vantagens únicas foram implementadas com sucesso e testadas em várias funções e intervalos A Interpolação de Lagrange apesar de sua simplicidade mostrouse capaz de construir um polinômio que passa exatamente pelos pontos dados A Interpolação de Hermite por outro lado levou em conta não apenas os valores da função nos pontos dados mas também as derivadas nesses pontos proporcionando uma aproximação mais precisa para funções onde a derivada é conhecida A Spline Cúbica que ajusta um polinômio cúbico diferente a cada subintervalo provou ser ideal para interpolar funções que variam rapidamente Além disso o código também implementou um segundo teste onde ele aproxima a integral da função exp x no intervalo 0 1 pela integral do polinômio interpolador de Lagrange para partições do intervalo em 2 e 4 subintervalos Os erros obtidos foram calculados e estão dentro do esperado Portanto podese concluir que os métodos de interpolação implementados estão funcionando corretamente e fornecendo resultados precisos No entanto é importante lembrar que cada método tem suas próprias limitações e deve ser usado com cautela e compreensão adequadas Com esses métodos à nossa disposição somos capazes de prever ou estimar valores dentro de um intervalo específico com base em um conjunto limitado de dados abrindo uma ampla gama de possibilidades para análise e previsão de dados REFERÊNCIAS SCIPY scipyinterpolateCubicSpline SciPy v1113 Manual Disponível em httpsdocsscipyorgdocscipyreferencegeneratedscipyinterpolateCubicSplineht ml Acesso em 20 out 2023 SCIPY scipyinterpolatelagrange SciPy v1113 Manual Disponível em httpsdocsscipyorgdocscipyreferencegeneratedscipyinterpolatelagrangehtml Acesso em 20 out 2023 SCIPY scipyinterpolateCubicHermiteSpline SciPy v1113 Manual Disponível emhttpsdocsscipyorgdocscipyreferencegeneratedscipyinterpolateCubicHermi teSplinehtml2 Acesso em 20 out 2023