资源简介
数值计算中关于经典4阶 Runge-Kutta方法解常微分方程的通用c++程序以及Adams隐式3阶方法解常微分方程的通用c++程序源代码
代码片段和文件信息
/*
实验七:常微分方程的数值解
姓名:刘波
学号:pb07210511
*/
#include
#include
#include
using namespace std;
double f(double xdouble y)
{
return(-x*x*y*y);
}
double Runge_Kutta(double y0double x0double xndouble h)
{
double k1k2k3k4xy;
x=x0;
y=y0;
while(fabs(x-xn)>1e-12)
{
k1=f(xy);
k2=f(x+0.5*hy+0.5*h*k1);
k3=f(x+0.5*hy+0.5*h*k2);
k4=f(x+hy+h*k3);
y=y+h/6*(k1+2*k2+2*k3+k4);
x=x+h;
}
return(y);
}
double Adams(double y0double x0double xndouble h)
{
double k1k2k3k4x1x2y1y2y;
x1=x0+h;
x2=x0+2*h;
y1=Runge_Kutta(y0x0x1h);
y2=Runge_Kutta(y0x0x2h);
while(fabs(x2-xn)>1e-10)
{
k1=f(x2y2);
k2=f(x1y1);
k3=f(x0y0);
y=y1+h/3*(7*k1-2*k
评论
共有 条评论