×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

Octaveによる数値積分は,Octaveを用いて数値積分をするページです.

Octaveによる数値積分

Octaveを用いた数値積分

  
 数値積分法については,さまざま提案されていますが,ここでは有名なニュートン・コーツ求積法における3種類をOctaveで計算します. 1つ目は分割点の定数近似,2つ目は台数公式と呼ばれる分割点同士の1次近似,3つ目はシンプソンの公式と呼ばれる2次式近似で,数値積分するものです.


数値積分法



 Octaveを用いて,次式を,定義域 [0,π/2] の範囲で,数値積分する方法を下に示します..






基本の数値積分(定数近似) 台数公式(1次式近似) シンプソンの公式(2次式近似)
#Basic Integration

#INPUT a,b,n
a=0
b=pi/2
n=100

#Define y=f(x)
function y=f(x)
y=sin(x);
end

#Calculate
d=(b-a)/n;
s=0;
for i=0:n-1
xi=a+d*i;
s=s+f(xi)*d;
end

#OUTPUT
Sum=s







# Trapezoidal formula

#INPUT a,b,n
a=0
b=pi/2
n=100

#Define y=f(x)
function y=f(x)
y=sin(x);
end

#Calculate
d=(b-a)/n;
s=d*(f(a)+f(b))/2;
for i=1:n-1
xi=a+d*i;
s=s+f(xi)*d;
end

#OUTPUT
Sum=s







# Simpson's formula

#INPUT a,b,n
a=0
b=pi/2
n=100

#Define y=f(x)
function y=f(x)
y=sin(x);
end

#Calculate
m=n/2;
d=(b-a)/n;
s=(f(a)+f(b))*d/3;

for i=0:m-1
xi=a+d*(2*i+1);
s=s+4*f(xi)*d/3;
end

for i=0:m-1
xi=a+d*(2*i);
s=s+2*f(xi)*d/3;
end

#OUTPUT
Sum=s



 定義域[0, π/2] での厳密解は 1 と分かっているので,それと比較すると,近似次数を増やすことで


厳密解に近づくことが分かります.上記の3例では,シンプソンの公式が,小数点以下4桁までの精度で,


高精度な解が得られているのがわかります.




←戻る
Copyright (C) 2007 All Rights Reserved.