Matlab程序设计实验9

合集下载

MATLAB实验报告50059

MATLAB实验报告50059

(3)分别求表达式 E<D,E&D,E|D,~E|~D 的值。
主要教学环节的组织: 教师讲授实验目的、给出一简单程序,演示过程,然后同学上机练习。
思考题: 设 A 和 B 是同大小的矩阵,试分析 A*B、 A.*B、 A./B、 B.\A 及 A/B 和 B\A 的
区别?如果 A 和 B 是标量数据,结论会如何? A*B 是两个矩阵每行每列元素分别相乘并相加; A.*B 表示 A 与 B 单个元素之间对应相乘; A./B 表示 A 矩阵除以 B 矩阵的对应元素; B.\A 等价于 A./B; A/B 表示 A 的逆左乘 B 矩阵; B\A 表示 A 矩阵的逆右乘 B 矩阵。
(2)x=t^2,y=5t^3
3、利用图形对象绘制下列三维图形,要求对图形进行光照处理。 (1)z=x^2+y^2-5sin(xy)
(2)z=y^3 4、以任意位置子图形式绘制出正弦、余弦、正切和余切函数曲线。
4、 用 patch 函数绘制出一个填充渐变色的正五边形。
实验十 MATLAB 图形用户界面设计
disp('A'); elseif c>=80 & c<90
disp('B'); elseif c>=70 & c<80
disp('C'); elseif c>=60 & c<70
disp('D'); elseif c>=0 & c<60
disp('E'); else
disp('输入出错'); end c=input('请输入一个百分制分数:'); %用 switch 语句实现 switch fix(c/10);

matlab程序设计实验报告

matlab程序设计实验报告

实验报告课程名称:可视化计算机语言实验项目名称:matlab程序设计学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务部制一、实验目的与要求:1、熟练掌握matlab的程序流程控制结构..2、熟悉掌握M文件的结构和函数调用..3、掌握内联函数和函数句柄的使用..4、了解程序性能剖析窗口..二、内容和步骤:MATLAB的语法规则简洁;编程效率高;作为一个完整的程序语言;MATLAB也有各种程序流程控制;文件格式和函数调用的规则;通过对函数的调用就能够组成庞大的程序;完成复杂的功能..1.使用程序流程控制Fibonacci数列的各元素为:1、1、2、3、5、8、...满足一下关系F1=1 F2=1 F n=F n-1+F n-2用M函数文件实现;数列的元素个数为输入变量..(1)按M函数文件格式创建文件开头..function f=shiyan0501n%SHIYAN0501%Fibonacci数列%n 元素个数%f 构成Fibonacci数列向量%%copyright 2015-11-25(2)用while循环实现程序功能f1=1;f2=1;i=2;while i<=nfi+1=fi-1+fi;i=i+1;End运行后;输入参数10;运行结果如下所示:(3)使用for循环实验for i=2:nfi+1=fi-1+fi;end运行结果如下所示:(4)当某个元素大于50时;退出循环结构;程序修改如下:for i=2:nif fi>10breakelsefi+1=fi-1+fi;endend当某个元素大于50;程序便退出循环结构当n=10;最后一个元素刚好是大于50的;正好退出循环结构当n=12时;第十个元素对应的fi大于50;于是退出循环结构;不再运行f11;f12了..(5)将该.m文件生成P码文件>> pcode shiyan0501将shiyan0501.m删除;重新运行该文件夹;结果如下所示:练习:将该M文件函数改为M脚本文件;将数列元素个数通过键盘输入;程序应该如何修改①将M文件函数另存为M脚本文件;②在函数前加n=input'please input a num:'便可通过键盘键入文件f=mf;endk=f1/2^2n1f^22n1+1;end调用程序shiyan0502;运行结果如下所示:>> y=shiyan05020.7y =0.7754运行结果与使用子函数factorial的运行结果一致..(4)使用程序性能剖析..选择菜单‘view’->‘profile’命令;或使用在命令窗口输入‘profile viewer’命令都可以打开程序性能剖析窗口..在程序性能剖析窗口的‘命令输入栏’中输入需要剖析的命令;‘y=shiyan05020.7’;然后单击‘start profiling’按钮;查看剖析报告..(5)程序的调试..当有多个函数调用时;由于函数变量的工作空间是独立的;被调用的函数执行结束后变量消失;因此调试时要使用matlab调试器查看运行过程中的变量值..①设置断点..在需要查看的程序的地方设置断点;>> shiyan05020.7K>> yy =0.7000K>> x=0.5x =0.5000在K>>输入x=0.5即可将x的值从0.7修改为0.5.去除断点;查看结果:ans =0.7236结果与x值为0.7时不一致;当x=0.7时;y =0.7754;由此可知;x的值已被修改..②单步运行>> shiyan05020.79 n=n+1;K>>按单步运行键:可看到箭头不断的移动:6使用函数句柄..在命令窗口使用函数句柄调用函数..>> h_shiyan0502=shiyan0502h_shiyan0502 =shiyan0502>> y=fevalh_shiyan0502;0.5y =0.5236(7)使用全局变量..Matlabe的编程不提倡使用全局变量;本例中的程序主要是为了查看全局变量的概念..将n 作为全局变量;子函数factorial不修改;子函数cal程序和主函数shiyan0502修改如下:function y=shiyan0502x%shiyan0502 arcsinxglobal n;n=1;if absx<1y=x;while caln>0.0001y=y+calnx^2n+1;n=n+1;endelsedisp'输入错误';y=0;returnendfunction k=caln1global nfor m=1:nk=factorial2n/2^2nfactorialn^222n+1;Endglobal为设置的全局变量;子函数没有输入变量;而用全局变量n传递..在全局变量前设置断点;然后运行程序;当程序运行到断点处停止;接着不断使用单步运行调试;结果如下所示:|||练习:使用单步运行调试;查看全局变量n的变化;并在工作空间查看n;3、利用泛函命令实现数值分析①创建函数shiyan0503实现上述表达式关系..function y=shiyan0503t%shiyan0503 y=sint.^2.expat-babsta=0.1;b=0.5;y=sint.^2.expat-babst;②查看该函数的输出波形;如下图所示:注:1、报告内的项目或内容设置;可根据实际情况加以调整和补充..2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内..。

