版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用中心差分格式数值求解导数目录一、问题描述1二、格式离散1二阶导数中心差格式离散2追赶法求解线性方程组简述3计算流程图4三、程序中主要符号和数组意义5四、计算结果与讨论5五、源程序7一、问题描述利用中心差分格式近似导数,数值求解 步长分别取 二、格式离散将x轴上0,1之间的线段按上述步长,等步长的离散为n个小段,包括端点,共n+1个网格节点,示意图如下:线段上边的数字表示x轴上的坐标值,线段下边的数字表示节点编号,从0到n编号。二阶导数中心差格式离散 整理为线性方程形式 其中, 为空间离散步长;i=1,2,n-1包括边界条件的线性方程组如下: 改写成矩阵形式: 其中, ,系数矩阵A中仅三对角
2、线上的数值不全为0,其余位置上的数值全为0,是典型的对角占优的三对角矩阵,列向量f中,且,作为边界条件。追赶法求解线性方程组简述对A做Crout分解,即,,其中为待定常数,由矩阵乘法可以得到下面的式子:将对角占优三对角矩阵线性方程组等价为如下两个方程组,求解对角占优三对角矩阵线性方程组的追赶法步骤:输入数据计算求解方程组求解方程组输出计算流程图三、程序中主要符号和数组意义 符号或数组意义A、B、C、D、filename用于自动更改dat文件名的字符串变量h离散步长n离散网格数,共n+1个网格节点p辅助变量,暂时记录网格节点上的y值数组x,y离散节点的x,y坐标子程序数组a,b,c记录系数矩阵占
3、优对角线上的值子程序数组f记录线性方程组常数向量子程序数组s,r,t,g追赶法求解线性方程组需要用到的中间辅助向量四、计算结果与讨论不同步长的数值结果函数曲线与精确解的对比 从对比图中可以看到,在所取的四个计算步长下,数值计算结果与精确解都符合得相当好StepAccuracy(Max-error)0.050.013.264604683472783E-0060.0010.00019.862256566961491E-009不同网格步长的计算精度由相应步长下所有网格节点上数值解与精确解的误差的最大值来度量,即上表中的Max-error来度量。从上表中可以看出,随着网格节点的加密,Max-error
4、的数量级在降低,即数值解的精度提高。上述四个步长中,将线段离散成一万个网格时,数值结果的精度最高。五、源程序program mainimplicit nonecharacter(13) filename !定义了五个字符串变量,用于按输出数据的需要自动更改dat文件的文件名character(3) Acharacter(6) Bcharacter(4) Ccharacter(3) Dinteger : n,ireal(8) : h,error,preal(8),allocatable : y(:),x(:) !声明可变长度数组,x、y轴坐标定义为可变数组,数组长度按需要自动更改write(*,
5、*)"输入步长:"read (*,*)h !读入空间步长 n=NINT(1.0/h) !nint命令,取与浮点数最接近的整数 allocate (y(0:n),x(0:n) !指定可变数组的长度 A="po-" !po 代表problem open(unit=11,file="help.txt") !打开一个txt文件,用于帮助更改dat文件的文件名 write(11,"(f6.4)")h rewind(11) ! 将文件的读写位置移回到文件的最前面 read(11,"(A6)")B C=&qu
6、ot;.dat" filename=A/B/C call subsolution(y,n,h) !调用追赶法求解线性方程组的子程序 open(unit=10,file=filename) do i=0,n x(i)=real(i)*h end do write(10,*)'TITLE = "X - Y CURVE"' !写入到dat文件中的一段字符,便于用tecplot软件后处理计算数据 write(10,*)'VARIABLES = "X", "Y"' write(10,"(
7、9;ZONE T=""Problem1-',f8.5,'"", I=',I6,', F=POINT')")h,n+1 do i=0,n write(*,"(F10.8,10x,F10.8)")x(i),y(i) write(10,"(F10.8,10x,F10.8)")x(i),y(i) !将数值解数据写入dat文件 end do y(0)=0 y(n)=1 error=0.0 do i=1,n-1 p=y(i) y(i)=(1+0.25*sin(2.0)*(i*h
8、)-0.25*sin(2.0*i*h) !求解节点精确值 error=max(error,abs(p-y(i) !寻找各个节点误差的最大值 end do write(10,"('ZONE T=""Problem1-',f8.5,'-exact"", I=',I6,', F=POINT')")h,n+1 do i=0,n write(*,"(F10.8,10X,F10.8)")x(i),y(i) write(10,"(F10.8,10X,F10.8)"
9、;)x(i),y(i) !将精确解数据写入dat文件 end do D="er-" !er 代表error,这里指精确值和数值计算值之间的差别 filename=D/B/C open(unit=12,file=filename) write(12,*)"max-error=",error !将误差最大值写入dat文件 write(*,*)n,error write(*,*)filename stop end !主程序结束 subroutine subsolution(y,n,h) !子程序 implicit none integer :n,i real(
10、8) : h real(8) : y(0:n) !数组和变量的声明不能同时进行 real(8),allocatable : a(:),b(:),c(:),s(:),t(:),f(:),g(:) !声明可变长度数组 allocate(a(1:n),b(0:n),c(0:n-1),s(0:n),t(0:n-1),f(0:n),g(0:n) !指定可变数组的长度 a=1 !对数组a,b,c赋值 b=-2 c=1 a(n)=0 b(0)=1 b(n)=1 c(0)=0 f(0)=0 !对数组f 赋值 f(n)=1 do i=1,n-1 f(i)=h*h*sin(2.0*real(i)*h) end do s(0)=b(0) !计算s,t t(0)=c(0)/b(0) do i=1,n-1 s(i)=b(i)-a(i)*t(i-1) t(i)=c(i)/s(i) end do s(n)=b(n)-a(n)*t(n-1) g(0)=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年学校后勤服务与资产管理校长试题含答案
- 《企业国际化经营面临的形势与对策分析》课件
- 2026年剧本杀运营公司新剧本引进评估管理制度
- 2026年可穿戴设备健康监测行业创新报告
- 2025年新能源车产业链变革与趋势创新报告
- 2026年基因编辑在医学研究创新报告
- 2025年预制菜调味地域特色适配与标准化生产分析报告
- 2025年特色小镇文化创意产业集群建设中的文化创意产业创新发展可行性研究
- 济源辅警面试题目及答案
- 当地辅警面试题目及答案
- 理塘县财政局(县国有资产监督管理局)关于公开招聘县属国有企业2名总经理及1名财务总监的参考题库完美版
- 2026年三亚交投产业发展有限公司招聘备考题库完整答案详解
- 管廊运维员培训课件
- 2026北京海淀初三上学期期末数学试卷和答案
- 2025杭州临平环境科技有限公司公开招聘49人笔试备考试题及答案解析
- 本霍根的五堂课中文版
- 环境保护体系框图
- 幼儿园课程标准要求
- 江河流域农业面源污染综合治理项目初步设计
- 基坑开挖施工方案-自然放坡
- GB/T 36964-2018软件工程软件开发成本度量规范
评论
0/150
提交评论