C言語 常微分方程式 (オイラー法)

C言語でオイラー法を使った

常微分方程式の数値解法を書いたので公開します。

定義などについてはオイラー法 – Wikipediaを参照してください。

#include
#include

double f(double x,double y){
    return (x*x);
}

int main(void){

    double x,y,h,e,b,a,i,num;

    printf("刻み幅h:");
    scanf("%lf",&h); //刻み幅が0.1の場合 EX) 0.1

    printf("積分範囲x[start end]:");
    scanf("%lf %lf",&b,&e); //積分区間が0から2の場合 EX) 0 2

    printf("初期値y(%f,0)=",b);
    scanf("%lf",&a); // 初期値が1.0の場合 EX) 1.0

    num = (e-b) / h; //刻み幅及び積分範囲から分割数を求める
    x = b; y = a; // 初期値を設定

    for(i=0;i<num;i++){ // オイラー法 (開始)
        y = y + h * f(x,y);
        x = x + h;

    } // オイラー法(終了)

    printf("答え:%fn",y);

    return 0;

}
label

About the author

コメントを残す