オイラーの公式 c言語
Posted: 2015年11月16日(月) 15:03
以下はdy/dx=4xとしてx0=1,y0=1としてx=2の時のyの値を求めるプログラムです。
このプログラムを実行させるとy=6.8という値がでてきます。実際に計算するとy=7になるので値は近似していると言えます。
ここで初期条件をx0=1,y0=1,y1=7としてxが2に近似するようなxの値を求めるプログラムに上のソースコードを書き換えることで変更したいです。3行目と10行目のdouble xをdouble y1に変えるほかどこをどのように変更すればプログラムとして完成するのでしょうか?自分で変更してみてもコンパイルエラーが何度も出てしまったためここに質問させていただく次第です。よろしくお願いします。
#include <stdio.h>
void ans(double (*func)(double,double), double x0, double y0, double x);
double func1(double x, double y);
int main(int argc, char* argv[])
{
ans(func1,1,1,2);
return 0;
}
void ans(double (*func)(double,double), double x0, double y0, double x)
{
int N=10;
int i;
double xn;
double yn;
double h;
xn=x0;
yn=y0;
h=(x-x0)/N;
printf("#i\tx\ty\n");
for(i=0;i<=N;i++)
{
printf("%d\t%f\t%f\n",i,xn,yn);
yn+=h*(*func)(xn,yn);
xn+=h;
}
}
double func1(double x, double y)
{
return 4*x;
}
ここで初期条件をx0=1,y0=1,y1=7としてxが2に近似するようなxの値を求めるプログラムに上のソースコードを書き換えることで変更したいです。3行目と10行目のdouble xをdouble y1に変えるほかどこをどのように変更すればプログラムとして完成するのでしょうか?自分で変更してみてもコンパイルエラーが何度も出てしまったためここに質問させていただく次第です。よろしくお願いします。