- 26.50 KB
- 2021-04-13 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
中南大学
本科生课程设计(实践)设计报告
(程序设计基础)
题 目 学生学号 学生姓名 指导教师 学 院 专业班级
微分方程求解问题
1208100101 马晶 蔡 旭 晖 土木建筑学院 土建类10-01班
计算机基础教学实验中心
2011 年 6 月 30 日
Fortran语言程序设计
摘要:《FORTRAN程序设计》课程设计是在学生修完“FORTRAN程序设计基础”之后的一门实践性课程,要求学生完成一个大型程序设计任务。通过本课程,培养学生利用程序设计技术进行计算机与专业知识的交叉应用、综合解决实际问题的能力。让学生通过自己分析问题、设计算法、编写调试程序,以解决具体的实际问题,要求掌握结构化程序设计与调试方法,得到分析问题、解决问题的初步训练,提高综合应用能力。
关键字:微分方程求解,QuickWin绘图。
题目:意大利生物学家Ancona曾致力于鱼类种群相互制约关系的研究,他从第一次世界大战期间,地中海各港口捕获的几种鱼类捕获量百分比的资料中,发现鲨鱼的比例有明显增加。为了反映在没有人工捕获的自然环境中食饵与捕食者之间的制约关系,建立一个食饵—捕食者系统的数学模型如下:
?dx1?x1(r11x2)dtdx2?x(?rx)2221dt
①x1(t), x2(t)分别是食饵、捕食者(鲨鱼)在t时刻的数量; ②r1, r2是食饵、捕食者的固有增长率;
③λ1是捕食者掠取食饵的能力,λ2是食饵对捕食者的供养能力; 给定一组具体数据求解。
食饵: r1=1,λ1=0.1, x1(0)=25;
捕食者(鲨鱼):r2=0.5,λ2=0.02,x2(0)=2;
绘制食饵和鲨鱼数量随时间的变化情况图。
1. 设计思想
(1) 问题分析:
此课题可以分为两部分来解决,一为设计求微分方程的程序,二为利用Quick Win绘制图形。
通过查阅资料及网络查询,我决定用欧拉方法来作为程序算法,第一部分分析完毕。绘图当然利用Quick Win,鉴于此程序师关于方程的,我便利用描点法来绘制图形,为避免绘图程序与主程序冲突,我将绘图程序设置为一个子程序,绘图时调用此子程序第二部分分析完毕。
(2) 设计目标:
目标即为设计程序计算求解微分方程并利用Quick Win来绘制图形。
2. 系统设计与实现
(1) 系统总体设计框架:
微分方程求解程序 数据输入 数据运算 数据存储 绘图 返回 (2) 算法
主程序 Y I=1 ? 输入R(I),I=1,4 N
N 写入“输入数据.txt” 并保存
I=2 ? T=0.0 H=0.01 M=2 Y(1)=25 N=3001 Y(2)=2 Y 调用画图程序 PICTURE 调用子程序GELR1 并处理数据 将数据写入“输出数据.text”并保存 结束
子程序F 打开“输出数据.txt” 输入R(I),I=1,4 D(1)=Y(1)*(R(1)-R(3)*Y(2)) D(2)=Y(2)*(-R(2)+R(4)*Y(1)) 返回主程序 结束 子程序GELR1(T,Y,M,H,N,Z,F,D) N-S图
子程序GELR1(T,Y,M,H,N,Z,F,D) DO I=1,M Z(I,1)=Y(I) DO J=2,N X=T+(J-2)*H CALL F(X,Y,M,D) DO I=1,M Y(I)=Z(I,J-1)+H*D(I) X=T+(J-1)*H CALL F(X,Y,M,D) DO I=1,M D(I)=Z(I,J-1)+H*D(I) DO I=1,M Y(I)=(Y(I)+D(I))/2.0 Z(I,J)=Y(I)