プログラム8.1
#include <stdio.h>
/* 関数の定義 */
double func(double x, double y);
/* オイラー法 */
void euler(double x, double y, double a, double b, int n,
double (*f)(double, double) );
int main(void)
{
int n;
printf("分割数を入力してください--->");
scanf("%d",&n);
euler( 0.0, 1.0, 0.0, 1.0, n, func );
return 0;
}
/* オイラー法 */
void euler(double x, double y, double a, double b, int n,
double (*f)(double, double) )
{
double h;
int i;
h = (b-a)/n; /* 刻み幅 */
for ( i = 0 ; i < n ; i++)
{
y = y + h * (*f)(x,y);
x += h;
printf("x=%f \t y=%f \n", x, y );
}
}
/* 関数の定義 */
double func(double x, double y)
{
return( x + y );
}