// §4 常微分方程的差分方法
// 程序4.1 — 欧拉方法
#include
#include
#include
#include
#include
#include
#include "expressi.cpp"
void Euler(char FxyString[],float x0,float y0,float h,int n)
{
int i;
float yi;
if(CreateFxy(FxyString)) return;
yi=y0;
for(i=1;i
yi=yi+h*f(x0+(i-1)*h,yi);
printf("\ny%d=%f",i,yi);
}
}
void main()
{
float x0,y0,h; //x0:自变量初值,y0:y(x0),h:步长
int n; //步数
char FxyString[200]; //存放C表达式格式的f(x,y)
printf("\nInput function,x0,y0,h,n: ");
scanf("%s %f %f %f %d",FxyString,&x0,&y0,&h,&n);
Euler(FxyString,x0,y0,h,n);
getch();
}
/*
运行实例
Input function,x0,y0,h,n: y-2*x/y 0 1 0.1 11
y1=1.100000
y2=1.191818
y3=1.277438
y4=1.358213
y5=1.435133
y6=1.508966
y7=1.580338
y8=1.649784
y9=1.717780
y10=1.784771
*/
欧拉法解常微分方程代码
- 格式:txt
- 大小:0.89 KB
- 文档页数:1