MATLAB实验二MATLAB的数值运算和程序

合集下载

matlab实现数值计算功能源程序(个人整理)

matlab实现数值计算功能源程序(个人整理)

matlab数值计算功能1,基础运算(1)多项式的创建与表达将多项式(x-6)(x-3)(x-8)表示为系数形式a=[6 3 8] % 写成根矢量pa=poly(a)% 求出系数矢量ppa=poly2sym(pa,'x') % 表示成符号形式ezplot(ppa,[-50,50])求3介方阵A的特征多项式a=[6 2 4;7 5 6;1 3 6 ];pa=poly(a)% 写出系数矢量ppa=poly2sym(pa) %表示成符号形式ezplot(ppa,[-50,50]) % 绘图求x^3-6x^2-72x-27的根。

a=[1,-6,-72,-85]; % 写出多项式系数矢量r=roots(a) % 求多项式的根(2)多项式的乘除运算c=conv(a,b) %乘法[q,r]=deconv(c,a)% 除法求a(s)=s^2+2s+3乘以b(s)=4s^2+5s+6的乘积a=[1 2 3]b=[4 5 6] % 写出系数矢量c=conv(a,b)c=poly2sym(c,'s') % 写成符号形式的多项式展开(s^2+2s+2)(s+4)(s+1)并验证结果被(s+4),(s+3)除后的结果。

c=conv([1,2,2],conv([1,4],[1,1]))cs=poly2sym(c,'s')c=[1 7 16 18 8][q1,r1]=deconv(c,[1,4])[q2,r2]=deconv(c,[1,3])cc=conv(q2,[1,3])test=((c-r2)==cc)其他常用的多项式运算命令pa=polyval(p,s) % 按数组规则计算给定s时多项式的值pm=polyvalm(p,s)% 按矩阵规则计算给定s时多项式的值[r,p,k]=residue(b,a) % 部分分式展开,b,a分别是分子,分母多项式系数矢量。

r,p,k分别是留数,极点和值项矢量。

(完整word版)含答案《MATLAB实用教程》

(完整word版)含答案《MATLAB实用教程》

第二章 MATLAB 语言及应用实验项目实验一 MATLAB 数值计算三、实验内容与步骤1.创建矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a(1(2)用(3)用(42.矩阵的运算(1)利用矩阵除法解线性方程组。

⎪⎪⎩⎪⎪⎨⎧=+++=-+-=+++=+-12224732258232432143214321421x x x x x x x x x x x x x x x 将方程表示为AX=B ,计算X=A\B 。

(2)利用矩阵的基本运算求解矩阵方程。

已知矩阵A 和B 满足关系式A -1BA=6A+BA ,计算矩阵B 。

其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=7/10004/10003/1A ,Ps: format rata=[1/3 0 0;0 1/4 0;0 0 1/7];b=inv(a)*inv(inv(a)-eye(3))*6*a(3)计算矩阵的特征值和特征向量。

已知矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=1104152021X ,计算其特征值和特征向量。

(4)Page:322利用数学函数进行矩阵运算。

已知传递函数G(s)=1/(2s+1),计算幅频特性Lw=-20lg(1)2(2w )和相频特性Fw=-arctan(2w),w 的范围为[0.01,10],按对数均匀分布。

3.多项式的运算(1)多项式的运算。

已知表达式G(x)=(x-4)(x+5)(x 2-6x+9),展开多项式形式,并计算当x 在[0,20]内变化时G(x)的值,计算出G(x)=0的根。

Page 324(2)多项式的拟合与插值。

将多项式G(x)=x 4-5x 3-17x 2+129x-180,当x 在[0,20]多项式的值上下加上随机数的偏差构成y1,对y1进行拟合。

对G(x)和y1分别进行插值,计算在5.5处的值。

Page 325 四、思考练习题1.使用logspace 函数创建0~4π的行向量,有20个元素,查看其元素分布情况。

Ps: logspace(log10(0),log10(4*pi),20) (2) sort(c,2) %顺序排列 3.1多项式1)f(x)=2x 2+3x+5x+8用向量表示该多项式,并计算f(10)值. 2)根据多项式的根[-0.5 -3+4i -3-4i]创建多项式。

