matlab上机实践三(计算物理班)
matlab上机实践三(2班)

实验三MATLAB绘图实验要求:为达到理想的实验效果,同学们务必做到:(1)实验前认真准备,要根据实验目的和实验内容,复习好实验中可能要用到的命令,想好编程的思路,做到胸有成竹,提高上机效率。
(2)实验过程中积极思考,要深入分析命令、程序的执行结果以及各种屏幕信息的含义、出现的原因并提出解决办法。
(3)实验后认真总结,要总结本次实验有哪些收获,还存在哪些问题,并写出实验报告。
实验报告应包括实验目的、实验内容、流程图(较大程序)、程序(命令)清单、运行结果以及实验的收获与体会等内容。
同学们在上机过程中会碰到各种各样的问题,分析问题和解决问题的过程就是积累经验的过程。
只要同学们按照上面3点要求去做,在学完本课程后就一定会有很大的收获。
实验仪器:计算机实验时间:2016.4.27实验原理:1.绘制单根二维曲线:plot(x,y) x,y长度相同的向量;plot(x)x为实向量和复数向量;2.绘制多跟二维曲线:plot(x,y),(1)x为向量,y是有一维与x长度同的矩阵,(2)x,y 为同维矩阵;plot(x),x为实数矩阵,x为复数矩阵;含多个输入参数的plot函数:plot(x1,y1,x2,y2,…xn,yn)3.设置图形样式:线型,颜色,标记符号4. 图形标注:插入标题,坐标说明,图形说明等5.三维图形绘制:三维曲线和三维曲面mesh(x,y,z);surf(x,y,z)实验目的:1.掌握绘制二维图形的方法2.掌握绘制三维图形的方法3.熟悉图像处理和动画制作实验内容:1. 教材p113实验内容:1.(1)(x 取值范围-3到3),(2)。
(要求:每幅图加上横坐标说明x ,纵坐标说明y) (1)x=-3:pi/100:3; y=x-(x.^3)/(3*2*1); plot(x,y)xlabel('Variable x'); ylabel('Variable y');-3-2-10123-1.5-1-0.50.511.5Variable xV a r i a b l e y(2)ezplot('x^2+2*y^2-64',[-10,10,-25,25]); xlabel('Variable x'); ylabel('Variable y');-10-8-6-4-20246810-25-20-15-10-50510152025Variable xV a r i a b l e yx 2+2 y 2-64 = 02. 已知⎪⎪⎩⎪⎪⎨⎧>++≤+=0),1ln(210,22x x x x e x y π在55≤≤-x 范围绘制函数曲线,加上横坐标说明x ,纵坐标说明y 。
MATLAB上机实习报告

Matlab上机实习实习报告上周我们进行了本学期第二个实习部分-Matlab上机实习。
本次实习一星期,共做了四个部分。
分别是:一,Matlab基本操作;二,数值数组及其运算;三,Matlab图形绘制基础;四,SIMULINK仿真基础。
下面分别介绍个部分实习内容。
实习内容一Matlab基本操作1,实习目的:·掌握Matlab的启动和退出;·熟悉Matlab的命令窗口;·熟悉其他常用窗口和工具栏;2,对本软件有了初步认识后,接下来就开始指导书要求做一些训练了在指令窗中输入下面一段程序,功能是::画出衰减振荡曲线y=(e-t/3)sin3t及其他的包络线y0=(e-t/3)。
T的取值范围是[0,4 ]。
t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,’-r’,t,y0,’:b’,t,-y0,’:b’)观察输出结果3,通过下拉菜单File:Preferences改变设置指令窗中的字体、颜色等。
如:数据显示格式的设置:Format short 小数点后四位(缺省情况),如显示p为3.1416。
Format long 小数点后十四位,如显示p为3.14159265358979。
Formant bank 小数点后两位,如显示p为3.14。
Format short e 小数点后四位科学记数法,如显示p为3.1416e+000。
Format long e 小数点后十四五位科学记数法,如显示p为3.141592653589793e+000。
在指令窗中键入y1=2*sin(0.3*pi)/(1+sqrt(5))然后利用回调指令计算y2=2*y1*cos(0.3*pi)/(1+sqrt(5))y1 =0.5000y2 =0.18164,了解软件中的一些功能和命令。
包括熟悉历史指令窗(Command History)、熟悉当前目录浏览器(Current Diretory)、熟悉工作空间浏览器(Workspace Browser),以及一些指令如: Clear 清除当前工作区中的所有变量Clc 清除指令窗中内容(未清除当前工作区中的变量)Clf 清除图形窗口Cd 设置当前工作目录Exit,quit 退出Matlab实习内容二数值数组及其运算1,实习目的·掌握一维数组的创建和寻访;·掌握二维数组的创建和寻访;·掌握的Matlab矩阵和数组的运算;·熟悉Matlab关系操作和逻辑操作;2,实习内容和步骤(1)常量与变量变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。
matlab上机实践二(计算物理班)

实验二MATLAB程序设计实验要求:为达到理想的实验效果,同学们务必做到:(1)实验前认真准备,要根据实验目的和实验内容,复习好实验中可能要用到的命令,想好编程的思路,做到胸有成竹,提高上机效率。
(2)实验过程中积极思考,要深入分析命令、程序的执行结果以及各种屏幕信息的含义、出现的原因并提出解决办法。
(3)实验后认真总结,要总结本次实验有哪些收获,还存在哪些问题,并写出实验报告。
实验报告应包括实验目的、实验内容、流程图(较大程序)、程序(命令)清单、运行结果以及实验的收获与体会等内容。
同学们在上机过程中会碰到各种各样的问题,分析问题和解决问题的过程就是积累经验的过程。
只要同学们按照上面3点要求去做,在学完本课程后就一定会有很大的收获。
实验仪器:计算机实验时间:2018.4实验原理:1.M文件命令文件;函数文件命令文件直接运行,函数文件必须调用(不能直接运行)。
2.matlab程序控制结构(1)顺序结构(2)选择结构:if语句;switch语句;try语句(3)循环结构:for语句;while语句;循环嵌套3.函数文件:function语句4.函数调用:输出参数=函数名(输入参数)or函数名(输入参数)实验目的:1.掌握建立和执行M文件的方法2.掌握matlab的程序控制结构及其应用3. 掌握matlab 函数文件和程序调试实验内容:1.建立M 文件,文件名自己选取,编写程序,建立向量G=[1,2,3,4,5];H=[5,4,3,2,1];利用向量G 、H 以及运算符产生下列向量。
(要求只写出M 文件程序)a=1 8 27 64 125b=0 0 1 0 0c=0 0 0 1 1d=1 1 1 0 02.求分段函数的值。
32,13x 70,6980,652363≠⎪⎩⎪⎨⎧--+≠<≤+--≠<-+=x x x x x x x x x x x y 及其它且且建立M 文件(函数文件),用if 语句实现。
MATLAB上机实习报告

