问题描述:
利用欧拉公式,求解y ’ =1/(1+x2)-2y2,当y(0)=0,h=0.5时,其在0<=x<=4时的结点值,精确到小数点后四位。

问题分析:
欧拉公式推导:当dy/dx==f(x,y)且y(x0)==y0时,可推导出切线方程的递推公式,即:yi+1=yi+f(xi,yi)(xi+1-xi)和xi=x0+ih;且此时xi+1-xi=h称为步长。所以由已给的范围和步长可算出需要计算的点数。
问题分析由给出的公式代入并且使自变量按步长递增,即可求解所谓范围的函数值

欧拉法求函数值
#include<cstdio>
double fact(double x,double y) {
 return y+(1./(1+x*x)-2*y*y)*0.5;//欧拉公式 
}
int main() {
 double x0=0, y0=0;//初始值 
 int count=9;//计算点数 
 while(count--) {
  printf("%.2lf  %.4lf\n",x0,y0);//对应点的函数结果输出 
  y0=fact(x0,y0);
  x0+=0.5;
 }
 return 0;
}
/Authors
:  江楚郎
*/

运行结果:

欧拉公式求函数值_问题分析