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

📄 bettereuler.h

📁 常微分方程数值解法
💻 H
字号:
#ifndef BetterEuler_h
#define BetterEuler_h
#include"Euler.h"
template<class Type> class BetterEuler:public Euler<Type>{
	private:
		Type *u2,*e2;
	public:
		BetterEuler(Type (*pf)(Type,Type)):Euler<Type>
		(pf){u2=new Type[N+1];e2=new Type[N+1];} //
		~BetterEuler(){delete []u2;delete []e2;}
		void BetterEulermeth();
		void Caluculate();
		void Error();
};
template<class Type> void BetterEuler<Type>::BetterEulermeth(){
    cout<<"Input u("<<low<<"):";cin>>u1[0];u2[0]=u1[0];u0[0]=U(t[0],u);
	cout<<setw(6)<<"t"<<setw(12)<<"Euler"<<setw(12)<<"BetterEuler"
		<<setw(12)<<"Theory"<<endl;
	cout<<setw(6)<<t[0]<<setw(12)<<u1[0]<<setw(12)<<u2[0]<<setw(12)<<u0[0]<<endl;
	for(int i=k;i<n+1;i++){		
		u1[i]=u1[i-1]+h*F(t[i-1],u1[i-1],f);
		u2[i]=u1[i];		
		Type d=1;
		while(d>E){
		Type temp=u2[i];
        u2[i]=u2[i-1]+h*(F(t[i],u2[i],f)+F(t[i-1],u2[i-1],f))/2;
		d=fabs(temp-u2[i]);
		}				
		u0[i]=U(t[i],u);
		cout<<setw(6)<<t[i]<<setw(12)<<u1[i]<<setw(12)<<u2[i]<<setw(12)<<u0[i]<<endl;
	}
}
#endif

⌨️ 快捷键说明

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