MATLAB语言课件 第2讲 MATLAB语言的数值运算共47页

MATLAB语言课件     第2讲 MATLAB语言的数值运算共47页
两类:命令(Script)文件和函数(function)文件 ( 1 )命令文件
主要用途:使命令输入更简单化(没有输入参数也没有输 出参数)
当用户需要重复输入许多相同的命令时,可将它们放在一 个命令文件中,每次只要输入文件名,即可得相同的运行结果。
实质是将用户在 MATLAB 命令窗口中输入的一串命 令用另外一个名称来代替。 ( 2 )函数文件
程序的基本组成 %说明部分 清除命令(可选) 定义变量(局部变量和全局变量) 按照顺序行执行的命令语句 控制语句开始 控制语句体 控制语句结束 其他命令(如绘图等)
2.1 基本语法结构
2.1.1 变量与赋值语句
1、变量 变量命名规则
(1)必须以字母开头; (2)可以由字母、数字和下划线混合组成; (3)变量长度应不大于31个; (4)字母区分大小写。
2.1.5 程序控制语句 为编写结构化的程序提供了必不可少的条件,可提
高程序的效率和可读性 1、 for循环语句:用来执行循环次数已知的情况 调用格式:
for x=初值:步长:终值 循环体
end
其中:变量 x 称为循环变量,初值、终值和步长可以是标 量,也可以是表达式。当循环语句开始执行时, x 的值被 赋为和初值相同的内容,每执行一次循环体的内容, x 的 值就会按照步长的大小来改变,如果步长为正数,每执行 一次就增加一个步长,否则减小一个步长,一直到变量的 值大于或者小于终值,for语句循环结束,继续执行结束语 句下面的命令。
2.1.3 运算符 Matlab的运算符可分为三类:算术运算符、关系
运算符和逻辑运算符。其中算术运算符的优先级最 高,其次是关系运算符,最后是逻辑运算符。下面 将分别介绍这三类运算符和逻辑函数。
1. 算术运算符 按照运算符的优先级可把算术运算符分为五级。 2. 关系运算符 关系运算符对于程序的流程控制非常有用,在 MATLAB的循环和条件控制中经常使用。

matlab实验内容

matlab实验内容

2017年-matlab实验内容2017年文化素质课 MATLAB实验实验一、MATLAB基本操与运算基础【实验目的】(1)熟悉MATLAB基本环境,掌握MATLAB变量的使用(2)掌握MATLAB数组的创建(3)掌握MATLAB数组和矩阵的运算【实验内容及步骤】熟悉建立数组的方法:逐个元素输入法、冒号法、特殊方法(使用函数linspace建立)1、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?(3)设a=10,b=20;求i=a/b=?与j=a\b= ?(4)设a=[1 -2 3;4 5 -4;5 -6 7](5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) %转化为列向量(8)写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B2、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 2223 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]1)求它们的乘积C2)将矩阵C的右下角3x2子矩阵赋给D3、完成下列操作1)求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式,再利用find和length 函数。

MATLAB实验及程序

MATLAB实验及程序

实验一a=[1,2,3;4,5,6;7,8,9] b= repmat(a,2,2)B(24)=9实验二1、使用matlab命令统计randn(5)生成的矩阵里,有多少个元素小于0,将小于0元素个数存变量c中并将这些小于零元素存变量d中。

(实验报告要求:写出命令)a=randn(5)b=find(a<0);c=length(find(a<0))d=a(b)2、建立一个字符数组,内容如下所示:(实验报告要求:写出命令)A B C DE F G Ha b c da=['A B C D''E F G H''a b c d']3、已知有一个矩阵A(假如不知道其具体信息),请计算其元素个数(请先用实际矩阵来验证计算方法是否正确)。

