插值计算椭圆周长并与计算误差

题目

I ( b ) = ∫ 0 π / 2 1 + ( b 2 − 1 ) cos ⁡ 2 t d t I(b)= \int _{0}^{\pi /2}\sqrt{1+(b^{2}-1)\cos ^{2}t}dt I(b)=0π/21+(b21)cos2t dt
上述函数的导数为
I ′ ( b ) = ∫ 0 π / 2 b cos ⁡ 2 t 1 + ( b 2 − 1 ) cos ⁡ 2 t d t I^{\prime}(b)= \int _{0}^{\pi /2}\frac{b \cos ^{2}t}{\sqrt{1+(b^{2}-1)\cos ^{2}t}}dt I(b)=0π/21+(b21)cos2t bcos2tdt
采用三种方法中最好的方法计算这一积分

(1)利用数值积分的方法给出 I ( b ) I ( b ) I(b) b = 0 , 0.1 , 0.2 , … , 1 b = 0 , 0.1 , 0.2 , \dots , 1 b=0,0.1,0.2,,1 (可以直接计算精确值的,用精确值),用Newton插值方法得到5个椭圆的周长(五个椭圆具体见上一篇图片文件的初步处理与椭圆的最小二乘拟合)。
(2)利用数值积分的方法给出 I ′ ( b ) I^{\prime} ( b ) I(b), 在 b = 0 , 0.1 , 0.2 , … , 1 b = 0 , 0.1 , 0.2 , \dots , 1 b=0,0.1,0.2,,1 (可以直接计算精确值的,用精确值),用Hermite插值方法得到5个椭圆的周长。

算法介绍

Netown插值

根据均差的定义,把 x x x看成 [ a , b ] [a,b] [a,b]上的一点,可以得到
f ( x ) = f ( x 0 ) + f [ x , x 0 ] ( x − x 0 ) f(x)=f(x_{0})+f \left[ x,x_{0}\right](x-x_{0}) f(x)=f(x0)+f[x,x0](xx0)

f ( x , x 0 ) = f ( x 0 , x 1 ) + f [ x , x 0 , x 1 ] ( x − x 1 ) f ( x , x _ { 0 } ) = f ( x _ { 0 } , x _ { 1 } ) + f [ x , x _ { 0 } , x _ { 1 } ] ( x - x _ { 1 } ) f(x,x