数値計算プログラム

二重積分 台形則・ロンバーグ法

F$:="x^2*cos(y)"

k:=0;
j:=0:

input a,b,c,d;
input e,l;

dom t(l),u(l);

x1:=b-a;
y1:=d-c;
x:=a;
y:=c;
t(1):=val(f$);
x:=b;
t(1):t(1)+val(f$);
y:d;
t(1):=t(1)+val(f$);
x:=a;
t(1):=t(1)+val(f$);

h:=1;v:=t(1);
for i:=1 to l-1;
h1:=h;
h2:=2*h-1;
y2:=y1;
x2:=x1;
y1:=y1*0.5;
x1:=x1*0.5;
y:=c-y2;
i1:=2^(i-1);
for j:=1 to i1+1;
x:=a+x1;
v2:=0:
y:=y+y2;
for k:=1 to i1;
v2:=v2+val(f$);
x:=x+x2;
next k:

if j=1 or j=i1+1 then v:=v+v2*2;:go l1
v:=v+v2*4;
label l1;
nwxt j;

y:=c+y1;
for j:=1 to i1;
x:=a-x1;
v2:=0;
i2:=i1*2+1;
for k:=1 to i2;
x:=x+x1;
if k=1 or k=i2 then v2:=v2+2*val(f$);:go l2;
v2:=v2+4*val(f$);
label l2;
next k;

v:=v+v2;
y:=y+y2;
next j;
u(1):=v*(b-a)*(d-c)/4^(i+1);
h3:=1;
for j:=1 to i;
h3:=h3*4;
u(j+1):=u(j)+u(j)-t(j))/(h3-1);
if abs(u(j+1)-u(j)) print i+1,j,u(j+1);
next j;
j:=j+1;
h4:=i+1;
for k:=1 to h4;
t(k):=u(k);
next k;
h:=h*2;
next i;
label l3;
print u(h4),spc$(3),i+1,j;
end;

トラックバック

このエントリーのトラックバックURL:
http://allable.sakura.ne.jp/mt/mt-tb.cgi/4091

当サイトでは、第三者配信事業者によるサービスを使用して広告を表示しています。 これらの第三者配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示する目的で、 当サイトや他のサイトへのアクセスに関する情報を使用することがあります (氏名、住所、メール アドレス、電話番号は含まれません)。 このプロセスの詳細や、第三者配信事業者にこれらの情報が使用されないようにする方法については、 ここをクリックしてください。