MATLAB上机实习报告Matlab上机实习实习报告十八周我们进行了本学期的第二次实习——Matlab上机实习。
本次实习一星期,共实习了五个部分。
分别是:一,Matlab基本操作;二,数值数组及其运算;三,Matlab图形绘制基础;四:SIMULINK仿真基础;五:句柄图形和图形用户界面制作。
下面分别介绍各部分内容:实习内容一Matlab基本操作1.实习目的:●掌握Matlab的启动和退出;●熟悉的命令窗口;●熟悉其它常用窗口和工具栏;2.输入一段程序:t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,’-r’,t,y0,’:b’,t,-y0,’:b’)输出结果:3.了解文件中的一些功能和指令.例如:clear 清除当前工作区中所有变量clc 清除指令窗内容clf 清除图形窗口cd 设置当前工作目录exit,quit 退出MATLAB实习内容二数值数组及其运算1.实习目的●掌握一维数组的创建和寻访●掌握二维数组的创建和寻访●掌握MATLAB的矩阵和数组的运算●熟悉MATLAB关系操作和逻辑操作2.要求在闭区间[0,2pi]上产生50个等距采样的一维数组A,试用两种不同的指令实现。
要访问1到5元素如何实现;寻访7到最后一个元素如何实现;寻访第2.6.8个元素如何实现;寻访大于2的元素如何实现;给第3.5.9个元素赋值100如何实现:(1)>> A=linspace(0,2*pi,50);>> A=0:(50/49):50;>> AA =Columns 1 through 90 1.0204 2.0408 3.0612 4.0816 5.1020 6.1224 7.1429 8.1633Columns 10 through 189.1837 10.2041 11.2245 12.2449 13.2653 14.2857 15.3061 16.3265 17.3469Columns 19 through 2718.3673 19.3878 20.4082 21.4286 22.4490 23.4694 24.4898 25.5102 26.5306Columns 28 through 3627.5510 28.5714 29.5918 30.6122 31.6327 32.6531 33.6735 34.6939 35.7143Columns 37 through 4536.7347 37.7551 38.7755 39.7959 40.8163 41.8367 42.8571 43.8776 44.8980Columns 46 through 5045.9184 46.9388 47.9592 48.9796 50.0000(2)>> whos A>> A(1:5)ans =0 1.0204 2.0408 3.0612 4.0816(3)>> A(7:50)ans =Columns 1 through 86.12247.14298.16339.1837 10.2041 11.2245 12.2449 13.2653Columns 9 through 1614.2857 15.3061 16.3265 17.3469 18.3673 19.3878 20.4082 21.4286Columns 17 through 2422.4490 23.4694 24.4898 25.510226.5306 27.5510 28.5714 29.5918Columns 25 through 3230.6122 31.6327 32.6531 33.6735 34.6939 35.7143 36.7347 37.7551Columns 33 through 4038.7755 39.7959 40.8163 41.8367 42.8571 43.8776 44.8980 45.9184Columns 41 through 4446.9388 47.9592 48.9796 50.0000 (4)>> A([2 6 8])ans =1.0204 5.1020 7.1429(5)>> poison=find(A>2)poison =Columns 1 through 143 4 5 6 7 8 9 10 11 12 13 14 15 16Columns 15 through 2817 18 19 20 21 22 23 24 25 26 27 28 29 30Columns 29 through 4231 32 33 34 35 36 37 38 39 40 41 42 43 44Columns 43 through 4845 46 47 48 49 50 (6)>> A([3 5 9])=100(7)>> A=[1 2 3;4 5 6]A =1 2 34 5 63. 在指令窗口输入A=[1 2 3;4 5 6] 观察结果:分别用“全坐标”“单坐标”来寻访第2行第1列的元素,并说明二维数组元素的存储顺序。
matlab计算物理

Matlab是一个非常强大的科学计算和数据处理软件,广泛应用于物理学,特别是理论物理、粒子物理和计算物理等领域。
下面是一些Matlab在计算物理中的一些常见应用:
1. **数值积分和微分**:对于复杂的积分和微分问题,可以使用Matlab中的数值方法(如辛普森法则,高斯积分等)进行求解。
2. **求解方程和方程组**:Matlab的符号计算工具箱可以用来求解复杂的方程和方程组。
3. **模拟和可视化**:Matlab可以用来模拟各种物理过程,如粒子运动,波动传播等,并且可以很方便地可视化结果。
4. **数据分析**:Matlab提供了强大的数据分析和可视化工具,可以用来处理和分析实验数据。
5. **随机过程和蒙特卡洛模拟**:对于一些不能直接求解的问题,可以使用蒙特卡洛模拟的方法来求解,例如计算复杂系统的平均行为等。
6. **物理场和波函数的模拟**:在量子力学中,波函数是一个非常重要的概念。
Matlab可以用来模拟波函数的演化,例如在势阱中的粒子波函数的演化等。
7. **图像处理**:在光学和光子学中,图像处理是一个重要的应用。
Matlab提供了强大的图像处理工具箱,可以用来处理和分析图像。
以上只是一些例子,实际上Matlab在计算物理中的应用非常广泛,具体应用会根据问题的性质和要求有所不同。
计算物理 实验(矩阵运算及其在物理中的运用 )

实验课程名称计算物理实验项目名称矩阵运算及其在物理中的运用年级专业学生姓名学号理学院实验时间:2012 年 3月 26日学院 : 专业:班级:姓名学号实验组实验时间2012-3-26 指导教师成绩实验项目名称矩阵运算及其在物理中的应用实验目的1.掌握矩阵的生成、标识与运算.2.用矩阵法求解物理中所涉及线性方程组的求解问题。
实验要求在做完实验后,科学的、真实的、完整地完成实验报告。
实验报告应包括实验实验目的、方法的概述;实验结果和实验数据的记载。
实验原理在matlab用利用pi、exp 进行运算,运用rand生成随机数矩阵,inv求逆矩阵等。
运用plot、ezplot,subplot 函数作图。
实验仪器计算机,MATLAB7实验内容1.输入a=e和a=pi,查看在指令窗口、内存窗口、历史指令窗口所出现的变量,并比较exp(pi)跟pi的exp 次方的大小。
2.构造3×3的随机数矩阵A,求它的逆矩阵,计算C=B*A和D=B.*A,然后计算C的方根及D的绝对值,在每次运算后显示方式short,long,short e,short g,long g下这些显示结果的差别。
3.自己编写一个线性方程组,用矩阵运算除法求解。
质点的运动方程是x=sin(n*t)+2,y=cos(n*t)+4,其中n取1,2,3,4,画出质点的运动轨迹图。
4.质点的运动方程是x=sin(n*t)+2,y=cos(n*t)+4,其中n取1,2,3,4,画出质点的运动轨迹图。
实验步骤及其数据1.(1)在命令窗口中输入a=exp(1) 回车a=pi 回车,图像如下:(2)在命令窗口中输入clc清楚变量,再输入a=exp(1)^pi 回车b=pi^exp(1) 回车c=a-b 回车计算结果如下:2.在命令窗口中输入A=rand(3) 回车B=inv(A) 回车C=B*A 回车D=B.*A 回车E=sqrt(C) 回车F=abs(E) 回车。
matlab计算物理

matlab计算物理摘要:一、引言1.MATLAB 的介绍2.MATLAB 在计算物理中的应用二、MATLAB 的基本操作和语法1.MATLAB 的数据类型2.MATLAB 的基本操作符3.MATLAB 的函数与脚本三、MATLAB 在物理计算中的应用1.力学a.牛顿第二定律的求解b.弹簧振子的运动2.电磁学a.库仑定律的计算b.电场和磁场的计算3.热力学a.热力学方程的求解b.热力学过程的模拟四、MATLAB 与其他软件的联合应用1.MATLAB 与Mathematica 的联合使用2.MATLAB 与Python 的联合使用五、MATLAB 在物理教学中的应用1.教学演示2.学生实践六、结论1.MATLAB 在计算物理中的优势2.MATLAB 在物理研究和教学中的前景正文:MATLAB 是一种广泛应用于科学计算和工程设计的编程语言。
近年来,随着其在计算物理领域的不断深入应用,MATLAB 已成为物理学家和工程师必备的工具之一。
本文将简要介绍MATLAB 的基本操作和语法,重点阐述其在物理计算中的应用,以及与其他软件的联合使用。
首先,我们来了解一下MATLAB 的基本操作和语法。
MATLAB 的数据类型主要有两种:数值型和字符型。
数值型包括整数、浮点数和复数,字符型用于表示字符串。
MATLAB 的基本操作符包括算术、逻辑、关系和位操作等。
此外,MATLAB 还提供了丰富的内置函数和自定义函数,用户可以通过编写脚本实现复杂数学计算和数据处理。
在物理计算领域,MATLAB 具有广泛的应用。
力学方面,MATLAB 可以用于求解牛顿第二定律的微分方程,以及模拟弹簧振子的运动等。
电磁学方面,MATLAB 可以用于计算库仑定律的电场和磁场,以及分析电磁波的传播等。
热力学方面,MATLAB 可以用于求解热力学方程,模拟热力学过程等。
为了提高计算效率和精度,MATLAB 可以与其他软件进行联合应用。
例如,MATLAB 与Mathematica 可以相互调用,实现复杂数学计算和图形绘制。
MATLAB技术上机实践报告