高等数学:MATLAB实验

高等数学:MATLAB实验
以上两种格式中的x、y都可以是表达式.plot是绘制二维 曲线的基本函数,但在使用 此函数之前,需先定义曲线上每一 点的x及y的坐标.
MATLAB实验
2.fplot绘图命令 fplot绘图命令专门用于绘制一元函数曲线,格式为:
fplot('fun',[a,b]) 用于绘制区间[a,b]上的函数y=fun的图像.
MATLAB实验 【实验内容】
MATLAB实验
由此可知,函数在点x=3处的二阶导数为6,所以f(3)=3为 极小值;函数在点x= 1处的二阶导数为-6,所以f(1)=7为极大值.
MATLAB实验
例12-10 假设某种商品的需求量q 是单价p(单位:元)的函 数q=12000-80p,商 品的总成本C 是需求量q 的函数 C=25000+50q.每单位商品需要纳税2元,试求使销售 利润达 到最大的商品单价和最大利润额.
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验 实验九 用 MATLAB求解二重积分
【实验目的】 熟悉LAB中的int命令,会用int命令求解简单的二重积分.
MATLAB实验
【实验M步A骤T】 由于二重积分可以化成二次积分来进行计算,因此只要
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
实验七 应用 MATLAB绘制三维曲线图
【实验目的】 (1)熟悉 MATLAB软件的绘图功能; (2)熟悉常见空间曲线的作图方法.
【实验要求】 (1)掌握 MATLAB中绘图命令plot3和 mesh的使用; (2)会用plot3和 mesh函数绘制出某区间的三维曲线,线型

MATLAB程序设计与应用(刘卫国编)课后实验答案

MATLAB程序设计与应用(刘卫国编)课后实验答案

实验一 MATLAB 运算基础1. 先求以下表达式的值,然后显示MATLAB 工作空间的利用情形并保留全数变量。

(1) 0122sin851z e=+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=-- (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:: 解:2. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求以下表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵)(2) A*B 和A.*B(3) A^3和A.^3(4) A/B 及B\A(5) [A,B]和[A([1,3],:);B^2]解:运算结果:3. 设有矩阵A 和B1234530166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ (1) 求它们的乘积C 。

(2) 将矩阵C的右下角3×2子矩阵赋给D。

(3) 查看MATLAB工作空间的利用情形。

解:. 运算结果:4. 完成以下操作:(1) 求[100,999]之间能被21整除的数的个数。

(2) 成立一个字符串向量,删除其中的大写字母。

解:(1) 结果:(2). 成立一个字符串向量例如:ch='ABC123d4e56Fg9';那么要求结果是:实验二 MATLAB 矩阵分析与处置1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 别离为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。

MATLAB运算基础实验1-9

MATLAB运算基础实验1-9

实验一 MATLAB 运算基础一、实验目的1、熟悉启动和退出MATLAB 的方法。

2、熟悉MATLAB 命令窗口的组成。

3、掌握建立矩阵的方法。

4、掌握MATLAB 各种表达式的书写规则以及常用函数的使用。

