源程序文件名: 教务系统.cpp
10. 用欧拉方法与改进的欧拉方法求初值问题
2x?dy??23y ?dx??y(0)?1在区间[0,1]上取步长h=0.1的数值解。要求:显示各x值下(0、0.1、0.2… 0.9、
1)两种方法计算的y值。
程序编制要点(知识点、程序框图):
开始 输入区间 欧拉公式 梯形欧拉预估校正公式 输出结果 结束
源程序代码:
#include
float f(float x, float y) {
float z;
z=2.0/3*x/(y*y); return (z); }
int main() {
float y1,y2,x1,x3,y3,y4; float h=0.1; int i,a,b;
cout<<\请输入区间:\ cin>>a>>b; x1=0; y1=1;
cout<<\欧拉方法计算得到的y值:\ for(i=1;i<(b-a)/h+1;i++) {y2=y1+h*f(x1,y1);
cout<<\ y1=y2; x1=x1+h;
}
cout<<\改进的欧拉方法计算得到的y值:\ x3=0; y3=1;
for(i=1;i<(b-a)/h+1;i++)
{y4=y3+h/2*(f(x3,y3)+f(x3+h,y3+h*f(x3,y3))); cout<<\ y3=y4; x3=x3+h; }
return 0; }
程序执行结果(拷屏):
源程序文件名: 欧拉公式.cpp