目录上机实践一MATLAB在“高等数学”中的应用练习(4学时)(1)上机练习——MATLAB解常微分方程(SJ101.m)(2)上机练习——MATLAB二元函数作图(SJ102.m)(3)上机编程——微分运算和积分运算(SJ103.m)(4)上机编程——线性方程组的数值解法(SJ104.m)上机实践二MATLAB在“力学”中的应用练习(4学时)(1)上机练习——质点直线运动的位置、速度和加速度(SJ201.m)(2)上机练习——轻质杆的斜抛运动(SJ202.m)(3)上机编程——质点的抛体运动(SJ203.m)(4)上机编程——物体在恒力作用下的直线运动(SJ204.m)上机实践三MATLAB在“电磁学”中的应用练习(4学时)(1)上机练习——电磁波的发射方法一(SJ301.m)(2)上机练习——电磁波的发射方法二(SJ302.m)(3)上机编程——静电场场强分布计算(SJ303.m)(4)上机编程——带电粒子在电场中的运动(SJ304.m)上机实践四MATLAB在“振动和波动”中的应用练习(4学时)(1)上机练习——旋转矢量法(SJ401.m)(2)上机练习——用惠更斯作图法确定波阵面(SJ402.m)(3)上机编程——同方向简谐振动的合成(SJ403.m)(4)上机编程——简谐波横波的演示(SJ404.m)上机实践五MATLAB在“量子物理”中的应用练习(4学时)(1)上机练习——黑体辐射随波长的变化规律(SJ501.m)(2)上机练习——势垒和隧道效应(SJ502.m)(3)上机编程——双缝干涉图样的动画模拟(SJ503.m)上机实践六MATLAB在“电子信息技术”中的应用练习(4学时)(1)上机练习——含受控源的电阻电路计算(SJ601.m)(2)上机练习——方波分解为多次正弦波之和(SJ602.m)(3)上机编程——电阻电路的计算(SJ603.m)(4)上机编程——连续信号的MATLAB描述(SJ604.m)上机实践一 MATLAB 在“高等数学”中的应用练习(4学时)【上机实践目的】使用MATLAB 软件编写相应的M 文件进行计算模拟高等数学中的一些基本问题。
09.1《Matlab及应用》上机实践报告

《Matlab 及应用》上机实践报告系别:专业班级: 学号:姓名:一、简易计算题:(第1-4小题每小题5分,第5小题10分,共30分) 1、计算323(0.98)/( 1.35)5(1/)y x x x x x =+-+-+,当2x =和4x =时的值。
方法一:编写一个函数文件humps.m ,即:function y=humps(x)y=x.^3+(x-0.98).^2/(x+1.35).^3-5*(x+1./x); 然后调用,在命令窗口中输入: >>y1=humps(2) y1=-4.4723>>y2=humps(4) y2=42.8096(或者把y1和y2放在一起,通过下列方式求解)>>y=feval('humps',[2,4]) y=-4.442342.8077 方法二:>>f=inline('y=x.^3+(x-0.98).^2/(x+1.35).^3-5*(x+1./x)'); >>f(2) ans= -4.4723 >>f(4) ans= 42.8096(或者把y1和y2放在一起,通过下列方式求解) >>y=feval(f,[2,4]) y=-4.442342.80772、计算0cos 60。
>>cos(60*pi/180)-(9-sqrt(2))^(1/3) ans=-1.46493、设1483652712A ⎡⎤⎢⎥=--⎢⎥⎢⎥--⎣⎦,542628197B -⎡⎤⎢⎥=--⎢⎥⎢⎥--⎣⎦,求*C A B =,.*D A B =。
>>A=[148;-36-5;2-7-12];>>B=[54-2;6-2-8;-1-97]; >>C=A*B C=21-7622 2621-77 -20130-32 >>D=A.*B D=516-16 -18-1240-263-84所以2176222621772013032C -⎡⎤⎢⎥=-⎢⎥⎢⎥--⎣⎦,5161618124026384D -⎡⎤⎢⎥=--⎢⎥⎢⎥--⎣⎦。
计算物理matlab课程设计

计算物理matlab课程设计一、课程目标知识目标:1. 学生能理解计算物理的基本原理,掌握运用MATLAB进行数值计算的方法。
2. 学生能运用MATLAB软件解决物理问题,如求解微分方程、进行数值积分等。
3. 学生了解计算物理在科学研究中的应用,并能够结合实际案例进行分析。
技能目标:1. 学生掌握MATLAB软件的基本操作,包括数据输入输出、绘图和编程等。
2. 学生能够运用MATLAB编写简单的计算物理程序,解决实际问题。
3. 学生具备运用计算物理方法分析问题、解决问题的能力。
情感态度价值观目标:1. 学生培养对计算物理学科的兴趣,增强学习积极性。
2. 学生认识到计算物理在现代科学研究中的重要性,增强学科认同感。
3. 学生在合作学习中培养团队协作精神,提高沟通与表达能力。
课程性质:本课程为选修课,旨在提高学生运用计算机技术解决物理问题的能力。
学生特点:学生具备一定的物理基础和编程基础,对计算物理有一定兴趣。
教学要求:教师应结合实际案例,引导学生运用MATLAB软件进行计算物理实践,注重培养学生的动手能力和创新能力。
在教学过程中,关注学生的个体差异,鼓励学生积极参与讨论,提高课堂互动。
通过课程学习,使学生能够将计算物理方法应用于实际问题的解决。
二、教学内容1. 计算物理基本原理:介绍计算物理的基本概念、数值计算方法及其在物理学中的应用。
- 教材章节:第一章 计算物理概述- 内容:数值计算方法、计算物理的应用领域。
2. MATLAB软件入门:讲解MATLAB软件的基本操作、数据类型、绘图和编程基础。
- 教材章节:第二章 MATLAB基础- 内容:数据类型、运算符、绘图、流程控制。
3. 微分方程数值解:介绍常微分方程的数值解法,如欧拉法、龙格-库塔法等。
- 教材章节:第三章 微分方程数值解- 内容:欧拉法、龙格-库塔法、应用实例。
4. 数值积分与数值优化:讲解数值积分方法、数值优化算法及其在物理问题中的应用。
用MATLAB开发大学物理计算机模拟实验

2 .磁 场 中 电 子 运 动 的 模 拟
以一定速度射入磁场中的电子 , 通过理论计算可以求出它在磁场 中的运动轨迹 , 而计算
机模 拟实 验能 动态 地展 示 电子在磁 场 中的运 动情 况 。
设一 初位 置 为 ( , . ) 初速 度 为 7 2 +5 +1 ( s 的 电子进 入 的匀强 磁场 B一 O 0O , . 1 。 i j 0k m/ )
1 .多普 勒 效 应 的 模 拟
多普勒效应是指声源和观察者之间存在相对运动而发生的收听频率和声源频率不一致
的现 象 。多普 勒 提 出该 效应后 3 , 年 巴罗特 ( u sB l t为 了验 证 , B y a o ) l 在荷 兰让 一 队小 号手 在
行 进 的平板 车上 奏乐 , 由一 些训练 有素 的音乐家 用 自己的耳 朵来 判断音 调 的变化 , 然后 音乐
地进行各种数学计算和符号演算, 绘制多种可视化图形 , 它有最 直观、 最简洁 的程序开发环
境, 而且 容易 人 门 , 不会 给教 师和学 生带来 很 大 的学 习负 担 。何 况 , 展 大学 物 理计 算 机模 开
拟实验可以使获得物理知识与学习计算机知识两方面的功能相得益彰。
本 文遴选 了三个物 理 问题 , 对开 发大学 物理计 算机模 拟实 验进行 初步 的探 索 。
家与号手的位置对调 , 重做此实验。下面将对多普勒效应进行计算机模拟。
首 先 构 建 物 理 模 型 。设 声 源 和 听 者 的 水 平 间 距
勘=5 0 最小垂直距离 =3 声源沿水平方向以 = 0 = m, 0 m, V=5 s Om/ 的速 度运 动 , 听者静 止不动 , 图 1所示 。 如
Matlab上机实习报告