二、实验仪器安装有matlab 6.0软件的计算机一台三、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1)201185sin 2e z += (2))1ln(2122x x z ++=,其中=x ⎥⎦⎤⎢⎣⎡-+545.0212 i (3)23.0ln )3.0sin(23.03.03a a e e z a a +++-=-,0.3,9.2,8.2,...,8.2.9.2,3.0---=a 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。

⎪⎩⎪⎨⎧<≤+-<≤-<≤=3t 2 t t ,2t 1 t t 0 t z ,12,11,2224其中5.2:5.0:0=t提示:用逻辑表达式求分段函数值。

2.已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=723302131B ,A 76538773443412 求下列表达式的值:B A *6+和I B A +-(其中I 为单位矩阵)B *A.*和B AA.^33^和AA \B /及B A(5)[][][]B^2:);,1,3A(和B ,A3.设有矩阵B 和A⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡--=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=1113425242322212019181716151413121110987654321079423096171603B ,A求他们的乘积C 。

将矩阵C 的右下角3X2子矩阵赋给D 。

查看MATLAB 工作空间的使用情况。

完成下列操作:(1)求[]999,100之间能被21整除的数的个数。

提示:先利用冒号表达式,再利用find 和length 函数。

程序设计实验报告(matlab)

程序设计实验报告(matlab)

程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。

实验内容:运用Matlab进行简单的程序设计。

实验方法:基于Matlab环境下的简单程序设计。

实验结果:成功掌握简单的程序设计和Matlab基本编程语法。

实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。

实验内容:在Matlab环境下进行多项式拟合和插值的计算。

实验方法:结合Matlab的插值工具箱,进行相关的计算。

实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。

实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。

实验内容:利用Matlab进行最小二乘法计算。

实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。

实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。

实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。

实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。

实验方法:基于Matlab的ODE工具箱,进行ODE求解。

实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。

总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。

通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。

这些知识和技能对我未来的学习和工作都将有着重要的帮助。

MATLAB 《数学实验》报告9-Matlab的极限和微分运算

MATLAB 《数学实验》报告9-Matlab的极限和微分运算

clear syms x F3=x*log(1+x)/sin(x^2) limit(F3,'x',0)
(4) F4
arctan x lim x x
Matlab 命令 结果 F4 = atan(x)/x ans = 0
clear syms x F4=atan(x)/x limit(F4,'x',inf)
clear%dier syms x y2=x*sin(x)*log(x) diff(y2,x)
结果 y2 = x*sin(x)*log(x) ans = sin(x)*log(x)+x*cos(x)*log(x)+sin(x)
(3) y 3
xe x 1 sin x
Matlab 命令 结果 y3 = (x*exp(x)-1)/sin(x) ans = (exp(x)+x*exp(x))/sin(x)-(x*exp(x)-1)/sin(x)^2*cos(x)
1
clear syms x F2=((1+x)/(1-x))^(1/x) limit(F2,'x',0)
F2 = ((1+x)/(1-x))^(1/x) ans = exp(2)
(3) F3
lim
x ln(1 x) 2 x 0 sin x
Matlab 命令 结果 F3 = x*log(1+x)/sin(x^2) ans = 1
x 0
arctan x ; x
结果 = atan(x)/x ans = 1
1
Matlab 命令
clear%µ þ ½· Ú¶ ÖÖ· ¨ syms x f=atan(x)/x limit(f,'x',0)

MATLAB语言的程序设计实验报告

MATLAB语言的程序设计实验报告

MATLAB语言的程序设计实验报告MATLAB语言的程序设计一、实验目的及要求1.掌握一些矩阵运算的基本函数应用方法2.熟悉MATLAB程序编辑与设计环境3.掌握各种编程语句语法规则及程序设计方法4.会编写程序M文和函数M文5.初步掌握程序的调式方法二、实验内容1.掌握以下矩阵操作函数实际给定一些数据后,使用各种函数计算,观察运算结果:zeros(n)生成nxn的零阵zeros(n,m)生成n行m列的零阵ones(n,m)生成n行m列的全1阵eye(n)生成nxn的单位阵randn(n,m)生成元素为正态分布随机阵x=[]生成空矩阵1、下列运算是否合法,为什么?如合法,结果是多少?(1)result1=a答>>result1=aresult1=142536(2)result2=ab错误(3)result3=a+b答>result3=a+b result3=3625811(4)result4=bd答>>result4=b*d result4=312222404913(5)result5=[b;c]d答>>result5=[b;c ]*dresult5=2222404913-5-87(6) result6 =a.b 答>> result6 =a.*b result6 =2-341530(7)result7=a./b答>>result7=a./b result7=0.50000.5000-3.00004.00001.66671.2000result8=a.c错误(9)result9=a./b答>>result9=a./b result9=2.00002.0000-0.33330.25000.60000.8333(10)result10=a.^2答>>result10=a.^2 result10=149162536(11)result11=a错误(12)result11=2.^a答>>result12=2.^aresult12=2481632642、关系运算与逻辑运算已知a=20,b=-2,c=0,d=1 (1)=a>b答>>r1=a>br1=1(2)r2=a>bifn1ifrem(n,2)==0 n=n/2;elsen=3*n+1; enda=[a,n]; endaend答Enter n,negative quits:15a=Columns1through161546237035106531608040201051684Columns17through1821又Enter n,negative quits:72a=Columns1through 16723618928147221134175226134020 Columns 17 through 231051684212、编程求满足的最小m值。

matlab程序设计实验报告

matlab程序设计实验报告

matlab程序设计实验报告《MATLAB程序设计实验报告》摘要:本实验报告旨在介绍MATLAB程序设计的基本原理和实践操作,通过实验演示和分析,展示了MATLAB在工程领域的应用和重要性。

本报告详细介绍了MATLAB程序设计的基本语法和常用函数,以及如何利用MATLAB进行数据处理、图像处理、信号处理等工程应用。

通过本报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。

1. 引言MATLAB是一种用于算法开发、数据可视化、数据分析和数值计算的高级技术计算语言和交互式环境。

它具有强大的数学计算功能和丰富的绘图工具,广泛应用于工程、科学和金融等领域。

本实验报告将介绍MATLAB程序设计的基本原理和实践操作,帮助读者快速掌握MATLAB的基本技能。

2. 实验目的本实验的主要目的是让读者了解MATLAB程序设计的基本语法和常用函数,掌握MATLAB在工程领域的应用和重要性。

通过实验演示和分析,展示MATLAB 在数据处理、图像处理、信号处理等方面的应用。

3. 实验内容(1)MATLAB程序设计的基本语法和常用函数(2)利用MATLAB进行数据处理的实验演示(3)利用MATLAB进行图像处理的实验演示(4)利用MATLAB进行信号处理的实验演示4. 实验步骤(1)学习MATLAB程序设计的基本语法和常用函数(2)编写MATLAB程序,实现数据处理、图像处理、信号处理等功能(3)进行实验演示和分析,展示MATLAB在工程领域的应用和重要性5. 实验结果与分析通过本实验的学习,读者将能够掌握MATLAB程序设计的基本技能,包括数据处理、图像处理、信号处理等方面的应用。

通过实验演示和分析,读者将了解MATLAB在工程领域的重要性,为工程实践提供有力的支持。

6. 结论MATLAB程序设计是一种强大的工程工具,具有广泛的应用前景。

通过本实验报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。

MATLAB程序设计实验报告

MATLAB程序设计实验报告

MATLAB 程序设计实验报告一、实验目的1. 通过实验熟悉MATLAB 仿真软件的使用方法;2. 掌握用MATLAB 对连续信号时域分析、频域分析和s 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征;3. 掌握用MATLAB 对离散信号时域分析、频域分析和z 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征;4. 通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。

二、实验设备1. 计算机:2. MATLAB R2007a 仿真软件三、实验原理对系统的时域分析信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。

(1)信号的相加和相乘:已知信号)(1t f 和)(2t f ,信号相加和相乘记为)()(1t f t f =)(2t f +;)()(1t f t f =)(2t f *。

(2)信号的微分和积分:对于连续时间信号,其微分运算是用diff 函数来完成的,其语句格式为:diff(function,’variable’,n),其中function 表示需要进行求导运算的信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。

连续信号的积分运算用int 函数来完成,语句格式为:diff(function,’variable’,a,b),其中function 表示需要进行被积信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;a,b 为积分上、下限,a 和b 省略时为求不定积分。

(3)信号的平移、翻转和尺度变换信号的平移包含信号的左移与右移,信号的翻转包含信号的倒相与折叠,平移和翻转信号不会改变信号)(t f 的面积和能量。

信号的尺度变换是对信号)(t f 在时间轴上的变化,可使信号压缩或扩展。

)(at f 将原波形压缩a 倍,)/(a t f 将原波形扩大a 倍。

MATLAB程序设计与应用课后实验答案

MATLAB程序设计与应用课后实验答案
A+6.*B
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
[A,B]
[A([1,3],:);B^2]
运算结果:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
A+6.*B
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
0 0 0 0
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
由ans,所以
2. 产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。为什么?
解:M文件如下:
输出结果:
H =
P =
1 1 1 1 1
Columns 57 through 60
Column 61
z4 =
0 0
2. 已知:
求下列表达式的值:
(1) A+6*B和A-B+I(其中I为单位矩阵)
(2) A*B和A.*B
(3) A^3和A.^3
(4) A/B及B\A
(5) [A,B]和[A([1,3],:);B^2]
解:
M文件:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
实验四 循环结构程序设计
一、实验目的
1. 掌握利用for语句实现循环结构的方法。
2. 掌握利用while语句实现循环结构的方法。

Matlab实验1-9

Matlab实验1-9

实验一、MATLAB语言的数值运算1、实验目的(1)学习MATLAB语言的基本矩阵运算;(2)学习MATLAB语言的点运算;(3)学习复杂运算;2、实验内容在下面的实验操作中,认真记录每项操作的作用和目的。

(1)基本矩阵运算1)创建数值矩阵。