(实验报告要求:写出正确计算方法的命令)A=randn(3,4)B=numel(A)4、已知有一个元胞数组B=[{ones(2,3,2)},{'Hello, Matlab'};{[4 5 6]},{1:100}],想获取字符串'Matlab',应输入什么命令?(实验报告要求:写出命令)f=B{1,2}(7:end)5、要从上题所建元胞数组B中获取列向量[4;5;6],可以有哪几种方法?(实验报告要求:写出命令及结果)方法1: i=B{2,1}(:)方法2: j=reshape(B{2,1},3,1)6、已知有两个学生的信息如下,请在matlab中创建结构对其进行存储,并算=['姓名''张三''李四']student.shuxue=[8778]student.yuwen=[7581 ]student.yingyu=[5560]实验三实验四:二维绘图(1)在同一个窗体(figure1)中画出正弦函数和余弦函数的图象。

要求如下:◆正弦图象用蓝色实线,时标用方格;◆余弦图象用黄色虚线,时标选向下三角形;◆为整个图像加中文标题;◆为x和y轴加轴标题;◆改x轴的单位为pi/2的倍数;◆增加图例;◆在图中合适的位置增加“正弦曲线”和“余弦曲线”两处文本信息。

MATLAB实验

MATLAB实验

MATLAB实验一:MATLAB语言基本概念实验实验目的:1. 熟悉MATLAB语言及使用环境;2.掌握MATLAB的常用命令;3.掌握MATLAB的工作空间的使用;4.掌握MATLAB的获得帮助的途径。

5.掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;6.掌握MATLAB的命令运行方式和M文件运行方式;7.掌握矩阵在MATLAB中的运用。

实验方案分析及设计:本次实验主要目的是了解MATLAB的使用环境,以及常用的一些命令的使用;了解矩阵在MATLAB实验中的具体运用,以及相关的一些符号命令的使用。

实验器材:电脑一台,MATLAB软件实验步骤:打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。

实验内容及要求:1.熟悉MATLAB的菜单和快捷键的功能2.熟悉MATLAB的命令窗口的使用3.熟悉常用指令的使用format clc clear help lookfor who whos 4.熟悉命令历史窗口的使用5. 熟悉MATLAB工作空间的功能将工作空间中的变量保存为M文件,并提取该文件中的变量6.熟悉MATLAB获取帮助的途径将所有plot开头的函数列出来,并详细给出plotfis函数的使用方法1. 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3],在命令窗口中执行下列表达式,掌握其含义:A(2, 3) A(:,2) A(3,:) A(:,1:2:3)A(:,3).*B(:,2) A(:,3)*B(2,:) A*BA.*BA^2 A.^2 B/A B./AA=[7 1 5;2 5 6;3 1 5]7 1 52 5 63 1 5>> B=[1 1 1; 2 2 2;3 3 3]1 1 12 2 23 3 3>> A(2, 3)6>> A(:,2)151>> A(3,:)3 1 5>> A(:,1:2:3)7 52 63 5>> A(:,3).*B(:,2)51215>> A(:,3)*B(2,:)10 10 1012 12 1210 10 10>> A*B24 24 2430 30 3020 20 20>> A.*B7 1 54 10 129 3 15>> A^266 17 6642 33 7038 13 46>> A.^249 1 254 25 369 1 25>> B/A0.1842 0.2105 -0.23680.3684 0.4211 -0.47370.5526 0.6316 -0.7105>> B./A0.1429 1.0000 0.20001.0000 0.4000 0.33331.0000 3.0000 0.60002.输入 C=1:2:20,则 C (i )表示什么?其中 i=1,2,3, (10)1到19差为2,i 代表公差3. 试用 help 命令理解下面程序各指令的含义:cleart =0:0.001:2*pi;subplot(2,2,1);polar(t, 1+cos(t))subplot(2,2,2);plot(cos(t).^3,sin(t).^3)subplot(2,2,3);polar(t,abs(sin(t).*cos(t)))subplot(2,2,4);polar(t,(cos(2*t)).^0.5)4计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。

MATLAB实验指导书

MATLAB实验指导书

