作业帮 > 综合 > 作业

数值分析,C语言实现用改进的欧拉方法求解题微分方程,其中步长取为0.1.急求,在线等.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/29 10:12:57
数值分析,C语言实现用改进的欧拉方法求解题微分方程,其中步长取为0.1.急求,在线等.

用改进的欧拉方法求解40题微分方程,其中步长取为0.1.


何为改进的欧拉方法?是Euler-Richardson算法吗?#include <stdio.h>
#include <conio.h>
#include <math.h>
double WeiFen(double x, double y){
    return y*y*(cos(x)-sin(x))-y;
}
void EulerRichardson(double &x, double &y, double dx){
    //欧拉理查德算法进行迭代
    double dy_dx,ymid,xmid,dx_2;
    dx_2=dx/2;
    dy_dx=WeiFen(x,y);//得到起点的变化率
    ymid=y+dy_dx*dx_2;
    xmid=x+dx_2;
    dy_dx=WeiFen(xmid,ymid);//得到中间点的变化率
    y+=dy_dx*dx;
    x+=dx;
}
int main(){
    double x=0,y=1,xm=1.0,dx=0.1;
    printf("x\ty\n%lg\t%lg\n",x,y);
    while(x<xm){
        EulerRichardson(x,y,dx);
        printf("%lg\t%lg\n",x,y);
    }
    printf("\nFinished!\n");
    getch();
    return 0;
}看看这是不是就你想要的?

再问: euler是欧拉,我问的是改进的欧拉
再答: 我所写的就是改进的欧拉算法呀!即欧拉理查德森算法
再答: 我所写的就是改进的欧拉算法呀!即欧拉理查德森算法