键入a=[1 2 3;4 5 6;7 8 9];观察aa(3,2)a(:,1)键入t=1:10;u=0:0.1:10;观察矩阵变量t,u的值。

键入a(:,3)=[2;3;4];a观察矩阵a的变化。

2)创建特殊矩阵键入a=ones(3,3);b=zeros(2,2);c=eye(4);magic(4);观察特殊矩阵。

3)练习矩阵运算键入a=[0 1 0;0 0 1;-6 -11 -6];b=[1 2;3 4;5 6];c=[1 1 0;0 1 1];作矩阵乘运算v1=c*av2=a*bv3=c*a*bv4=b*cv5=c*b矩阵乘方运算a^2a^(1/2)矩阵加减运算a1=a+b*ca2=c*b-a(1:2,1:2)a3=a(1:2,2:3)+c*b矩阵右除ar=c/a矩阵左除a1=a\b4)练习矩阵特征运算选定某一矩阵完成如下矩阵特征运算a’, inv(a),diag(a),poly(a),rank(a),det(a),trace(a),eig(a)(2)Matlab语言的点运算a1=[1 2;3 4];a2=0.2*a1;观察[a1 a2][a1.*a2 a1./a2](3)多项式运算1)建立多项式向量ap=[1 3 3 1] ;b=[-1 -2 -3] ;bp=poly(b)2)练习多项式乘与求根。