Matlab上机实习报告一、实习目的本次 Matlab 上机实习的主要目的是让我们熟悉并掌握 Matlab 软件的基本操作和应用,提高我们运用数学工具解决实际问题的能力。
通过实际的编程和计算,深入理解数学算法在计算机中的实现,培养我们的逻辑思维和创新能力。
二、实习环境实习使用的计算机操作系统为 Windows 10,安装的 Matlab 版本为R2020a。
计算机配置为:Intel Core i5 处理器,8GB 内存,512GB 固态硬盘。
三、实习内容1、矩阵运算在 Matlab 中,矩阵是最基本的数据结构。
我们首先学习了矩阵的创建、访问、修改和基本运算,如加法、减法、乘法、转置等。
通过实际的编程练习,掌握了如何利用矩阵运算解决线性方程组、求逆矩阵等问题。
例如,对于线性方程组 Ax = b,其中 A 是系数矩阵,x 是未知向量,b 是常数向量。
我们可以使用 Matlab 中的反斜杠运算符“\”来求解,即 x = A\b。
2、函数绘图Matlab 具有强大的绘图功能,能够直观地展示函数的性质和变化趋势。
我们学习了如何绘制二维和三维图形,包括折线图、散点图、柱状图、曲面图等。
通过调整绘图的参数,如线条颜色、标记形状、坐标轴范围等,可以使图形更加清晰和美观。
例如,绘制函数 y = sin(x) 在区间0, 2π 上的图像,可以使用以下代码:```matlabx = 0:001:2pi;y = sin(x);plot(x, y)```3、数值计算Matlab 提供了丰富的数值计算函数,如求积分、求导数、求解常微分方程等。
我们通过实际的案例,学会了如何运用这些函数来解决科学计算和工程中的问题。
例如,使用数值积分函数“quad”计算函数 f(x) = x^2 在区间 0, 1 上的定积分,可以使用以下代码:```matlabfunction f = myfun(x)f = x^2;endresult = quad(@myfun, 0, 1)```4、程序设计在实习过程中,我们还学习了 Matlab 的程序设计结构,包括顺序结构、选择结构(ifelse 语句)和循环结构(for 循环、while 循环)。
MATLAB上机实验实验报告

