来自「收集的C语言算法程序」· 代码 · 共 37 行

TXT
37
字号
常微分方程处置问题的改进Euler方法2007-07-16 18:45#include<iostream>
using namespace std;
#define in 3.56
#define f(x,y) ((y)-2*(x)/(y))
#define M 30

void main()
{
int i;
double a,b,h,x[M+1],y[M+1];
cout<<"请输入a:\n";
cin>>a;
cout<<"请输入b:\n";
cin>>b;
h=(b-a)/M;
cout<<"步长为:"<<h<<"\n";

cout<<"假设的微分方程为:y'=y-2x/y\n";
cout<<"初值是:y(a)="<<in<<"\n";

y[0]=in;
x[0]=a;

for(i=1;i<=M;i++)
{
x[i]=x[i-1]+h;
y[i]=y[i-1]+h/2*(f(x[i-1],y[i-1])+f(x[i],y[i-1]+h*f(x[i-1],y[i-1])));
}

for(i=0;i<=M;i++)
{
cout<<"x"<<i<<"="<<x[i]<<"    "<<"y(x"<<i<<")="<<y[i]<<"\n";

}

 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?