zoukankan      html  css  js  c++  java
  • math(0)---微分方程

     虽然Matlab可以很方便的进行微分方程的求解,但笔者一直好奇怎样实现用C语言去实现一个微分方程的求解。

    所以笔者挑选了一个比较简单的方程进行实现dy/dx=y+x,我采用的方法比较简单,通俗来讲就是斜率公式。高中

    时候我们学过两点之间的斜率,(y2-y1)/(x2-x1)=k,其中k是斜率,根据dy/dx=y+x, 于是我们有(y2-y1)/(x2-x1)=y+x,

      将上式改为,迭代的形式于是有(yk+1 -yk)=f(x)*(x2-x1),其中f(x)=dy/dx=y+x,如果为我们知道初值和迭代的所需

    步长,我们就可以用C语言来实现了。

    代码:

    #include <stdio.h>
    
    //equation:y'=y+x,
    //initial value y(0)=0
    
    int main(void){
        
        float x,y=0;
        float h=0.2; //set steps
        float k;
        printf("Euler:x=%f, y=%f
    ",0,0);
        for(int i=1;i<1/h;++i){
            x=(i-1)*h;
            k=x+y;
            y=y+h*k;
            printf("Euler:x=%f, y=%f
    ",x+h,y);
        }
        getchar();
        
        return 0;
    }
    微分方程
  • 相关阅读:
    团队项目冲刺阶段一(6)
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    梦断代码读后感
    每日日报
  • 原文地址:https://www.cnblogs.com/xuelanga000/p/13461471.html
Copyright © 2011-2022 走看看