p=conv(ap,bp)roots(p)3)练习多项式运算。

a=[1 2 3 4]; x=[2 4 5;-1 0 3; 2 1 5] polyvalm(a, x)实验二、MATLAB 语言的符号运算1、实验目的(1)学习MATLAB 语言的基本符号运算; (2)学习MATLAB 语言的矩阵符号运算;2、实验内容 (1)基本符号运算1) 符号微分、积分 syms t f1=sin (2*t); df1=diff(f1) if1=int (f1)2) 泰勒级数展开 tf1=taylor (f1,8) 3) 符号代数方程求解 syms a b c x; f=a*x^2+b*x+c; ef=solve (f)4) 符号微分方程求解f=’D2x+2*Dx+10*x=0’;g=’Dx(0)=1,x(0)=0’;dfg=dsolve(f,g)求满足初始条件的二阶常系数齐次微分方程的特解:2|,4|,020'022-===++==t t s s s dtdsdt s d 5) 积分变换 syms tf1=exp(-2*t)*sin (5*t) F1=laplace(f1)F2=ilaplace(F1)(2) 符号矩阵运算1)创建与修改符号矩阵G1=sym(‘[1/(s+1),s/(s+1)/(s+2);1/(s+1)/(s+2),s/(s+2)]’) G2=subs(G1,G1(2,2),’0’)G3=G1(1,1)2)常规符号运算syms sd1=1/(s+1);d2=1/(s+2);d=d1*d2ad=sym(‘[s+1 s;0 s+2]’);G=d*adn1=[1 2 3 4 5];n2=[1 2 3];p1=poly2sym (n1);p2=poly2sym(n2);p=p1+p2pn=sym2poly(p)实验三、Matlab语言的绘图一、实验目的(1)学习Matlab的各种二维绘图;(2)学习Matlab的三维绘图;二、实验内容(1)基本二维绘图1)向量绘图。

matlab实验9答案详解

matlab实验9答案详解

实验九数值微积分与方程数值求解一、实验目的1.掌握求数值导数和数值积分的方法2.掌握代数方程数值求解方法3.掌握常微分方程数值求解方法二、实验内容1.程序代码x=1;i=1;f=inline('det([x x^2 x^3;1 2*x 3*x^2;0 2 6*x])');while x<=3.01g(i)=f(x);i=i+1;x=x+0.01;endg;t=1:0.01:3.01;dx=diff(g)/0.01;f1=dx(1)f2=dx(101)f3=dx(length(g)-1)运行结果f1 =6.0602f2 =24.1202f3 =54.18022.程序代码f=inline('sqrt(cos(t.^2)+4*sin(2*t).^2+1)');I1=quad(f,0,2*pi)g=inline('log(1+x)./(1+x.^2)');I2=quad(g,0,2*pi)运行结果I1 =10.4285I2 =0.99973.程序代码A=[6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2]; b=[-4 13 1 11]';x=A\by=inv(A)*b[L,U]=lu(A);z=U\(L\b)运行结果x =0.6667-1.00001.5000-0.0000y =0.6667-1.00001.50000.0000z =0.6667-1.00001.5000-0.00004.程序代码function [x,y]=line_solution(A,b)[m,n]=size(A);y=[ ];if norm(b)>0 %非齐次方程组if rank(A)==rank([A,b])if rank(A)==ndisp('有唯一解x');x=A\b;elsedisp('有无穷个解,特解x,基础解系y'); x=A\b;y=null(A,'r');endelsedisp('无解');x=[ ];endelse%齐次方程组disp('有零解x');x=zeros(n,1);if rank(A)<ndisp('有无穷个解,基础解系y');y=null(A,'r');endend命令format ratA=[2 7 3 1;3 5 2 2;9 4 1 7];b=[6 4 2]';[x,y]=line_solution(A,b)运行结果有无穷个解,特解x,基础解系yWarning: Rank deficient, rank = 2, tol = 8.6112e-015.> In line_solution at 11x =-2/1110/11y =1/11 -9/11-5/11 1/111 00 1 说明121/119/112/115/111/1110/11100010X k k --⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥=++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦,其中12,k k 为任意常数。

MATLAB实验报告9

MATLAB实验报告9
12
201,202,203,204,205,206,207,208,209;... 301,302,303,304,305,306,307,308,309];
(3)
仿照问题
1
中方法找出数组
A


4 3
2 1
0 1
2 3
4
5

