四阶龙格-库塔法解微分方程(C++)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.作业:

用四阶龙格—库塔法求下列方程:

()()()1010100y x y x y '=-≤≤⎧⎪⎨=⎪⎩步长0.1h =。并与解析解2

51x y e -=-比较。

二.程序

#include

#include

#include

using namespace std;

double f(double x,double y){

return 10*x*(1-y);

}

int main(){

int n,i;

double h,k1,k2,k3,k4;

cout<<"Please input the number of intervals:";

cin>>n;

double *x=new double [n+1];

double *y=new double [n+1];

double *y1=new double [n+1];

h=1.0/n;

y[0]=0;

for(i=0;i<=n;i++){

x[i]=i*h;

k1=f(x[i],y[i]);

k2=f(x[i]+h/2,y[i]+k1*h/2);

k3=f(x[i]+h/2,y[i]+k2*h/2);

k4=f(x[i]+h,y[i]+k3*h);

y[i+1]=y[i]+(k1+2*k2+2*k3+k4)*h/6;

y1[i]=1-exp(-5*pow(x[i],2));

cout<

return 0;

}

左侧为数值解,右侧为解析解.

相关文档
最新文档