MATLAB上机实验一一、实验目的初步熟悉MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息; 命令窗口二、实验内容1 熟悉MATLAB 平台的工作环境;2 熟悉MATLAB 的5 个工作窗口;3 MATLAB 的优先搜索顺序;三、实验步骤1. 熟悉MATLAB 的5 个基本窗口①Command Window 命令窗口②Workspace 工作空间窗口③Command History 命令历史记录窗口④Current Directory 当前目录窗口⑤Help Window 帮助窗口1 命令窗口Command Window;在命令窗口中依次输入以下命令:>>x=1>> y=1 2 34 5 67 8 9;>> z1=1:10,z2=1:2:5;>> w=linspace1,10,10;>> t1=ones3,t2=ones1,3,t3=ones3,1>> t4=ones3,t4=eye4x =1z1 =1 2 3 4 5 6 7 8 9 10t1 =1 1 11 1 11 1t2 =1 1 1t3 =111t4 =1 1 11 1 11 1 1t4 =1 0 0 00 1 0 00 0 1 00 0 0 1思考题:①变量如何声明,变量名须遵守什么规则、是否区分大小写;答:1变量声明1.局部变量每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用;当函数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在;脚本没有输入输出参数,由一系列MATLAB命令组成的M文件没有单独的工作空间,只能共享调用者的工作空间;当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中;2.全局变量在函数或基本工作空间内,用global声明的变量为全局变量;例如声明a为全局变量:>>global a声明了全局变量的函数或基本工作空间,共享该全局变量,都可以给它曲赋值;如果函数的子函数也要使用全局变量,也必须用global声明;3.永久变量永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它的函数存取;当声明它的函数退出时,MATLAB不会从内存中清除它,例如声明a为永久变量:>>persistent a2变量命名规则如下:始于字母,由字母、数字或下划线组成;区分大小写;可任意长,但使用前N个字符;N与硬件有关,由函数namelengthmax返回,一般N=63;不能使用关键字作为变量名关键字在后面给出;避免使用函数名作为变量名;如果变量采用函数名,该函数失效;3区分大小写②试说明分号、逗号、冒号的用法;答:分号:加上分号“;”其作用是将计算机结果存入内存,但不显示在屏幕上,反之,语句结尾若不加“;”,则表示在语句执行后,在将计算结果存入内存的同时,还将运算结果显示出来;逗号:分割列表冒号:从什么到什么,比如1:10意思是——1到10③linspace 称为“线性等分”函数,说明它的用法;可使用help命令,格式如下:>>help linspace④说明函数ones 、zeros 、eye 的用法;答;1ones函数:全部元素都为1的常数矩阵; 2zeros函数:全部元素都为0的矩阵; 3eye函数:单位矩阵;4linspace函数:如a=linspacen1,n2,n3,表示在线性空间上,行矢量的值从n1到n22 工作空间窗口Workspace;单击工作空间窗口右上角的按钮,将其从MATLAB 主界面分离出来;①在工作空间查看各个变量,或在命令窗口用who, whos注意大小写查看各个变量;②在工作空间双击变量,弹出Array Editor 窗口数组编辑器窗口,即可修改变量;③使用save 命令把工作空间的全部变量保存为文件;>>save④输入下列命令:>>clear all %清除工作空间的所有变量观察工作空间的变量是否被清空;使用load 命令把刚才保存的变量载入工作空间;>>load⑤清除命令窗口命令:>>clc3 历史命令窗口Command History;打开历史命令窗口,可以看到每次运行MATLAB 的时间和曾在命令窗口输入过的命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法;①在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Copy,然后再Paste 到命令窗口;②在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几行命令后,用鼠标将其拖动到命令窗口中执行;③在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Evaluate Selection,也可以执行;④或者在命令窗口使用方向键的上下键得到以前输入的命令;例如,按方向键“↑”一次,就重新将用户最后一次输入的命令调到MATLAB 提示符下;重复地按方向上键“↑”,就会在每次按下的时候调用再往前一次输入的命令;类似地,按方向键“↓”的时候,就往后调用一次输入的命令;按方向键“←”或者方向键“→”就会在提示符的命令中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本的方法编辑这些命令;4 当前目录命令窗口Current Directory;MATLAB 的当前目录即是系统默认的实施打开、装载、编辑和保存文件等操作时的文件夹;打开当前目录窗口后,可以看到用“save”命令所保存的文件是保存在目录C:\MATLAB6p5\work 下;5 帮助窗口Help Window;单击工具栏的图标,或选择菜单View|Help,或选择菜单Help|MATLAB Help 都能启动帮助窗口;①通过Index 选项卡查找log2函数的用法,在Search index for 栏中输入需要查找的词汇“log2”,在左下侧就列出与之最匹配的词汇条目,选择“log21”,右侧的窗口就会显示相应的内容;②也可以通过Search 选项卡查找log2 函数的用法;Search 选项卡与Index 选项卡不同,Index 只在专用术语表中查找,而Search 搜索的是整个HTML 帮助文件;2. MATLAB 的数值显示格式设置屏幕显示方式有紧凑Compact和松散Loose两种,其中Loose 为默认方式;>>a=ones1,30>>format compact>>a数字显示格式有short、long、short e、long e 等,请参照教材的列表练习一遍;>>format long>>pi>>format short>>pi>>format long>>pi>>format +>>pi>>-pi3. 变量的搜索顺序在命令窗口中输入以下指令:>>pi>>sinpi;>>exist'pi'>>pi=0;>>exist'pi'>>pi>>clear pi>>exist'pi'>>pi思考题:① 3 次执行exist'pi'的结果一样吗如果不一样,试解释为什么答:不一样,pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为②圆周率pi 是系统的默认常量,为什么会被改变为0答:pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为实验二 MATLAB语言基础一、实验目的基本掌握MATLAB向量、矩阵、数组的生成及其基本运算区分数组运算和矩阵运算、常用的数学函数;交接字符串的操作;二、实验内容1 向量的生成和运算;2 矩阵的创建、引用和运算;3 多维数组的创建及运算;4 字符串的操作;三、实验步骤1.向量的生成和运算1 向量的生成直接输入法:A =2 3 4 5 6>> B=1;2;3;4;5B =12345冒号生成发:>> A=1:2:10 ,B=1:10 ,C=10:-1:1A =1 3 5 7 9B =1 2 3 4 5 6 7 8 9 10C =10 9 8 7 6 5 4 3 2 1函数法:Linspace 是线性等分函数,logspace 是对数等分函数;>> A=linspace1,10 ,B=linspace1,30,10A =Columns 1 through 9Columns 10 through 18Columns 19 through 27Columns 28 through 36Columns 37 through 45Columns 46 through 54Columns 55 through 63Columns 64 through 72Columns 73 through 81Columns 82 through 90Columns 91 through 99Column 100B =Columns 1 through 9Column 10>> A=logspace0,4,5A =1 10 100 1000 10000练习:使用logspace 创建1-4 的有10个元素的行向量;答案:>> A=logspace1,10,4piA =+010Columns 1 through 9Columns 10 through 122 向量的运算维数相同的行向量只见可以相加减,维数相同的列向量也可以相加减,标量可以与向量直接相乘除;>> A=1 2 3 4 5, B=3:7,A =1 2 3 4 5B =3 4 5 6 7>> AT=A', BT=B',AT =12345BT =34567>> E1=A+B, E2=A-BE1 =4 6 8 10 12E2 =-2 -2 -2 -2 -2 >> F=AT-BT,F =-2-2-2-2-2>> G1=3A, G2=B/3,G1 =3 6 9 12 15G2 =向量的点积与叉积运算;>> A=ones1,10;B=1:10; BT=B';>> E1=dotA,BE1 =55>> E2=ABTE2 =55>> clear>> A=1:3,B=3:5,A =1 2 3B =3 4 5>> E=crossA,BE =-2 4 -22.矩阵的创建、引用和运算1 矩阵的创建和引用矩阵是由nm 元素构成的矩阵结构,行向量和列向量是矩阵的特殊形式;直接输入法:>> A=1 2 3;4 5 6A =1 2 3 4 5 6 >> B= 1 4 72 5 83 6 9B =1 4 72 5 83 6 9 >> A1ans =1>> A4:endans =5 36 >> B:,1ans =123>> B:ans =123456789>> B5ans =5抽取法>> clear>> A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A =1 2 3 45 6 7 89 10 11 1213 14 15 16>> B=A1:3,2:3B =2 36 710 11>> C=A1 3,2 4C =2 410 12>> A1 3;2 4ans =1 95 13函数法:>> A=ones3,4A =1 1 1 11 1 1 11 1 1 1>> B=zero3Undefined function or method 'zero' for input arguments of type 'double'. >> B=zeros3B =0 0 00 0 00 0 0>> C=eyes3,2Undefined function or method 'eyes' for input arguments of type 'double'. >> C=eye3,2C =1 00 10 0>> D=magic3D =8 1 63 5 74 9 2拼接法>> clear>> A=ones3,4A =1 1 1 11 1 1 1>> B=zeros3B =0 0 00 0 00 0 0>> C=eye4C =1 0 0 00 1 0 00 0 1 00 0 0 1>> D=A BD =1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 >> F=A;CF =1 1 1 11 1 1 11 1 1 10 1 0 0 0 0 1 0 0 0 0 1 拼接函数和变形函数法:>> clear>> A=0 1;1 1A =0 11 1>> B=2ones2B =2 22 2>> cat 1,A,B,Aans =0 11 12 22 20 11 1>> cat 2 A,B,Acat 2 A,B,AError: Unexpected MATLAB expression.>> cat2,A,B,Aans =0 1 2 2 0 11 12 2 1 1>> repmatA,2,2ans =0 1 0 11 1 1 10 1 0 11 1 1 1>> repmatA,2ans =0 1 0 11 1 1 10 1 0 11 1 1 1练习:使用函数法、拼接法、拼接函数法和变形函数法,按照要求创建以下矩阵:A为43⨯的3⨯的单位矩阵、D为33⨯的0矩阵/C为33⨯的全1矩阵、B为3魔方阵、E由C 和D纵向拼接而成,F抽取E的2---5行元素生成、G由F经变形为46⨯的大3⨯的矩阵而得、以G为子矩阵用复制函数repmat生成8矩阵H;答案:>> A=ones3,4A =1 1 1 11 1 1 11 1 1 1>> B=zeros3,3B =0 0 00 0 00 0 0>> C=eye3C =1 0 00 1 00 0 1>> D=magic3D =8 1 63 5 74 9 2>> E=C;DE =1 0 00 1 00 0 18 1 63 5 74 9 2>> F=2:5,:F=2:5,:Error: Expression or statement is incorrect--possibly unbalanced , {, or . >> F=E2:5,:F =0 1 00 0 18 1 63 5 7>> G=respaceE,3,4Undefined command/function 'respace'.>> G=respaceF,3,4Undefined command/function 'respace'.>> G=reshapeF,3,4G =0 3 1 10 1 5 68 0 0 7>> H=repmatG,2,2H =0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 2)矩阵的运算矩阵的加减、数乘与乘法已知矩阵:>> A=1 23 -1,A =1 23 -1>> B=-1 01 2B =-1 01 2>> A+Bans =0 24 1>> 2Aans =2 46 -2>> 2A-3Bans =5 43 -8>> ABans =1 4-4 -2矩阵的逆矩阵>> format rat;A=1 0 1;2 1 2;0 4 61 0 12 1 2 0 4 6 >> A1=invAA1 =-1/3 2/3 -1/6 -2 1 0 4/3 -2/3 1/6 >> AA1ans =1 0 0 0 1 0 0 0 1 矩阵的除法>> a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=b'a =1 2 1 3 1 42 2 1b =1 1 2112>> c1=binva,c2=b/ac1 =6/7 3/7 -4/7 c2 =6/7 3/7 -4/7 >> c3=invad, c4=a\bc3 =12/7-4/7Error using ==> mldivideMatrix dimensions must agree.>> c3=invad, c4=a\dc3 =12/7-4/7c4 =12/7-4/7练习:按下列要求求出各种的矩阵运算的值求矩阵的秩、特征值和特征向量、矩阵的乘幂与开方;矩阵的指数与对数矩阵的提取与翻转答案:>> A=6 3 4 3-2 5 7 -48 -1 -3 -7A =6 3 4 3-2 5 7 -48 -1 -3 -7>> B=rankAB =3>> rb=rankArb =3>> X,Lamda=eigAError using ==> eigMatrix must be square.>> X,Lamda=eigsAError using ==> eigsA must be a square matrix or a function which computes Ax. >> C=6 3 4-2 5 78 -1 -3C =6 3 4-2 5 78 -1 -3>> X,Lamda=eigsCX =Lamda =0 00 00 0>> X,Lamda=eigCX =Lamda =0 0 0 0 0 0 >> X,Lamda=eigCX =Lamda =0 0 0 0 0 0 >> D=A^2Error using ==> mpower Matrix must be square. >> D=C^2D =34 12 626 22 34>> E=sqrtmCE =+ - -+ - -- + +>> F=expmCF =+004>> G=logmCWarning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrix logarithm is returned.> In funm at 153In logm at 27G =+ - -- + + >> H=fliplrCH =4 3 6 75 -2 -3 -1 8 >> I=triuCI =6 3 4 0 57 0 0 -3 >> J=trilCJ =6 0 0 -2 5 0 8 -1 -3 >> K=diagCK =65-33.多维数组的创建及运算1)多维数组的创建>> A1=1,2,3;4 5 6;7,8,9;A2=reshape10:18,3,3 A2 =10 13 1611 14 1712 15 18>> T1:,:,1=ones3;T1:,:,2=zeros3T1:,:,1 =1 1 11 1 11 1 1T1:,:,2 =0 0 00 0 00 0 0>> T2=ones3,3,2T2:,:,1 =1 1 11 1 11 1 1T2:,:,2 =1 1 11 1 11 1 1>> T3=cat3,A1,A2,T4=repmatA1,1,1,2T3:,:,1 =1 2 34 5 67 8 9T3:,:,2 =10 13 1611 14 1712 15 18T4:,:,1 =1 2 34 5 67 8 9T4:,:,2 =1 2 34 5 67 8 92)多维数组的创建数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算;特点是两个数组相对应的元素进行运算;>> A=1:6;B=ones1,6;>> C1=A+B,C2=A-BC1 =2 3 4 5 6 7C2 =0 1 2 3 4 5 >> C3=A.B,C4=B./A,C5=A.\BC3 =1 2 3 4 5 6C4 =C5 =关系运算或逻辑运算的结果都是逻辑值;>> I=A>3,C6=AII =0 0 0 1 1 1C6 =4 5 6>> A1=A-3,I2=A1&AA1 =-2 -1 0 1 2 3 I2 =1 1 0 1 1 1>> I3=~II3 =1 1 1 0 0 0 4.字符串的操作1 字符串的创建>> S1='Ilike MATLAB'S1 =Ilike MATLAB>> S2='I''m a stuent.'S2 =I'm a stuent.>> S3=S2,'and',S1S3 =I'm a MATLAB2)求字符串长度>> lengthS1ans =12>> sizeS1ans =1 123)字符串与一维数值数组的相互转换>> CS1=absS1CS1 =73 108 105 107 101 32 77 65 84 76 65 66>> CS2=doubleS1CS2 =73 108 105 107 101 32 77 65 84 76 65 66>> charCS2ans =Ilike MATLAB>> setstrCS2ans =Ilike MATLAB练习:用char 和向量生成的方法创建如下字符串AaBbCc......XxYyZz.>> S1=65:90;S2=97:122;>> C=S1;S2;>> C=C:';>> S3=doubleC;charS3ans =AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvWwXxYyZz实验三 MALTAB数值运算一、实验目的掌握MATLAB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作;二、实验内容1)多项式运算;2)多项式插值和拟合;3)数值为积分;4)结构数组和细胞数组;三、实验步骤1、多项式运算1)多项式表示;在MATLAB中,多项式表示成向量的形式;如:432S S S+-+在MATLAB中表示为359>> s=1 3 -5 0 92)多项式的加减法相当于向量的加减法,但必须注意阶次要相同;如不同,低阶次的要补0;如多项式23547+-++相加;s s s s++与多项式432239s s>> s1=0 0 2 3 11>> s2=1 2 -5 4 7>> s3=s1+s2答;s1 =0 0 2 3 11s2 =1 2 -5 4 7s3 =1 2 -3 7 183)多项式的乘、除法分别用函数conv和的deconv实现; >> s1=2 3 11>> s2=1 3 -5 4 7>> s3=convs1,s2>> s4=deconvs3,s1答;s1 =2 3 11s2 =1 3 -5 4 7s3 =2 9 10 26 -29 65 77s4 =1 3 -5 4 74)多项式求根用函数roots;>> s1=2 4 2>> rootss1答;s1 =2 4 2ans =-1-15)多项式求值用函数polyval>> s1=2 4 1 -3>> polyvals1,3>> x=1:10>> y=polyvals1,x答;s1 =2 4 1 -3ans =90x =1 2 3 4 5 6 7 8 9 10y =Columns 1 through 84 31 90 193 352 579 886 1285 Columns 9 through 10练习:求23(1)(3)(1)21s s ss s+++++的“商”及余数;>> s1=1 0 1;s2=1 3;s3=1 1;>> s4=1 0 2 1;>> q,r=deconvconvconvs1,s2,s3,s4答;q =1 4r =0 0 2 -5 -12、多项式插值和拟合有一组实验数据如附表1-1所示;附表1-1分别用拟合二阶至三阶和插值线性和三次样条的方法来估算X=时Y的值;以下是实现一阶拟合的语句;>> x=1:10>> y=16 32 70 142 260 436 682 1010 1342 1960>> p1=polyfitx,y,1 %一阶拟合>> y1=polyvalp1, %计算多项式P1在x=的值答;x =1 2 3 4 5 6 7 8 9 10y =Columns 1 through 816 32 70 142 260 436 682 1010Columns 9 through 101342 1960p1 =y1 =+0033、数值微积分1)差分使用diff函数实现;>> x=1:2:9>> diffx答;x =1 3 5 7 9ans =2 2 2 22)可以用因变量和自变量差分的结果相处得到数值微分;>> x=linspace0,2pi,100;>> y=sinx;>> plotx,y>> y1=diffy./diffx;>> plotx1:end-1,y1答;3)cumsum函数求累计积分,trapz函数用梯形法求定积分,即曲线的面积;>> x=ones1,10>> cumsumx>> x=linspace0,pi,100;>> y=sinx;>> trapzx,y>> p=cumsumy;>> p100pi/100-1答;x =1 1 1 1 1 1 1 1 1 1ans =1 2 3 4 5 6 7 8 9 10ans =ans =练习:图A1是瑞士地图,为了算出其国土面积,首先对地图作如下测量:以由西向东方向为X轴,由南向北方向为Y 轴,选择方便的原点,并将从最西边界点到最东边界点在X轴上的区间适当划分为若干段,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,这样就得到表1,根据地图比例尺回到18mm相当于40Km,试由测量数据计算瑞士国km比较;地图的数据见附表1-2单位mm;土近似面积,与其精确值412282附表1-2X 7 13 34 48 56 61 91Y1 44 45 47 50 50 38 30 30 34 36 34 41 45 46续表提示:由高等数学的知识,一条曲线的定积分是它与x轴所围成的面积,那么两条曲线所围成的面积可由两条曲线的定积分相减得到;4、结构数组与细胞数组1)机构数组的创建;>> ='Jack';>> student2.n>> ='Lucy';>> student或者用struct函数创建;>> student=struct'number',{'001','002'},'name',{'Jack','Lucy'};答;student =1x2 struct array with fields:numbername2)机构数组的操作;>> student1.subject= %添加subject域并赋予空值>> student1.score=>> filednamesstudeng>>fieldnamesstudeng>>fieldnamesstudent>> getfieldstudent,{2},'name'>> student=rmfieldstudent,'subject' %删除subject域>> student=setfieldstudent,{1},'score',90;>> student2.score=88; %比较和上一条语句是否效果一样答;student =1x2 struct array with fields:numbernamesubjectstudent =1x2 struct array with fields:numbernamesubjectscoreUndefined function or variable 'studeng'.练习:创建一结构数组stusorce,其域为:No,Name,English,Math,Chinese,Total,Average;结构数组的大小为2×2;3)细胞数组的创建;>> A={'How are you',ones3;1 2;3 4,{'cell'}}; %直接创建>> B1,1={'Hello world'}; %由各个细胞元素创建>> B1,2={magic3};>> B2,1={1 2 3 4};答或者用cell函数先创建空的细胞数组,然后再给各个元素赋值c=cell1,2;>> c1,1={'Hello world'};>> c1,2={magic3};>> c1,3={1 2 3 4};4)细胞数组的操作;>> ans1=A1,1>> ans2=A1,1>> whos ans1 ans2>> celldispA>> a1=A{2,1}1,2>> a2 a3=dealA{1:2}答;ans1 ='How are you'ans2 ='How are you'Name Size Bytes Class Attributesans1 1x1 84 cellans2 1x1 84 cellA{1,1} =How are youA{2,1} =1 23 4A{1,2} =1 1 11 1 11 1 1A{2,2}{1} =cella1 =2a2 =How are youa3 =1 23 4实验四 MALTAB符号运算一、实验目的掌握符号变量和符号表达式的创建,掌握MALTAB的symbol工具箱的一些基本运用;二、实验内容1)符号变量、表达式、方程及函数的表示; 2)符号微积分运算;3)符号表达式的操作和转换;4)符号微分方程求解;三、实验步骤1、符号运算的引入在数值运算中如果求x xxπsinlim→,则可以不断让的让x趋近0,一球的表达式趋近什么数,但终究不能令x=0,因为在数值运算中0不是能作除数的;MATLAB的符号运算能解决这内问题;输入如下命令:>> f=sym'sinpix/x'>> limitf,'x',0答;f =sinpix/xans =pi2、符号常量、符号变量、符号表达式的创建1)使用sym创建输入以下命令,观察Workspace中A、B、f是什么内性的数据,占用多少字节的内存空间;>> A=sym'1' %符号常量>> B=sym'x' %符号变量>> f=sym'2x^2+3x-1' %符号表达式>> clear>> f1=sym'1+2' %有单引号,表示字符串>> f2=sym1+2 %无单引号>> f2=sym1+2>> f4=sym'2x+3' %为什么出错>> x=1>> f4=sym2x+3答;A =1B =x2x^2+3x-1f1 =1+2f2 =3f2 =3f4 =2x+3x =1f4 =5通过看MATLAB的帮助可知,sym的参数可以使字符串或是数值类型,无论是哪种类型都会生成符号类型数据; 2)使用syms创建>> clear>> syms x y z>> x,y,z>> f1=x^2+2x+1>> f2=expy+expz^2>> f3=f1+f2答;x =xy =yz =zf1 =x^2+2x+1f2 =expy+expz^2f3 =x^2+2x+1+expy+expz^23、符号矩阵创建>> syms a1 a2 a3 a4>> A=a1 a2;a3 a4>> A1,A3答;A =a1, a2a3, a4ans =a1a24、符号算术运算1)符号向量相乘、相除符号量相成和数值量相乘一样,分成矩阵乘和数组乘;>> a=sym5;b=sym7;>> c1=ab>> c2=a/b>> a=sym5;B=sym3 4 5;>> C1=aB,C2=a\B>> syms a b>> A=5 a;b 3;B=2a b;2b a;>> C1=AB,C2=A.B>> C3=A\B,C4=A./B答;c1 =35c2 =5/7C1 =15, 20, 25C2 =3/5, 4/5, 1C1 =10a+2ab, 5b+a^22ab+6b, b^2+3aC2 =10a, ab2b^2, 3aC3 =2ab-3/-15+ab, a^2-3b/-15+ab2ba-5/-15+ab, -5a-b^2/-15+abC4 =5/2/a, a/b1/2, 3/a2)符号数值任意精度控制和运算任意精度的VPA运算可以使用命令digits设定默认的精度和vpa对指定对象以新的精度进行计算来实现; >> a1=sym'2sqrt5+pi'>> a=sym'2sqrt5+pi'>> b=sym2sqrt5+pi>> digits>> vpaa>> digits15>> c1=vpaa,56>> c2=vpab,56答a1 =2sqrt5+pia =2sqrt5+pib =Digits = 32ans =ans =c1 =c2 =注意观察c1和c2的数值类型,c1和c2是否相等;3) 符号类型与数值类型的转换使用命令sym 可以把数值型对象转换成有理数性符号对象,命令vpa 可以讲数值型对象转换为任意精度的VPA 型符号对象;使用double,numeric 函数可以将有理数型和VPA 型符号对象转换成数值对象.>> clear>> a1=sym'2sqrt5+pi'>> b1=doublea1 %符号转数值>> b2=isnumericb1 %判断是否转换成了数值>> a2=vpaa1,70 %数值转符号答;a1 =2sqrt5+pib1 =b2 =1a2 =85、 符号表达式的操作和转换1独立变量的确定原则独立变量的确定原则:在符号表达式中默认变量是惟一的;MATLAB 会对单个英文小写字母除i 、j 外进行搜索,且以x 为首选独立变量;如果表达式中字母不唯一,且无x,就选在字母表最接近x 的字母;如果有相连的字母,则选择在字母表中较后的那一个;例如:'*3'z y +中,y 是默认独立变量;)'*sin('b t a +,t 是默认独立变量;输入以下命令,观察并分析结果;>> clear>> f=sym'a+b+i+j+x+y+xz'>> findsymf>> findsymf,1>> findsymf,2>> findsymf,3>> findsymf,4>> findsymf,5>> findsymf,6答;f =a+b+i+j+x+y+xzans =a, b, j, x, xz, yans =xans =x,xzans =x,xz,yans =x,xz,y,jans =x,xz,y,j,bans =x,xz,y,j,b,a2符号表达式的化简符号表达式化简主要包括表达式美化pretty 、合并同类项collcet 、多项式展开expand 、因式分解factor 、化简simple 或simplify 等函数;①合并同类项collect;分别按x 的同幂项和e 指数同幂项合并表达式: 2(1)()t t x xe x e --+++;>> syms x t;>> f=x^2+x^exp-t+1x+exp-t;>> f1=collectf>> f2=collectf,'exp-t'答;f1 =x^3+exp-tx^2+x^exp-t+1x+x^exp-t+1exp-tf2 =x^2+x^exp-t+1exp-t+x^2+x^exp-t+1x②对显示格式加以美化pretty;针对上例,用格式美化函数可以使显示的格式更符合数学书写习惯;>> prettyf1>> prettyf2答;f1 =x^3+exp-tx^2+x^exp-t+1x+x^exp-t+1exp-tf2 =x^2+x^exp-t+1exp-t+x^2+x^exp-t+1x>> prettyf1prettyf23 2 exp-t exp-tx + exp-t x + x + 1 x + x + 1 exp-t2 exp-t 2 exp-tx + x + 1 exp-t + x + x + 1 x注意与直接输出的f1和f2对比;③多项式展开expand;展开12x-成x不同次幂的多项式.(1)>> syms x>> f=x-1^12;>> expandf>> prettyexpandf答;ans =1+x^12-12x^11+66x^10-220x^9+495x^8-792x^7+924x^6-792x^5+495x^4-220x^3+66x^2-12x 12 11 10 9 8 7 6 51 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x4 3 2+ 495 x - 220 x + 66 x - 12 x④因式分解factor;将表达式121x-做因式分解;>> syms x;f=x^12-1;>> prettyfactorf答;ans =1+x^12-12x^11+66x^10-220x^9+495x^8-792x^7+924x^6-792x^5+495x^4-220x^3+66x^2-12x 12 11 10 9 8 7 6 51 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x4 3 2+ 495 x - 220 x + 66 x - 12 x>> syms x;f=x^12-1;prettyfactorf2 2 2 4 2x - 1 1 + x + x 1 + x 1 - x + x 1 + x x - x + 1⑤化简simple或simplify;将函数f=;>> clear>> syms x;f=1/x^3+6/x^2+12/x+8^1/3;>> g1=simplef>> g2=simplifyf答;g1 =2x+1/xg2 =2x+1^3/x^3^1/36、符号表达式的变量替换subs函数可以对符号表达式中的符号变量进行替换>> clear>> f=sym'x+y^2+4x+10'>> f1=subsf,'x','s' %使用s替换x>> f2=subsf,'x+y','z'答;f =x+y^2+4x+10f1 =s+y^2+4s+10f2 =z^2+4x+107、符号极限、符号积分与微分1)求极限函数的调用格式limitF,x,a %返回符号对象F当x→a时的极限limitF,a %返回符号对象F当独立变量→a时的极限limitF %返回符号对象F当独立变量→0a=0时的极限limitF,x,a,’right’ %返回符号对象F当x→a时的右极限limitF,x,a,’left’ %返回符号对象F当x→a时的左极限例一:>> clear>> f=sym'sinx/x+ax'>> limitf,'x',0 %以x为自变量求极限>> limitf,'a',0 %以a为自变量求极限>> limitf %在默认情况下以x为自变量求极限>> findsymf %得到变量并且按字母表顺序排列答‘f =sinx/x+axans =1ans =sinx/xans =1ans =a, x例二:>> clear>> f=sym'sqrt1+1/n;>> limitf,n,inf %求n趋于无穷大时的极限2)求积分函数的调用格式intF %求符号对象F关于默认变量的不定积分intF,v %求符号对象F关于指定变量v的不定积分intF,a,b %求符号对象F关于默认变量的从a到b的定积分intF,v,a,b %求符号对象F关于指定变量的从a到b的定积分3)求微分方程的调用格式diffF %求符号对象F关于默认变量的微分diffF,v %求符号对象F关于指定变量v的微分diffF,n %求符号对象F关于默认变量的n阶微分,n为自然数1、2、3……diffF,v,n %求符号对象F关于指定变量v的n阶微分8、符号方程求解1常规方程求解函数的调用格式g=solveeq %求方程或表达式或字串eq关于默认变量的解g=solveeq,var %求方程或表达式或字串eq关于指定变量var的解g=solveeq1,eq2,….,eqn,var1,var2,…,varn %求方程或表达式或字串eq1,eq2,eq3,……eqn关于指定变量组var1,var2,……,varn的解求一元二次方程20++=的解;其求解方法有多种形式:ax bx c①seq=solve'ax^2+bx+c'②seq=solve'ax^2+bx+c=0'③eq=’ax^2+bx+c’;④eq=’ax^2+bx+c=0’;seq=solveeq⑤sym x a b ceq=ax^2+bx+cseq=solveeq2常微分方程求解求解常微分方程的函数是dsolve;应用此函数可以求得常微分方程组的通解,以及给定边界条件或初始条件后的特解;常微分方程求解函数的调用格式:r=dsolve’eq1,eq2,…’,’cond1,cond2,…’,’v’r=dsolve’eq1’,’eq2’,…,’cond1’,’cond2’,…,’v’说明:①以上两式均可给出方程eq1,、qeq2对应初始条件cond1、cond2之下的一v 作为解变量的各微分方程的解; ②常微分方程解的默认变量为t;③第二式中最多可接受的输入式是12个;④微分方程的表达方法;在用MATLAB 求解常微分方程时,用大写字母Dy 表示dxdy ,用D2y 表示22d y dx ,依此类推; 边界条件以类似于ya=b 给出;其中y 为因变量,a 、b 为常数.如果初始条件给的不够,求出的解为含有C1、C2等待定常数的通解;例一 求微分方程x dx dy 2=的通解. 练习:1求222132lim x x x x →--+; 2求函数()cos 2sin 2f x x x =-的积分;求函数()g x =3计算定积分60(sin 2)x dx π+⎰ 4求下列线性方程组的解5求解但y0=2,在z0=7时,微分方程组的解;实验五 MATLAB 程序设计一、实验目的掌握MATLAB 程序设计的主要方法,熟练编写MATLAB 函数.二、 实验内容1M 文件的编辑;。
MATLAB上机实验实验报告