中所有绝对值大于
3
的元素。
程序及结果:
>> A=[-4,-2,0,2,4;-3,-1,1,3,5]
i
实验室名称:
实验一 熟悉MATLAB环境
实验日期:2015 年 1 月 9 日
教师评语
教师签名:
1、实验目的 1 .熟悉 MATLAB 主界面,并学会简单的菜单操作。 2 .学会简单的矩阵输入与信号输入。 3 .掌握部分绘图函数。
2、实验环境(软件、硬件及条件):
年月日
MATLAB7
3、实验内容、步骤与结果 一.用户工作目录和当前目录的建立和设置
在英式用法中,引号通常是单引号,如‘Fire!’。 In GB usage quotation marks are usually single: ’Fire!’ . 程序及结果: >> a='In GB usage quotation marks are usually single:''Fire!'';' a= In GB usage quotation marks are usually single:'Fire!'; >> strvat(a) ??? Undefined command/function 'strvat'. >> strcat(a) ans = In GB usage quotation marks are usually single:'Fire!'; >> strvcat(a) ans = In GB usage quotation marks are usually single:'Fire!'; >> a='In GB usage quotation marks are usually single:''Fire!'';' a= In GB usage quotation marks are usually single:'Fire!'; >> char(a) ans = In GB usage quotation marks are usually single:'Fire!';

MATLAB程序设计实验

MATLAB程序设计实验

实用标准文案
科学计算与数据处理实验报告
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
精彩文档.实用标准文案
函数中最耗时的语句是relaxzzy由上例图可
知,...newplate(j,k)=(plate(jm1,km1)/2+plate(jm1,k)+...plate(jm1,kp1)/2+plate(j,km1)+plate(j, kp1)+精彩文档.
实用标准文案
精彩文档.实用标准文案
注:实验方案要详略得当、条理清晰,实验记录数据详实,实验总结应做高度归纳和提炼。

精彩文档.。

MATLAB实验-9 (2) 河南省人口预测模型 马尔萨斯人口模型

MATLAB实验-9 (2) 河南省人口预测模型 马尔萨斯人口模型
当t=0时有N=N0,当T无穷大时有N=Nm,模型合理。
结果
functionf=fun6(x,t);
f=7285*x(1)./((x(1)-7285)*exp(-x(2)*(t-1980))+7285);
t=[1980:2010];
y=[7285 7397 7519 7632 7737 7847 7985 8148 8317 8491 8649 8763 8861 8946 9027 9100 9172 9243 9315 9387 9488 9555 9613 9667 9717 9768 9820 9869 9918 9967 10437];
由图可以看出,拟合图与真实值有较大的误差,可以推测出人口增长率不是一个固定数,人口增长与已有人口数有关,由生物学角度来说,当一种生物数量达到环境的最大容纳量时,就不会再增加了,所以我们就认为随着人口数量的增加,增长率在减小,设最大人口容纳量为Nm,则增长率为r*(1-N/Nm),就有微分方dN/dt=r*(1-N/Nm)*N,得到方程N=Nm*N0/((Nm-N0)*exp(-r*t)+N0)
x0=[1000000,0.001];
x=lsqcurvefit('fun6',x0,t,y)
f=fun6(x,t);
y0=fun6(x,2013)
plot(t,y,'*',t,f,2013,y0,'r+')
x = 1.0e+005 *
9.9993 0.0000y0 = 1.0966e+004
三、实验小结
新乡学院
数学与信息科学系实验报告
实验名称河南省人口预测模型
所属课程数学软件与实验

MATLAB实验 9

MATLAB实验 9

肇 庆 学 院电子信息与机电工程 学院 MATLAB 课 实验报告 12电气(1) 班 姓名 李俊杰 学号 201224122119 实验日期2014年 月 日老师评定 .实验9实验内容:1、假设清华大学信息系在2001、2002及2003年的人员组成如下表所示:4.20 设x15xcosx sinx 2x -x f (x)23++= a). 画出它在x=[0,4]区间内的曲线。

求出它的过零点的值。

b). 求此曲线在x 轴上方第一块所围的面积的大小。

4.21 已知微分方程:y x yx dx dy cos 2-=,若y(0)=1,求它在x=[0,5]区间内的数值积分,并画出曲线。

4.22 用eval 命令执行字符串s=’y=magic(3)’。

4.23 如果要用for 循环及eval 语句实现yn=magin(n),(n=3,4,5),请编出程序。

4.24 用sprintf 命令写出字符串“自然对数底数e=2.71828”,e 的值应该由MATLAB 自动生成,其小数点后要显示20位。

4.25 用字符串、单元阵列及结构阵列三种方式定义student1,student2及student3三个数组,此数组应包括Jone,David 及Tom 三个人名。

请比较三者的不同。

如果包括第二个属性——他们的出生地brithplace ,分别为Shanghai,Nanjing 和Hangzhou ,又有什么差别。

