椭圆周长定积分公式
由于椭圆的周长可以看作是很多$\Delta x$与$\Delta y$直角边构成的斜边的和。因此就是

,此处为了简化直接用参数方程替换,就是

龙贝格积分法Matlab代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| function Romberg(fun,a,b,tol) M = 1; k = 0; h = b - a; tol1 = 1; R = zeros(10,10); R(1,1) = h*(feval(fun,a) + feval(fun,b))/2; while tol1 >= tol k = k + 1; h = h/2; tmp = 0; for i = 1:M tmp = tmp + fun(a + h*(2*i - 1)); end R(k+1,1) = R(k,1)/2 + h*tmp; M = 2*M; for m = 1:min(k,3) R(k + 1,m + 1) = R(k+1,m)+(R(k+1,m)-R(k,m))/(4^m-1); end tol1=abs(R(k,min(k,4))-R(k+1,min(k,4))); end q = R(k+1, 4) R
|
命令
此处针对a = 20,b = 10的椭圆方程而言。
>> a = 0;
>> b = pi/2;
>> f = @(x)4*sqrt(400.*sin(x).*sin(x)+100.*cos(x).*cos(x));
>> tol = 1e-4;
>> Romberg(f,a,b,tol);