《《计算物理(研究生用)》[第1篇]》由会员分享,可在线阅读,更多相关《《计算物理(研究生用)》[第1篇](47页珍藏版)》请在金锄头文库上搜索。
1、计算物理学 合肥工业大学理学院第 一 讲绪论第一篇 绪 论1.1 计算物理学概述 一、计算物理学:以计算机技术为手段,运用数学 方法,解决复杂物理问题的一门应用学科。说明:1、边缘学科;是物理、数学、计算机科学相结合的交叉科学;2、物理学的一个分支,与理论物理和实验物理密切相关。3、对复杂物理规律进行研究的重要手段。第 一 讲绪论1)实验数据的处理; 2)实时控制; 3)自动控制。实验物理:例如:在核物理和高能物理实验中,计算机能自动 处理数据,并挑选出对研究最有用的一些数据。 再如:计算分析宇宙飞船的最优飞行路线等。神洲 六。 另外,非线性物理学问题,微观结构计算。第 一 讲绪论 杂志的发展
2、 1966年,美国,伯尼、奥尔德等,计算物理杂志;1969年,西欧(英),伯基,计算物理通讯;1984年,中国,核学会,计算物理。1)经过简化假设,实验上升到理论模型;2)利用现有数学知识进行分析,遇到计算困难;3)计算机导致了数值分析方法、蒙特卡罗方法、分 子动力学方法;4)量子物理、统计物理、非线性物理;理论物理第 一 讲绪论二、计算物理学研究方法:分析物理问题建立模型选择算法计算机上 运算、分析和模拟 结果。1、算法的选择:当确定了物理问题的模型后,就要选择算法进行数值或非数值计算求解。它是计算物理的基础;算法选择的好坏,直接影响到能否计算出结果 、运算精度的高低、计算量的大小等;如果提
3、出新的算法,对算法进行分析。第 一 讲绪论(1)模型误差:将实际的物理问题归结为数学问 题时,忽略了某些次要因素,是理想化的“数学 模型”,模型本身存在着一定的误差。(2)观测误差:数学模型中含有实验测量的物理参数,带有一定的误差。如:物质密度、比热等 。(3)截断(方法)误差:计算机有限次运算,不能获得精确解而引来的误差。(4)舍入误差:计算机有限字长带来的舍入误差。2、算法的误差:所有数值计算方法(逼近)都存在误差。来源主要有以下四个方面:第 一 讲绪论3、计算的收敛性和稳定性:(2)稳定性:更关注舍入误差的问题,这是由于计算机的有限字长带来的误差在一定条件下,两者是关联的和等价的,两者的
4、关系表现得很复杂,要弄清所采取的方法是 否具有收敛性或稳定性往往非常困难。(1)收敛性:主要是研究算法误差的变化问题。有时随着计算的进行,误差越来越大,达到完全不 可靠的程度,这时收敛性就差或称发散。第 一 讲绪论1.2 MATLAB语言基础1.2.1 MATLAB的窗口环境一、MATLAB语言的显著特点1、具有强大的矩阵运算能力:Matrix Laboratory(矩阵实验室),使得矩阵运算非常简单。2、 MATLAB是一种演算式语言基本数据单元的维数和类型不需要特别说明;数学表达式和运算规则与通常的习惯类同;含有丰富的数学函数、数学处理方法和绘图功能 ;第 一 讲绪论1、启动MATLAB命
5、令窗口启动:安装好MATLAB后,双击MATLAB图标进入命令窗口,在命令窗口中直接输入命令语句 。命令:MATLAB语句格式 XXXX,如:变量表达式;将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句 执行的结果。如果希望结果不被显示,则只要在 语句之后加上一个分号(;)即可。二、MATLAB命令窗口第 一 讲绪论(1)编辑修改命令用方向键和控制键来完成 :回上一行命令 :回下一行命令(2)分页输出命令more off:不允许分页 more on:允许分页“回车键”前进一行,“空格键”显示下一页,“q”结束当前显示。 (3)多行的续行命令()如果命令语句太
6、长希望分行输入,则可用此命令。2、命令行编辑器S=1-12+13+4+9-4-18;例、 jswlx_1_4_1.m第 一 讲绪论1、变量(1)变量的命名:规则与其它语言类同。三、变量和数值显示格式(2)一些特殊的标示符(其中有些可以认为是变量或常量)ans:用于结果的缺省变量名 i、j:虚数单位realmax:最大正实数2+1023 pi:圆周率realmin:最小正实数2-1022 eps:运算最小数10-52Inf:无穷大 NaN:不定值第 一 讲绪论变量值的提取:在命令窗口中,变量值可以在任何 需要的时候被调用。命令格式如:a(3)变量操作2、数值显示格式语句后不加“;”时,执行结果可
7、以在屏幕上显示,同时赋值给指定的变量。如果没有指定变量, 则赋值给一个特殊的变量ans。如果结果为整数,则显示没有小数;如果结果不 是整数,则输出形式由format命令来控制。第 一 讲绪论1、常用的数学运算符;*;/(右除);(左除);(幂)在运算式中,多条命令可以放在一行中,它们之 间需要用“;”或“,”隔开。 “,”要求显示结果, 而“;”则禁止结果显示。四、简单的数学运算例、jswlx_1_4_ 2.m2、常用数学函数 abs;sin;cos;tan;asin;sqrt;exp;sign; mod(求余);log;imag(复数虚部);real (复 数实部) ;conj(共扼复数)
8、等第 一 讲绪论1、MATLAB的工作空间常用命令:who:显示工作空间中所有变量的一个简单列表whos:列出变量的大小、数据格式等详细信息clear :清除工作空间中所有的变量clear +变量名:清除指定的变量clc:清屏五、MATLAB的工作空间(workspace)1、help + 命令:在命令窗口中显示某命令帮助信息help graphics_通用图形函数的帮助信息。2、demo:打开示例窗口 3、Help菜单六、使用帮助第 一 讲绪论y=2,4, 5 3 6 8 y=2 4 53 6 8一、向量与矩阵的创建1.2.2 向量与矩阵运算a=1; b=2; c=3; x=5 b c; a
9、*b a+c c/b x=5.000 2.000 3.0002.000 4.000 1.5001、在命令窗口中输入矩阵的元素:纯数字(含复数)或变量(表达式)。矩阵的元素放在方括号内,行与行之间用“;”隔开 ,行内元素用空格或“,”隔开。回车键同“;” 。一行的矩阵就是向量。大的矩阵可用分行输入。第 一 讲绪论(1)用线性等间距生成向量矩阵start:step:end a=1:2:10 a=1 3 5 7 9start为起始值,step为步长,end 为终止值。当步长为1时可省略 step参数;另外step也可以取负数。2、语句生成(2)a=linspace(n1,n2,n)在线性空间上,行矢
10、量的值从n1到n2,数 据个数为n,缺省n为100。a=linspace(1,10,10) a=1 2 3 4 5 6 7 8 9 10第 一 讲绪论单位矩阵:eye(m,n); %m行n列对角线为1的矩阵 eye(m) ; % m阶单位方阵(3)一些常用的特殊矩阵零矩阵:zeros(m,n); %m行n列全0矩阵 zeros(m); %m阶全0方阵eye(2,3) ans=1 0 0 0 1 0eye(2) ans=1 0 0 1zeros(2,3) ans=0 0 00 0 0zeros(2) ans=0 0 0 0第 一 讲绪论ones(2) ans=1 11 1ones(2,3) an
11、s=1 1 11 1 1全一矩阵:ones(m,n); ones(m)(0,1)均匀分布随机矩阵:rand(m,n)产生一个 mn的均匀分布在(0,1)间的随机矩阵第 一 讲绪论1、转置:对于实矩阵用()符号或(.)求转置结 果是一样的;然而对于含复数的矩阵,则()将 同时对复数进行共轭处理,而 (.)则只是将其排列形式进行转置。a=1 2 3;4 5 6 a =1 42 53 6a=1 2 3;4 5 6. a =1 42 53 6b=1+2i 2-7i b =1.0000 - 2.0000i2.0000 + 7.0000ib=1+2i 2-7i. b =1.0000 + 2.0000i2.
12、0000 - 7.0000i二、矩阵的运算第 一 讲绪论+ ; - ;* ; 和 / ; ; .* ; . ; ./ ; . 如:a=1 2;3 4;b= 3 5; 5 9 c=a+b d=a-b c= d=4 7 -2 -38 13 -2 -5 a*b13 23; 29 51 a/b -0.50 0.50;3.50 1.50 ab -1 -1;2 3 a3 37 54; 81 118 a.*b 3 10;15 36 a./b 0.33 0.40;0.60 0.44 a.b 3.00 2.50;1.67 2.25 a.3 1 8; 27 642、四则运算与幂运算 只有维数相同的矩阵才能 进行加
13、减运算。 注意矩阵乘运算条件(前 列后行相同)。 ab左除运算等效于求 a*x=b的解;而右除a/b等 效于求 b*x =a的解。 只有方阵才可以求幂。 “.”运算是两个维数相同矩 阵对应元素之间的运算。第 一 讲绪论3、逆矩阵与行列式计算(方阵)求逆:inv(A);求行列式:det(A)a=1 2 3; 4 5 6; 2 3 5;b=inv(a)b =-2.3333 0.3333 1.00002.6667 0.3333 -2.0000-0.6667 -0.3333 1.0000det(a)ans =-3第 一 讲绪论1、矩阵下标操作A(m,n):提取第m行,第n列元素A(:,n):提取第n列
14、元素A(m,:):提取第m行元素A(m1:m2,n1:n2):提取第m1行到第m2行和第n1 列到第n2列的所有元素(提取子块)。三、矩阵的操作第 一 讲绪论m,n=size(A,x):返回矩阵的行列数m与n,当x=1 ,则只返回行数m,当x=2,则只返回列数n。a=1 2 3;3 4 5;m,n=size(a)m =2n =32、矩阵的大小length(a)ans =3max(size(a)ans =3length(A)或max(size(A):返回行或列数的最大值 。rank(a)ans =2rank(A):求矩阵的秩第 一 讲绪论1.4.3 MATLAB绘图简介MATLAB提供了丰富的绘
15、图功能 help graph2d可得到所有画二维图形的命令 help graph3d可得到所有画三维图形的命令1、基本的绘图命令 plot(x1,y1,option1,x2,y2,option2,)t x1,y1给出的数据分别为x,y轴坐标值,option1为 选项参数,以逐点连折线的方式绘制1个二维图 形;同时类似地绘制第二个二维图形,.。第 一 讲绪论例如: plot(x,y);plot(x,y,option)选项参数option定义了图形曲线的颜色、线型及 标示符号,它由一对单引号括起来。 例、 jswlx_1_4_ 3.m jswlx_1_4_ 3_.m2、选择图像 figure(1);figure(2);figure(n) 打开不同的图