代码:%---------------------------------------------------------%(备注:yprime 函数用于4.21)function dy=yprime(x,y) dy=x.*x./y-x.*cos(y); %---------------------------------------------------------%format compact % 紧凑格式class={'大一';'大二';'大三';'大四';'硕一';'硕二';'博士班';'教职员'};time={'2001';'2002';'2003'};num={[10 21 15];[21 32 23];[23 23 23];[14 24 44];[35 35 25];[26 26 34];[47 17 27];[48 48 38]};A={class;time;num};fprintf('单元阵列A使用说明\n' )echo onA{1}{3} %class的第三个元素 A{1}{i}A{2}{1} %time的第一个元素 A{2}{j}A{3}{3}(1) %num第三组元素第一个 A{3}{i}(j)echo offkeyboard %把输入输出交给用户B.class={'大一';'大二';'大三';'大四';'硕一';'硕二';'博士班';'教职员'};B.time={'2001';'2002';'2003'};B.num={[10 21 15];[21 32 23];[23 23 23];[14 24 44];[35 35 25];[26 26 34];[47 1727];[48 48 38]};fprintf('结构阵列B使用说明\n' )echo onB.class(3) %class的第三个元素 B.class(i)B.time(1) %time的第一个元素 B.time(j)B.num{3}(1) %num第三组元素第一个 B.num{3}(1)echo offkeyboard %fprintf('4.20 \n' ) %求函数过零点x=linspace(0,4);y=x.*x.*x-x.*x.*sin(x)*2+5*x.*cos(x)+1./x;plot(x,y)gridfprintf('4.21 \n' )[x,y]=ode23('yprime',0,5,1)plot(x,y),gridfprintf('4.22 \n' )s='magic(3)';y=eval(s) %eval 执行程序字符串fprintf('4.23 \n' )for n=3:5yn='magic(n)';eval(yn)endfprintf('4.24 \n' )fprintf('自然对数底数e= %1.20f \n',exp(1) )fprintf('4.25 \n' )student1={'Jone' 'Shanghai'}; %字符串student2={'David' 'Nanjing'};student3={'Tom' 'Hangzhou'};name={'Jone' 'David' 'Tom'}; %单元阵列birthplace={'Shanghai' 'Nanjing' 'Hangahou'};student={name;birthplace}='Jone'; %结构阵列='David';='Tom';student1.birthplace='Shanghai';student2.birthplace='Nanjing';student3.birthplace='Hangzhou';结果:单元阵列A使用说明A{1}{3} %class的第三个元素 A{1}{i}ans =大三A{2}{1} %time的第一个元素 A{2}{j}ans =2001A{3}{3}(1) %num第三组元素第一个 A{3}{i}(j)ans =23echo offK>> return结构阵列B使用说明B.class(3) %class的第三个元素 B.class(i)ans ='大三'B.time(1) %time的第一个元素 B.time(j)ans ='2001'B.num{3}(1) %num第三组元素第一个 B.num{3}(1) ans =23echo offK>> return4.20Warning: Divide by zero.> In lab9 at 284.21Warning: Obsolete syntax. Use ode23(fun,tspan,y0,...) instead. > In funfun\private\odearguments at 41In ode23 at 172In lab9 at 334.22y =8 1 63 5 74 9 24.23ans =8 1 63 5 74 9 2ans =16 2 3 135 11 10 89 7 6 124 14 15 1ans =17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 94.24自然对数底数e= 2.718281828459045500004.25student ={1x3 cell}{1x3 cell}总结:4.1中出现警告,语法过时提醒Use ode23(fun,tspan,y0,...) instead.把[x,y]=ode23('yprime',0,5,1)改成[x,y]=ode23('yprime',[0 5],1)即可实验内容4.25中,字符串适用于只保留数据内容,单元阵列及结构阵列适用于保留有意义的数据,结构体(也可称为结构体阵列)中可以使用域名来访问数据,而在单元阵列中则使用矩阵的索引操作。

matlab程序设计实验报告

matlab程序设计实验报告

matlab程序设计实验报告Matlab程序设计实验报告引言:Matlab(Matrix Laboratory)是一种强大的高级编程语言和环境,广泛应用于科学计算、数据分析和工程设计等领域。

本实验报告旨在介绍我在Matlab程序设计实验中的学习和实践经验。

一、Matlab基础知识1.1 Matlab的安装与配置在实验开始前,我们首先需要安装Matlab并进行相应的配置。

Matlab的安装过程相对简单,只需按照官方指引进行操作即可。

配置方面,我们可以设置工作目录、界面风格、字体大小等,以提高工作效率。

1.2 Matlab的基本语法Matlab的语法类似于其他编程语言,但也有一些特殊之处。

例如,Matlab中的变量名不区分大小写,函数名则区分大小写。

此外,Matlab还具有丰富的数学函数库,可以方便地进行各种数值计算。

二、Matlab程序设计实践2.1 数值计算Matlab以其强大的数值计算能力而闻名,我们可以使用Matlab进行各种数学运算和数值计算。

例如,我们可以使用Matlab求解线性方程组、计算矩阵的特征值和特征向量等。

2.2 图像处理Matlab提供了丰富的图像处理函数,可以对图像进行各种操作和处理。

例如,我们可以使用Matlab读取图像文件、调整图像的亮度和对比度、进行图像滤波等。

此外,Matlab还支持图像的显示和保存,方便我们进行结果的展示和分析。

2.3 数据可视化Matlab提供了强大的数据可视化功能,可以将数据以图表的形式直观地展示出来。

我们可以使用Matlab绘制各种类型的图表,如折线图、散点图、柱状图等。

此外,Matlab还支持对图表的样式、标签、标题等进行自定义,以满足不同的需求。

三、实验心得与体会通过这次Matlab程序设计实验,我深刻体会到了Matlab在科学计算和工程设计中的重要性。

