オイラーの公式を使う解法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
クロカ

オイラーの公式を使う解法

#1

投稿記事 by クロカ » 15年前

★ 大学生ですが質問させてください! NEW / クロカ 引用
f'(x)=3f(x)+1 これの求め方は

「f(0)=2であれば、f'(0)3×2+1であるから、オイラー法によって、f(Δx)=2+7×Δx と求まっていく。 f(2Δx)は求まった f(Δx)を使えばよい。」

と書いてありますが、
さっぱり意味がわかりません。
それで、解く必要のある問題は

「実際にこのもんだいをオイラー法を用いて解き、f(3)を求めなさい。また、解析解と比較せよ。」

です。
それで、友人がつくった答えが

#include <stdio.h>
#include <math.h>
main()
{
int i, n;
double f,f0,x,dx,sum;
dx=0.0000001;
n=3.0/dx;
f0=2.0;
sum=0.0;
for(i=0;i<n+1;i++){
sum=sum+(7.0*exp(3.0*i*dx))*dx;
}
f=f0+sum;
printf("%f %f\n",f,(-1.0/3.0)+(7.0/3.0)*exp(9.0));

return(0);
}

なんですが、あっているかはともかく
この文自体が理解できません。
この文の意味をだれか教えてくださいませんか? よろしくおねがいします

non

Re:オイラーの公式を使う解法

#2

投稿記事 by non » 15年前

>なんですが、あっているかはともかく

あっていないと思います。
>sum=sum+(7.0*exp(3.0*i*dx))*dx;
ってことは、微分方程式を解いてますよね。
解いてしまったら、オイラー法の意味がありません。

オイラー法というのは、ある値xのときのf(x)がわかるなら、
f(x+dx)=f(x)+f'(x)*dx で、dxだけ大きくなった時の値がわかるでしょって考え方です。
で、最初の初期値としてf(0)=2がわかっているなら、次々にわかるよねって考え方。


>この文自体が理解できません。

あってないんだから、理解しなくていいんじゃないの?

クロカ

Re:オイラーの公式を使う解法

#3

投稿記事 by クロカ » 15年前

返信ありがとうございます。
そうですよね指摘されて気付きましたが
既にオイラーを使わずに解いてしまっていいるんですよね。
ただ、最後に比較しているらしいのですが、そこがよく分からなかったもので・・・

ありがとうございました

non

Re:オイラーの公式を使う解法

#4

投稿記事 by non » 15年前

暇が出来たので、作ってみました。
#include <stdio.h>
#include <math.h>
int main(void) 
{
	int i, n; 
	double f,dx; 
	dx=0.0000001; 
	n=3.0/dx; 
	f=2.0; 
	for(i=0;i<=n;i++){ 
		f=f+(3*f+1)*dx;
	} 
	printf("%f %f\n",f,(-1.0/3.0)+(7.0/3.0)*exp(9.0)); 
	return(0);	 
}

クロカ

Re:オイラーの公式を使う解法

#5

投稿記事 by クロカ » 15年前

わざわざご親切に回答ありがとうございます。
まだあまり理解できていませんが、時間をかけてでも
がんばってモノにできたらとおもいます

閉鎖

“C言語何でも質問掲示板” へ戻る