- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
求解ODE(常微分方程)的C程序(数值解法)
将(Ieuler Rkutta gear IMRK63 Adambm Hamming VSRK4)放入TC2.0 的Include文件夹中后,执行TEXT程序即可
TEXT Ieuler Rkutta gear IMRK63 Adambm Hamming VSRK4
/*主程序TEXT*/
double Y_initial=3.0; /*初始条件y(0),作为外部变量*/
int N=11; /*节点数N,也作为外部变量*/
#include stdio.h
#include math.h
#include stdlib.h/*以上3个均为系统提供的库函数头文件*/
#include IEULER.C
#include RKUTTA.C
#include GEAR.C
#include IMRK63.C
#include ADAMBM.C
#include HAMMING.C
#include VSRK4.C/*以上7个均为程序开发人员(我)自定义的函数,即7种算法*/
double f( double x, double y ) /*Dy/Dx=f(x,y)中的f(x,y)*/
{
double f;
f=x;
return(f);
}
void g( double x, double y, double ffd[2] )
{
ffd[0]=y*y+x*x; /* Dy/Dx=f(x,y)中的f(x,y)*/
ffd[1]=2.0*y; /*对f(x,y)再关于y求导*/
}
main()
{
int iter;
double X_max=2.0,X_min=1.0,Y[81];
int method;
void adam( double x_min,double x_max,double y[]);
void gear( double x_min,double x_max,double y[]);
void hamming( double x_min,double x_max,double y[]);
void ieuler( double x_min,double x_max,double y[]);
void imrk( int iter, double x_min,double x_max,double y[]);
void rkutta(double x_min,double x_max,double y[]);
void vsrk4(double x_min,double x_max,double y[]);
double f( double x, double y);
printf(Which method do you want,1.Euler,2.Runge-Kutta,3.gear,4.imrkutta,5.adams, 6.hamm-ing or 7.VSRK4?\n);
scanf (%d,method);
switch(method)
{
case 1: ieuler(X_min,X_max,Y); break;
case 2: rkutta(X_min,X_max,Y); break;
case 3: gear(X_min,X_max,Y); break;
case 4: { printf(please input the step in Newton method, which is needed in implict RungeKutta:\n );
scanf(%d,iter) ;
imrk(iter,X_min,X_max,Y);break;
}
case 5: adambm(X_min,X_max,Y); break;
case 6: hamming(X_min,X_max,Y); break;
case 7: vsrk4(X_min,X_max,Y); break;
default:printf(error\n);
}
}
/*IEULER算法*/
#include stdio.h
#include stdlib.h
#include math.h
extern double f( double x, double y );
extern doub
您可能关注的文档
最近下载
- 2025-2026人教部编版三年级上册语文教学计划.docx VIP
- 施工现场车辆安全教育.pptx VIP
- 给排水系统学习培训ppt课件.pptx VIP
- 2025北京市十八里店乡人民政府城市协管员招聘21人笔试参考题库附答案解析.docx VIP
- 输血科管理制度、程序性文件、SOP文件.docx VIP
- 05J909_工程做法_建筑专业图集.docx VIP
- 2021海绵城市设施通用图集.docx VIP
- 【统编版】高中语文必修上册第一单元《3百合花》优质课(29张PPT)课件.pptx VIP
- 钢丝帘线压延机生产线(中文参考).doc VIP
- 2025年福建省福州市辅警协警笔试笔试预测试题(含答案).docx VIP
文档评论(0)