Matlab不仅提供了丰富的数学函数库和工具箱,还具备直观的图形界面和友好的交互环境,使得我们能够快速、高效地进行各种计算和分析。

刘卫国版MATLAB程序设计与应用课后实验六八九

刘卫国版MATLAB程序设计与应用课后实验六八九

实验六 高层绘图操作%第一题:程序代码如下:x=linspace(0,2*pi,101);y=(0.5+3*sin(x)./(1+x.^2)).*cos(x); plot(x,y)01234567-1-0.50.511.5%第二题: %(1)程序代码如下:x=linspace(-2*pi,2*pi,100); y1=x.^2;y2=cos(2*x); y3=y1.*y2;plot(x,y1,'b-',x,y2,'r:',x,y3,'y--'); text(4,16,'\leftarrow y1=x^2');text(6*pi/4,-1,'\downarrow y2=cos(2*x)');text(-1.5*pi,-2.25*pi*pi,'\uparrow y3=y1*y2');-8-6-4-22468-30-20-1010203040%(2)程序代码如下:x=linspace(-2*pi,2*pi,100); y1=x.^2;y2=cos(2*x); y3=y1.*y2;subplot(1,3,1);%分区 plot(x,y1);title('y1=x^2');%设置标题 subplot(1,3,2); plot(x,y2);title('y2=cos(2*x)'); subplot(1,3,3); plot(x,y3);title('y3=x^2*cos(2*x)');-10100510152025303540y1=x 2-1010-1-0.8-0.6-0.4-0.200.20.40.60.81y2=cos(2*x)-1010-30-20-1010203040y3=x 2*cos(2*x)%(3)程序代码如下:x=linspace(-2*pi,2*pi,20); y1=x.^2;subplot(2,2,1);%分区 bar(x,y1);title('y1=x^2的条形图');%设置标题 subplot(2,2,2); stairs(x,y1);title('y1=x^2的阶梯图'); subplot(2,2,3); stem(x,y1);title('y1=x^2的杆图'); subplot(2,2,4);fill(x,y1,'r');%如果少了'r'则会出错 title('y1=x^2的填充图'); %其他的函数照样做。

Matlab实验9

Matlab实验9

MATLAB 程序设计实验9Simulink一.实验目的1. 熟悉Simulink 的操作环境。

2. 掌握建立系统仿真模型以及进行系统仿真的方法。

3. 掌握子系统模块的建立与封装技术。

4. 掌握S 函数的功能与设计方法。

二.实验内容1. 利用Simulink 仿真()2811cos cos3cos5925A x t t t t ωωωπ⎛⎫=++ ⎪⎝⎭,A = 1,2ωπ=2. 设系统的微分方程为()()()'2x t x t u t =-+,其中,()u t 是一个幅度为1、角频率为1rad/s 的方波信号。

建立系统模型并仿真。

3. 用S 函数实现对输入信号取绝对值并且限幅输出。

,,u u upper y uppper u upper ⎧≤⎪=⎨>⎪⎩s 函数如下:function [sys,x0,str,ts] = lab93(t,x,u,flag,upp)switch flagcase 0[sys,x0,str,ts]=mdlInitializeSizes;case 3sys=mdlOutputs(t,x,u,upp);case {1,2,4,9}sys=[];otherwiseerror(num2str(flag));endfunction [sys,x0,str,ts]=mdlInitializeSizes sizes = simsizes;sizes.NumContStates = 0;sizes.NumDiscStates = 0;sizes.NumOutputs = 1;sizes.NumInputs = 1;sizes.DirFeedthrough = 1;sizes.NumSampleTimes = 1;sys = simsizes(sizes);x0 = [];str = [];ts = [0 0];function sys=mdlOutputs(t,x,u,upp)if abs(u)>abs(upp)sys=abs(upp*ones(size(u)));elsesys=abs(u);end仿真模型如下:4.建立仿真模型,其中PID控制器采用Simulink子系统封装形式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中南大学MATLAB实验
MATLAB程序设计实验8
Simulink
一.实验目的
1.熟悉Simulink的操作环境。

2.掌握建立系统仿真模型以及进行系统仿真的方法。

3. 掌握子系统模块的建立与封装技术。

4. 掌握S 函数的功能与设计方法。

二. 实验内容
1. 利用Simulink 仿真()2811cos cos3cos5925A x t t t t ωωωπ⎛⎫=++ ⎪⎝⎭
,A = 1,2ωπ=
2. 设系统的微分方程为()()()'
2x t x t u t =-+,其中,()u t 是一个幅度为1、角频率为1rad/s 的方波信号。

建立系
统模型并仿真。

3. 用S 函数实现对输入信号取绝对值并且限幅输出。

,,u u upper y uppper u upper ⎧≤⎪=⎨>⎪⎩
4. 建立仿真模型,其中PID 控制器采用Simulink 子系统封装形式。

正弦波信号幅值为5、偏差为0、频率为10πHz 、初始相位为0,PID 控制器的参数为Kp=10.75、Ki=1.2、Kd=5,采用变步长的ode23t
算法、仿真时间为2s ,对模型进行仿真。

相关文档
最新文档