- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
土建类FORTRAN计算机实践报告.doc
本科生课程设计(实践)设计报告
(程序设计基础)
题 目 线性方程组求解 学生姓名 指导教师 学 院 专业班级 学生学号
计算机基础教学实验中心
10年 7月 8日
FORTRAN课程实践报告
课题如下:
用Jacobi迭代Gauss-Seidel迭代b。一天文学家要确定一颗小行星绕太阳运行的轨道,他在轨道平面内建立以太阳为原点的直角坐标系,在五个不同的点对小行星作了五次观察,测得轨道上五个点的坐标数据(单位:万公里)如下表所示:
P1 P2 P3 P4 P5 X坐标 53605 58460 62859 66662 68894 Y坐标 6026 11179 16954 23492 30890 由开普勒第一定律知,小行星轨道为一椭圆,椭圆的一般方程可表示为:
a1x2+2a2xy+a3y2+2a4x+2a5y+1=0
分别将五个点的数据代入椭圆一般方程中,得到线性方程组,求出待定系数a1,a2,a3,a4,a5。绘制行星绕太阳运行的轨道。
(2)熟悉文件的操作,通过文件获取数据,并将结果输出至文件中。
(3)熟悉图形操作,利用QuickWin提供的库函数绘制图形。
输入系统的数据总系统有P1,P2,P3,P4,P5,而期待的结果有a1,a2,a3,a4,a5.模块设计:
设计思想:
首先认识到这个系统的开发环境是该Fortran Power Station 4.0,所以我先了解了该软件的特点,又由于该程序涉及到多种计算求解方法,则最主要的系统开发思想是模块化设计与断点设计。具体是指把主程序需要打开的文件。要调用的子例行程序作为模块分批设计。在程序设计阶段,考虑到要用数据类型与单位,提高输入数据本身的精确度。因为等待设计的系统不仅要具备的所需的功能还要尽量的高效,简洁,精确。所以在设计过程中,有格外注意各个方面的设计。
由于题目要求从文件中读取数据,所以先要把数组中的数据输入到文件中。
数据按已有格式顺序方式存储在i.txt,并将第一次运算产生的数据存储在p.txt文件夹中。
编程:
(1)建立高斯消去法为计算方法的子例行程序,把它分为求最值、消去和回代。整合两者的时候,既可以采用前者调用后者模式,也可以在主程序调用两者作为子例行程序的方式。我选用了后一种设计思路。程序如下:
subroutine hao(coefficient,b,n,a)
real(8)::coefficient(n,n),b(n),a(n)
integer pos(n),posk
real scale(n)
if(n.gt.100)then
print*,errror-matrix is too large for yuan routine
stop
end if
!求每行最大值
do i=1,n
pos(i)=i
scalemax=0
do j=1,n
scalemax=max(scalemax,abs(coefficient(i,j)))
end do
scale(i)=scalemax
end do
!消元
do k=1,n-1
ratiomax=0
do i=k,n
ratio=abs(coefficient(pos(i),k))/scale(pos(i))
if(ratio.gt.ratiomax)then
j=i
ratiomax=ratio
end if
end do
posk=pos(j)
pos(j)=pos(k)
pos(k)=posk
do i=k+1,n
coeff=coefficient(pos(i),k)/coefficient(posk,k)
do j=k+1,n
coefficient(pos(i),j)=coefficient(pos(i),j)-coeff*coefficient(posk,j)
end do
coefficient(pos(i),k)=coeff
b(pos(i))=b(pos(i))-coefficient(pos(i),k)*b(posk)
end do
end do
!回代
a(n)=b(pos(n))/coefficient(pos(n),n)
do i=n-1,1,-1
sum=b(pos(i))
do j=i+1,n
sum=sum-coefficient(pos(i),j)*a(j)
end do
a(i)=sum/coefficient(pos(i),i)
end do
end
(2)根据题目所给椭圆方程编写计算程序,将细枝末节准备好后,着手建立系
您可能关注的文档
最近下载
- (交通运输)绿色低碳交通技术分配道路运输组织与管理.pdf VIP
- 《五四运动》-(精选)课件.ppt VIP
- N-乙酰神经氨酸(食品安全企业标准).pdf
- 学院学生管理工作汇报.pptx VIP
- 公安辅警招聘知识考试题库及答案(推荐).docx VIP
- 现金日记账和银行存款日记账_现金日记账的登记方法.pdf VIP
- 2024-2025学年江苏省无锡市梁溪区侨谊实验中学七年级(上)期中考试数学试卷(含答案).docx VIP
- 班主任工作手册:日常管理与学生指导.docx VIP
- 生物信息学软件:QIAGEN CLC二次开发_(5).序列比对与分析.docx VIP
- 《大学生创新创业基础教程》教案 项目一 初识创新与创业.pdf VIP
原创力文档


文档评论(0)