MATLAB上机实验实验报告实验名称:用MATLAB实现多项式拟合及插值一、实验目的:通过使用MATLAB实现多项式拟合及插值的方法,掌握MATLAB软件的基本操作和函数应用,进一步了解多项式拟合及插值的原理和实现过程。
二、实验原理:多项式拟合及插值是一种常见的数值分析方法,通过对已知数据点集合的拟合或插值,构造出一个多项式函数,用于近似表示原始数据。
1.多项式拟合:通过最小二乘法原理,选择一个合适的多项式函数,使得拟合出的多项式与已知数据点之间的误差最小。
拟合函数可以是一次、二次或高阶多项式。
2.多项式插值:通过已知数据点的横纵坐标值,构造一个满足这些点的多项式函数。
插值函数可以是一次、二次或高阶多项式。
插值函数经过每个已知数据点。
三、实验步骤:1.数据准备:选择一组已知数据,包含横纵坐标值。
数据点的个数可以根据具体情况自行确定。
2.多项式拟合:使用MATLAB中的polyfit函数,根据已知数据点进行多项式拟合。
根据拟合结果,获取拟合的多项式系数。
3.多项式插值:使用MATLAB中的polyfit函数,根据已知数据点进行多项式插值。
通过plot函数绘制原始数据点的散点图和插值多项式的曲线图。
可以尝试不同阶数的多项式插值。
4.结果分析:根据实验结果,分析拟合与插值的效果。
对比拟合结果与原始数据的误差大小,评估拟合的准确性。
对比插值结果与原始数据的差异,评估插值的精确度。
五、实验总结:通过这次实验,我熟练掌握了使用MATLAB实现多项式拟合及插值的方法。
在实验中,我了解了多项式拟合的原理,以及如何利用最小二乘法求取多项式拟合的系数。
同时,我也学会了如何使用MATLAB中的polyfit函数实现多项式拟合和插值。
通过实验结果的分析,我对拟合和插值的实际应用和效果有了更加深入的认识。
[1]MATLAB官方文档[2]高等数值分析教程以上为MATLAB上机实验实验报告,共计1200字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三MATLAB绘图
实验要求:
为达到理想的实验效果,同学们务必做到:
(1)实验前认真准备,要根据实验目的和实验内容,复习好实验中可能要用
到的命令,想好编程的思路,做到胸有成竹,提高上机效率。
(2)实验过程中积极思考,要深入分析命令、程序的执行结果以及各种屏幕
信息的含义、出现的原因并提出解决办法。
(3)实验后认真总结,要总结本次实验有哪些收获,还存在哪些问题,并写
出实验报告。
实验报告应包括实验目的、实验内容、流程图(较大程序)、程序(命令)清单、运行结果以及实验的收获与体会等内容。
同学们在上机过程中会碰到各种各样的问题,分析问题和解决问题的过程就是积累经验的过程。
只要同学们按照上面3点要求去做,在学完本课程后就一定会有很大的收获。
实验仪器:计算机
实验时间:2018.5.
实验原理:
1.绘制单根二维曲线:
plot(x,y) x,y长度相同的向量;plot(x)x为实向量和复数向量;2.绘制多跟二维曲线:
plot(x,y),(1)x为向量,y是有一维与x长度同的矩阵,(2)x,y 为同维矩阵;
plot(x),x为实数矩阵,x为复数矩阵;
含多个输入参数的plot函数:plot(x1,y1,x2,y2,…xn,yn)
3.设置图形样式:线型,颜色,标记符号
4. 图形标注:插入标题,坐标说明,图形说明等
5.三维图形绘制:三维曲线和三维曲面
plot3(x,y,z);mesh(x,y,z);surf(x,y,z)
实验目的:
1.掌握绘制二维图形的方法
2.掌握绘制三维图形的方法
3.熟悉图像处理和动画制作
实验内容:
1. 绘图:2228x y x =-
程序:
ezplot('x^2+8*x-2*y^2',[-8,8,-8,8])
结果:
2. 已知
22sin()01ln(02
x x e y x x ⎧>⎪⎪=⎨⎪≤⎪⎩ 在55≤≤-x 范围绘制函数曲线,加上横坐标说明x ,纵坐标说明y 。
程序:
x1=linspace(-5,0,100);
x2=linspace(0,5,100);
y1=1/2.*log(x1.^ 2+sqrt(1+x1.^2));
y2=(sin(x2)+sqrt(pi))/exp(2);
plot(x1,y1,x2,y2)
xlabel('Variable X');
ylabel('Variable Y');
结果:
3. 已知1cos()y x x =⨯,22sin ()y x =,312y y y =⨯,-x ππ≤≤,完成下列操作:
a)在同一绘图窗口下用不同线型绘制三条曲线,加上横坐标说明x ,纵坐标说明y ,以及三条曲线的图形说明。
b)将绘图窗口分成3个子窗口,分别在每个子图口中绘制其中一条曲线。
程序:
a)
x=-pi:pi/100:pi;
y1=cos(x).*x;
y2= sin(x).*sin(x);
y3=y1.*y2;
plot(x,y1,'r--',x,y2,'b:',x,y3,'g-.') xlabel('Variable X');
ylabel('Variable Y');
text(0.8,1.1,'y1=xcos(x)');
text(2.5,-0.5,'y2= sin2(x) ');
text(-3,1.1,'y3=y1y2');
b)
x=-pi:pi/100:pi;
y1= cos(x).*x;
subplot(2,2,1)
plot(x,y1);
y2= sin(x).*sin(x);
subplot(2,2,2)
plot(x,y2);
y3=y1.*y2;
subplot(2,2,3)
plot(x,y3);
结果:a)
b)
4.已知四边形顶点A(绘制四边形及该四边形的内切圆。
程序:
结果:
5. 绘制曲面图形。
(1)
2222
()()
500100
x y x y
z e e
-+-+
=-,5050
x
-≤≤,4040
y
-≤≤
(2)
2222
()()
400800
x y x y
z e e
-+-+
=-,4040
x
-≤≤,5050
y
-≤≤
程序:
(1)
ezsurf('exp(-(x^2+y^2)/500)-exp(-(x^2+y^2)/100)',[-50,50,-40,40]) (2)
ezsurf('exp(-(x^2+y^2)/400)-exp(-(x^2+y^2)/800)',[-40,40,-50,50])
图形:
(1)
(2)。