MATLAB基础实验指导书漳州师范学院物电系2010年10月目录实验一MATLAB环境的熟悉与基本运算 (2)实验二MATLAB数值运算 (8)实验三MATLAB语言的程序设计 (12)实验四MATLAB的图形绘制 (12)实验五MATLAB应用实例实验六采用SIMULINK的系统仿真 (17)实验七控制系统的频域与时域分析 (25)实验一 MATLAB环境的熟悉与基本运算一、实验目的:1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识:1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。

2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。

MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2 MATLAB算术运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符表5 MATLAB特殊运算4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7 两种运算指令形式和实质内涵的异同表6.MATLAB的常用函数表8 标准数组生成函数表9 数组操作函数三、实验内容1、新建一个文件夹(自己的名字命名)2、启动MATLAB6.5,将该文件夹添加到MATLAB路径管理器中。

方法如下:3、保存,关闭对话框4、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)5、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。

控制系统仿真 实验二

控制系统仿真 实验二

实验二Matlab的数值运算及绘图1.试验目的(1)学习Matlab语言的基本矩阵运算;(2)学习Matlab语言的点运算;(3)学习多项式运算;(4)学习Matlab语言的各种二维绘图;2.试验内容在下面的试验操作中,认真记录每项操作的作用和目的;(1)基本矩阵运算1)创建数值矩阵。

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

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

键入b=[1 1+2i ;3+4i 3]观察复数矩阵。

2)创建特殊矩阵;键入a=ones(3,3)b=zeros(2,2)c=eye(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矩阵左除(矩阵左除等价于逆乘运算a\c=a-1*c,a-1为矩阵a的逆运算)al=a\b4)练习矩阵特征运算完成以下矩阵特征运算。

a'inv(a)rank(a)det(a)eig(a)(2)Matlab语言的点运算1)练习点乘与点除。

a1=[1 2;3 4]a2=0.2*a1观察[a1 a2][a1.*a2 a1./a2]2)由点运算完成标量函数运算与作图。

正、余弦函数的点运算。

t=0:2*pi/180:2*pi;y1=sin(t);y2=cos(t);y=y1.*y2;plot(t,[y' y1' y2']);(3)多项式运算1)建立多项式向量;ap=[1 3 3 1];b=[-1 -2 -3];bp=poly(b)2)练习多项式乘与求根。

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

课程名称:Matlab语言
开设时间:2016—2017学年第 2 学期
专业班级:学生学号:学生姓名:
实验名称:实验二、MATLAB的数值运算和程序实验成绩:
指导教师:批改时间:
一、实验目的和要求
1)掌握基本的矩阵运算及常用的函数。

2)掌握MATLAB函数的编写及调试方法。

3)掌握MATLAB常用的数值运算函数。

二、实验仪器和设备
计算机一台
三、实验过程
1、一维数组在命令窗口执行下面指令,观察输出结果,体味数组创建和寻访方法,%号后面的为注释,不用输入。

rand('state',0) % 把均匀分布伪随机发生器置为0 状态
x=rand(1,5) % 产生(1*5)的均布随机数组
x(3) % 寻访数组x 的第三个元素。

x([1 2 5]) % 寻访数组x 的第一、二、五个元素组成的子数组。

x(1:3) % 寻访前三个元素组成的子数组
x(3:end) % 寻访除前2 个元素外的全部其他元素。

end 是最后一个元素的下标。

x(3:-1:1) % 由前三个元素倒排构成的子数组
x(find(x>0.5)) % 由大于0.5 的元素构成的子数组
x([1 2 3 4 4 3 2 1]) % 对元素可以重复寻访,使所得数组长度允许大于原数组。

x(3) = 0 % 把上例中的第三个元素重新赋值为0。

x([1 4])=[1 1] % 把当前x 数组的第一、四个元素都赋值为1。

x[3]=[] % 空数组的赋值操作
2、在命令窗口执行下面指令,观察输出结果
a=2.7358; b=33/79; % 这两条指令分别给变量 a , b 赋值。

C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i] % 这指令用于创建二维组C M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16] % 创建复数数组的另一种方法 CN=M_r+i*M_i % 由实部、虚部数组构成复数数组
3. 记录下面题目的程序和运行后的结果。

1⎥⎦⎤⎢⎣⎡=654321a ⎥⎦⎤⎢⎣⎡-=531142b ⎥⎥⎥⎦

⎢⎢⎢⎣⎡-=201c ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=063258741d
下列运算是否合法,为什么?如合法,结果是多少?
(1) result1 = a'
(2) result2 = a * b
(3) result3 = a + b
(4) result4 = b * d
(5) result5 = [b ; c' ] * d
(6) result6 = a . * b
(7) result7 = a . / b
(8) result8 = a . * c
(9) result9 = a . \ b
(10) result10 = a . ^2
(11) result11 = a ^2
(12) result12 = 2 . ^ a
4、用MATLAB 求下面的的方程组。

5、详读并运行下面的circle.m 函数文件。

体会 M 函数文件的编写结构及方法。

% 后面的内容称为注释行,不被执行,起注释说明作用。

⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⨯⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----01741323151122231592127
4321x x x x
6、编写一个函数,计算下面函数的值,给出标量x 的值,调用该函数后,返回y 的值。

function [y]=myfun1(x)
()⎪⎩
⎪⎨⎧>+-≤<≤=3
6200sin x x x x
x x x y
选择一些数据测试你编写的函数。

7、编写一个函数求向量x 中元素的平均值、最大值、最小值、均方根值。

function [m_x,max_x,min_x,rms_x]=myfun2(x)
方均根值(Root Mean Square)的计算公式为:∑==
N
i i
x
N
rms 1
21
用下面数据测试你写的函数: (1)x=sin(0:0.01:6*pi)
(2)x=rand(1,200),得到的x 为200个(0,1)之间均匀分布的随机数。

8、求编函数实现Fibonacci 数列(1)显示各项(2)求各项之和
9、求代数方程
012927432345=+++++x x x x x 的5个根,并将其用星号(*)标记在复平面图上。

(用roots 和plot 函数)。

10、求代数方程015
=-x 的5个根,并将其用星号(*)标记在复平面图上。

(用roots 和plot 函数)。

11、因式分解:
32
597 ()
(1)(2)
s s s
F s
s s
+++
=
++
12、因式分解:
32
()5()9()7 ()
(1)(2)
j j j
F j
j j
ωωωω
ωω
+++ =
++
13、求方程
3
)0('
,1
)0(
,'
2
"
)
1(2=
=
=
+y
y
xy
y
x的解析解和数值解,并进行比较。

解析解:
s=dsolve('(1+x^2)*D2y=2*x*Dy','y(0)=1','Dy(0)=3','x') s =x*(x^2 + 3) + 1
x=0:0.1:5;
plot(x,x.*(x.^2+3)+1)
数值解:
%建立函数文件
function dy=myfun5(x,y) dy=zeros(2,1); dy(1)=y(2);
dy(2)=(y(2)*2*x)/(1+(x^2));
%运行
>> [x,y]=ode45('myfun5',[0,1],[1,3]);
>> plot(x,y(:,1),'*')
14、分别用ode45和ode15s 求解Van-del-Pol 方程
()⎪⎩
⎪⎨⎧===---1)0',0)0(0)1(1000
222x x x dt dx
x dt
x d
的数值解,并进行比较。

%建立函数
function dy=myfun6(x,y) dy=zeros(2,1); dy(1)=y(2);
dy(2)=1000*(1-y(1)^2)*y(2)+y(1); end
[x,y]=ode45('myfun6',[0,1],[0,1]); [x,y]=ode45('myfun6',[0,1],[0,1]);
plot(x,y(:,1),'*') plot(x,y(:,1),'*')
四、实验结果分析与心得
通过实验二,我基本掌握了函数M文件与命令M文件的建立与编辑;MA TLAB编程语言的基本控制结构与控制转移语句;MATLAB程序的调试。

但在实验过程中,得十分注重分号的差别,加与不加分号得到的结果也不尽相同。

另外,当编写的程序出错时,还得结合课本内容将程序修改好。

相关文档
最新文档