FORTRAN+计算物理学学习日记(1)
第一周:结合李录的计算物理学学习FORTRAN语言,这周的任务是插值函数,大致编写了四个小时,编写了一个双层循环的插值函数,进行了六次插值计算例题。
例题如下:
编写代码如下:
program mainimplicit noneinteger (8)::n,resopen(unit=10,file="data.txt",status="old")read(10,*)ncall haha(n,res)open(unit=11,file="result.txt",status="new")write(11,*)resstop
end program main
!******************************
recursive subroutine haha(n,res)
implicit none
integer(8),intent(in)::n
integer(8),intent(out)::res
integer(8)::temp
if(n<=1)thenres=1
elsecall haha(n-1,temp)res=n*temp
end if
returnend subroutine
!******************************subroutine interpolyb(x1,x,n,yy)
integer k,j
integer,intent(in)::n
real,intent(in)::x1(n+1)
real,intent(in)::x
real,intent(out)::yy
real::yy(n+1)
yy(1)=1;
do k=2,n+1yy(1)=yy(1)*(x-x1(k))/(x1(1)-x1(k))
end do
yy(n+1)=1;
do k=1,nyy(n+1)=yy(n+1)*(x-x1(k))/(x1(n+1)-x1(k));
end do
do j=2:nyy(j)=1do k=1,n+1yy(j)=yy(j)*(x-x1(k))/(x1(j)-x1(k))end do
end do
return end subroutine interpolybsubroutine interp6(x1,y1,x,n,y)
real,intent(out)::y
real yy
integer,intent(in)::n
real,intent(in)::x1(n+1)
real,intent(in)::y1(n+1)
real,intent(in)::x
call interpolyb(x1,x,n,yy)
y=y1*yy
end subroutine interp6
呈现结果:利用origin绘制了简单的折线图
FORTRAN+计算物理学学习日记(1)相关推荐
- FORTRAN+计算物理学学习日记(2)
利用Fortran编写数值微分函数,利用向前向后两点式以及五点式求微分. 以上节例题为模板,编写向前向后两点式如下: !在例一的条件上,计算两点一次插值的微商,编写向前两点式,向后两点式 progra ...
- FORTRAN+计算物理学学习日记(5)
2.1常微分方程的简单数值解法 本节编写了四种简单的数值方法去求解常微分方程的初始问题,包括 Euler 方法.Taylor 级数 法.后向 Euler 方法和梯形公式. 注意点:定义格式或者数组定义 ...
- FORTRAN+计算物理学学习日记(6)
2.2Runge-Kutta 方法求解常微分方程 "直接利用 Taylor 级数展开提高算法的阶数有许多困难,特别是要确定函 数 f (x, y) 的导数,这在数值计算中是非常不方便的.为了 ...
- FORTRAN+计算物理学学习日记(7)
2.3多步法求解常微分方程 program mainimplicit noneinteger(8)::n,m,i,kreal(8),external::fa,fbreal(8)::h,x(200),y ...
- FORTRAN+计算物理学学习日记(4)
1.5基本数学运算中的求根 方法一:区间对分法求根 书中例题及编写代码如下 !!利用区间对分法求根 program mainimplicit nonereal(8)::a,b,x,t,ya=2b=3x ...
- FORTRAN+计算物理学学习日记(8)
第三章 边值问题和本征值问题 3.1numerov算法 例题 program mainimplicit noneinteger(8)::i,nreal(8)::x(600),y(600),a,h,pi ...
- Java学习日记-Day01
Java学习日记-Day01 Java语言概述 比特(byte)与字节 内存 Java基础知识图解 人机交互方式 常用的DOS命令 常用快捷键 计算机编程语言介绍 第一代语言 第二代语言 第三代语言 ...
- 深度学习日记 2 - 概率论与信息论基础
深度学习日记 2 - 概率论与信息论基础: 1.随机变量(random variable):是可以随机地取不同值的变量.我们通常用打印机 体的小写字母来表示随机变量本身,而用脚本字体中的小写字母来表示 ...
- GPU(CUDA)学习日记(十一)------ 深入理解CUDA线程层次以及关于设置线程数的思考
GPU(CUDA)学习日记(十一)------ 深入理解CUDA线程层次以及关于设置线程数的思考 标签: cuda存储线程结构网格 2012-12-07 16:30 6298人阅读 评论(4)收藏 举 ...
最新文章
- oracle用户登录的认证方式
- java 控制台刷屏 dll_Java刷屏问题,下面是我编的代码,请大神帮忙解决下,谢谢...
- CCF NOI1123 A-B
- Java 9 特性与示例
- 43大学计算机信息技术查询,大学计算机信息技术教程
- 吉林建筑大学电气与计算机学院院长,吉林建筑大学电气与计算机学院研究生导师:张玉红...
- linux如何写一个daemon程序
- [codeforces538F]A Heap of Heaps
- 在子视图中获取父视图的控制器
- C语言:简单计算器多次使用代码实现
- 基于SSM+MySQL的实现的汽车门店管理平台系统
- 【聚类分析】基于FCM聚类实现交通干道车流量聚类分析及预测含Matlab源码
- springboot 批量生成条形码图片,并下载
- 最简单的计算机原理,【图片】【技术帖】从原子到计算机(计算机原理纯正技术帖,简单且通俗)_计算机吧_百度贴吧...
- 面包屑导航 组件<el-breadcrumb>
- MATLAB中输出直观公式
- 微信H5支付,HTML页面代码
- 广告冷启动_创业公司“品牌冷启动”是战略级的工作
- 玩转Google开源C++单元测试框架
- Make It a Chorus: Knowledge- and Time-aware Item Modeling for Sequential Recommendation sigir 20