📄 bettereuler.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 + -