#include <stdio.h>
long double f(long double x, long double y)
{
long double result = x + y*y;
return result;
}
void print_vector(int n, long double v[n])
{
for (int i = 0; i < n; i++)//calculate y[n]
{
printf("_%d = %Lf\n", i, v[i]);
}
}
int main()
{
double a = 0;
double b = 0.5;
long double h = 0.1;
double n0 = (b-a)/h + 1;
int n = n0;
printf("n = %d\n", n);
long double y[n], x[n];
y[0] = 1;
for (int i = 0; i < n; i++)//initialize x[n]
{
x[i] = a + h * i;
}
for (int i = 0; i < n; i++)//calculate y[n]
{
y[i+1] = y[i] + h*f(x[i], y[i]);
}
//print_vector(n, y);
for (int i = 0; i < n; i++)
{
printf("y(%Lf) = %Lf\n", x[i], y[i]);
}
return 0;
}
向前Euler法的C语言实现
最新推荐文章于 2024-07-18 11:11:00 发布