⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 标准四阶龙格库塔算法.cpp

📁 计算方法程序,包括高斯列主元法,复化simpson,标准四阶龙格库塔,Seidel迭代,Romberg算法
💻 CPP
字号:
#include<iostream.h>
struct xy    //为方便编程时识别,定义结构体
{
	double x,y;
};
class Runge
{
	double a,b,h;int n;
public:
	Runge(double A,double B,int N)           //公式                                                                                                
	{
		a=A;b=B;n=N;h=(b-a)/n;
		xy *t=new xy[n];
		t[0].y=0;
		for(int j=0;j<n;j++)
		{t[j].x=a+j*h;}
		cout<<endl<<"结果:"<<endl;
		double k1,k2,k3,k4;
		for(int i=0;i<n-1;i++)
		{
			k1=h*(t[i].x-t[i].y);
			k2=h*(t[i].x+0.5*h-k1);
			k3=h*(t[i].x+0.5*h-k2);
			k4=h*(t[i].x+h-k3);
			t[i+1].y=t[i].y+(k1+2*k2+2*k3+k4)/6;
		}
		cout<<t[n-1].y<<endl;
	}
};
void main()
{	cout<<"-------------------四阶Runge-Kutta公式-------------------"<<endl;
a1:	int n;double a,b;
	cout<<endl<<"y'=x-y   (0<=x<=1)"<<endl<<"y(0)=0"<<endl;
	cout<<"输入区间(a,b)为:"<<endl<<"a=";
	cin>>a;
	cout<<"b=";
	cin>>b;
	cout<<"把("<<a<<","<<b<<")分成n等分,n=";
	cin>>n;
	Runge(a,b,n);
	char out='y';
	cout<<"继续?y/n"<<endl;
	cin>>out;
	if(out!='n') goto a1;
}




⌨️ 快捷键说明

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