📄 尤拉公式解初值问题.cpp
字号:
// 尤拉公式解初值问题.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
double f(double x, double y) //函数f
{
return -y;
}
int main(int argc, char* argv[])
{
cout << " **************************************" << endl;
cout << " ** **" << endl;
cout << " ** 尤拉公式解初值问题 **" << endl;
cout << " ** **" << endl;
cout << " **************************************" << endl << endl;
int n; //等分数
cout << "以步长h=0.1将区间(0,0.2)等分" << endl;
double a=0,b=0.2;
double h=0.1;
n=(b-a)/h;
double *X; //存放x序列
X=new double[n];
double *Y; //存放y序列
Y=new double[n];
Y[0]=1; //初值
int k;
for (k=0;k<n;k++)
{
X[k]=a+k*h;
Y[k+1]=Y[k]+h*f(X[k], Y[k]);
}
cout << "X=[ "; //显示x序列
for (k=0;k<n;k++)
cout << X[k] << ", ";
cout << b << " ]" <<endl;
cout << "Y=[ "; //显示y序列
for (k=0;k<n;k++)
cout << Y[k] << ", ";
cout << Y[n] << " ]" <<endl;
//-------------------------------------------------------
cout <<endl << "----------------------------------------" << endl;
cout << "改进的欧拉公式:" << endl << endl;
for (k=0;k<n;k++)
{
double yp,yc;
yp=Y[k]+h*f(X[k], Y[k]);
yc=Y[k]+h*f(X[k+1], yp);
Y[k+1]=(yp+yc)/2;
}
cout << "Y=[ "; //显示y序列
for (k=0;k<n;k++)
cout << Y[k] << ", ";
cout << Y[n] << " ]" <<endl;
return 0;
delete [n] X;
delete [n] Y;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -