龙贝格方法计算椭圆周长
生活随笔
收集整理的這篇文章主要介紹了
龙贝格方法计算椭圆周长
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
龍貝格方法計算橢圓周長
橢圓周長定積分公式
由于橢圓的周長可以看作是很多Δx\Delta xΔx與Δy\Delta yΔy直角邊構成的斜邊的和。因此就是dx2+dy2\sqrt{dx^2+dy^2}dx2+dy2?,此處為了簡化直接用參數方程替換,就是4×∫0π2a2sinθ+b2cosθdθ4\times \int_{0}^{ \frac{\pi}{2}} \sqrt{a^2 sin\theta + b^2 cos\theta} d\theta4×∫02π??a2sinθ+b2cosθ?dθ。
龍貝格積分法Matlab代碼
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 >= tolk = k + 1;h = h/2;tmp = 0;%一列中上下行的關系for i = 1:Mtmp = tmp + fun(a + h*(2*i - 1));endR(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);總結
以上是生活随笔為你收集整理的龙贝格方法计算椭圆周长的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux服务器重启原因排查_Linux
- 下一篇: 【艺赛旗RPA流程开发课堂】如何使用结构