MATLAB程序设计第五讲解析

合集下载

第五讲MATLAB程序设计ppt课件

第五讲MATLAB程序设计ppt课件

语句组m
otherwise
语句组n
end
(exswitch.m)
第五讲 MATLAB程序设计
18
(3)try语句 语句格式为: try
语句组1 catch
语句组2 end
try语句先试探性执行语句组1,如果语句组1在执行 过程中出现错误,则将错误信息赋给保留的lasterr 变量,并转去执行语句组2。
第五讲 MATLAB程序设计
14
2、选择结构
(1) 条件分支语句——if语句 在MATLAB中,if语句有3种格式。 1) 单分支if语句: if 条件 语句组
end
第五讲 MATLAB程序设计
15
2) 双分支if语句: if 条件
语句组1 else
语句组2 end
第五讲 MATLAB程序设计
16
第五讲 MATLAB程序设计
24
三、程序调试
1 错误分类
一般来说,应用程序的错误有两类:
一类是语法错误,例如函数名的拼写错、表达式 书写错等。
另一类是运行时的错误。指程序的运行结果有错 误,这类错误也称为逻辑错误。
第五讲 MATLAB程序设计
25
2、查找逻辑错误的方法:
◆ 删去语句行末的分号,使显示其运行中间结果 ◆ 利用keyboard 命令实现,return继续程序执行 ◆ 注释掉M 函数文件的函数定义行,使函数文件转
第五讲 MATLAB程序设计
19
例: 矩阵乘法运算要求两矩阵的维数相容,否则会 出 错。先求两矩阵的乘积,若出错,则自动转去 求两矩阵的点乘。(extry.m)
第五讲 MATLAB程序设计
20
3、 循环结构
(1)硬循环语句——for语句

2第五讲MATLAB符号运算

2第五讲MATLAB符号运算

(二)符号表达式运算
1.符号表达式的四则运算
符号表达式的加、减、乘、除运算可直接由算 符’+’,’-’*’,’/’,’\’ 来实现,幂运算可以由’^n’来实现。
算符’.*’,’./’,’.\’,’.^’,分别实现元素对元素的数组的乘、 左除、右除、和幂的运算。
MATLAB中没有ln运算符遇到它用log运算符代替。 另外log2(x),log10(y)表示求x和y的以2为底和以10为 底的对数。
实例演示
• 作符号计算(解方程组,其中a,b为常数,
x,y为变量):
• a,b,x,y均为符号运算量。在符号运算前,
应先将a,b,x,y定义为符号运算量。
实例演示
a=sym('a'); %定义‘a’为符号运算量,输出 变量名为a
b=sym('b');x=sym('x');y=sym('y');
(四)符号替换
• MATLAB软件提供的符号替换命令为subs,通常使 用下面三种形式(对数组也适用): • (1) subs(s,new) 用new替换s中的自由变量; • (2) subs(s,old,new) 用new替换s中的变量old; • (3) subs(s) 用当前内存中的已赋值变量去代 替s中的同名变量; • 例:执行命令 • subs(a+b,a,4) • 执行结果为 • 4+b
学习内容 • 一、符号对象
• 二、符号运算与高等数学 • 三、符号方程的求解
符号运算与高等数学
一、极限的计算
二、导数的运算
三、积分的运算
四、级数求和问题
五、函数的极值和零点
一、极限的计算
• 求极限问题解析解的MATLAB命令格式: • Limit(f)

matlab第五讲教案

matlab第五讲教案

西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab入门及应用授课教师:徐中慧班级:专业:安全技术及工程第四章课型:新授课教具:多媒体教学设备,matlab教学软件一、目标与要求掌握矩阵与数组的相关运算,及matlab中矩阵运算的相关函数,包括三角分解、正交变换、奇异值分解、特征值分解、矩阵的秩的运算等。

二、教学重点与难点本堂课教学的重点在于引导学生在编写matlab程序时能够熟练运用矩阵运算的相关函数实现相应的功能。

三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。

四、教学内容一、课后习题的解说。

(1)在计算器发明(约1974年)之前,人们需要用数学用表来计算正弦、余弦和对数值。

创建正弦值数学用表的步骤如下:①创建角度矢量、范围在0~3600之间,步长为180。

②计算正弦值,用角度和计算出来的正弦值创建表格。

③分别用两个disp语句给表格加上标题和表头。

④用fprintf显示数据,要求小数点后有两位有效数字。

解:angle=0:18:360; sine=sin(angle/180*pi);disp(' SINE TABLE ')disp(' Angle Sine ')fprintf(' %4.2f %4.2e\n',[angle;sine])(2)使用搜索引擎或浏览器搜索英镑、日元、欧元和人民币对美元的汇率,并把输出结果绘制成表。

要求用disp在表格中添加标题和表头,用fprintf输出格式化数据。

①创建日元和美元的汇率表,表中共有25行,从5日元开始,步长为5日元②创建人民币和美元的汇率表,表中共有30行,从5元开始,步长为5元③创建数据表格,表中有5列,第一列是美元,第二列是欧元,第三列是英镑,第四列是人民币,第五列是日元。

计算与1到10美元等价的其它货币值。

(将结果输出到.txt文件中,此步骤属选做)解:①jpy=5:5:25*5;usd1=jpy*0.01301;disp(' JPY &USD TABLE ')disp(' JPY USD ')fprintf(' %4.2f %4.2f\n',[jpy;usd1])②cny=5:5:30*5;usd2= cny *0.1567;disp(' CNY &USD TABLE ') disp(' RMB USD ') fprintf(' %4.2f %4.2f\n',[cny;usd2])③usd=1:1:10;eur=usd* 0.7323; gbp=usd* 0.6405; cny=usd* 6.3816; jpy=usd*76.358;disp(' AS Exch')disp(' USD EUR GBP RMB JPY')fprintf(' %4.2f %4.2f %4.2f %4.2f %4.2f \n',[ usd;eur;gbp;cny;jpy])二、矩阵的相关知识掌握矩阵与数组的相关运算,及matlab 中矩阵运算的相关函数,包括三角分解、正交变换、奇异值分解、特征值分解、矩阵的秩的运算等。

MATLAB程序设计专业知识讲座

MATLAB程序设计专业知识讲座
s=0; a=[65,76,56,78;
98,85,74,85; 76,67,78,79; 98,58,42,75; 67,89,76,87]; for k=a s=s+k; end disp(s);
2.while语句
语句格式: while (条件) 循环体语句
end
阐明:(1)执行过程:若条件成立,则执行循环 体语句,执行后再判断条件是否成立,假如不 成立则跳出循环;
price=input('请输入商品价格'); switch fix(price/100) case {0,1} rate=0; case {2,5,4} rate=5/100; case num2cell(5:9) rate=5/100; case num2cell(10:24) rate=8/100; case num2cell(25:49) rate=10/100; otherwise rate=14/100; end price=price*(1-rate)
3 、 pause函数
调用格式: pause(延迟秒数); 作用:使程序暂停一段时间; 阐明: 1)假如省略延迟时间,直接使用pause,则将 暂停程序,直到顾客按任一键后程序继续执行; 2)若输入参数n,则程序暂停n秒 3)若要强行中断程序旳运营使用Ctrl+C命令。
4 、 break函数
调用格式: break; 作用:使包括该指令旳while、for终止循环, 或在if-end、switch-case、try-catch中造成中断。
n=find(rem(p,i)==0&p~=i); p(n)=[]; end p
5.4 函数文件
1.函数文件由function语句引导; 2.基本构造:

第五讲 Matlab程序设计基础PPT课件

第五讲 Matlab程序设计基础PPT课件
(2)打开已有的 M 文件
菜单操作 ( File Open ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 ) 双击 M 文件
8
脚本文件举例
例:编写一个脚本文件将华氏温度转化为摄氏温度 c 5 ( f 32) 9
新建一个 M 文件 f2cs.m,内容如下:
clear; % 清除当前工作空间中的变量 f=input('Please input Fahrenheit temperature:'); c=5*(f-32)/9; fprintf('The centigrade temperature is %g\n',c);
出变量。 两者的简单介绍及区别如表所示。
7
M 文件的建立与打开
M 文件是一个文本文件,可以用任何文本编辑器来建 立和编辑,通常使用 Matlab 自带的 M 文件编辑器。
(1)新建一个 M 文件
菜单操作 ( File New M-File ) 命令操作 ( edit M 文件名 ) 命令按钮 ( 快捷键 )
用 Matlab 语言编写的程序称为 M 文件。
M 文件以 .m 为扩展名。
M 文件是由若干 Matlab 命令组合在一起构成的,它 可以完成某些操作,也可以实现某种算法。事实上,Matlab 提供的内部函数以及各种工具箱,都是利用 Matlab 语言开发 的 M 文件。大家也可以结合自己的工作需要,开发自己的程 序或工具箱。
————MATLAB————
➢MATLAB的函数
sin asin cos acos tan atan cot acot sec asec csc acsc
正弦函数 反正弦函数 余弦函数 反余弦函数 正切函数 反正切函数 余切函数 反余切函数 正割函数 反正割函数 余割函数 反余割函数

MATLAB程序设计 第五讲解析

MATLAB程序设计 第五讲解析

机械与汽车工程学院 MATLAB程序设计第五讲 MATLAB 绘图教学目标教学重点教学内容第1页机械与汽车工程学院 MATLAB程序设计教学目标了解 MATLAB 的图形窗口l 掌握 MATLAB 基本二维图形、三维图形的绘制,及图形的基本操作 l 掌握MATLAB 特殊图形的绘制,如柱状图、饼状图 l 掌握图形注释的添加及管理 l 了解三维图形的视点控制及颜色、光照控制 l 第2页机械与汽车工程学院 MATLAB程序设计教学重点 MATLAB 基本二维图形、三维图形的绘制,及图形的基本操作 l MATLAB 特殊图形的绘制,如柱状图、饼状图 l 第3页机械与汽车工程学院 MATLAB程序设计教学内容基本图形的绘制 l 特殊图形的绘制 l 图形注释 l 三维图形的高级控制 l MATLAB 图形窗口 l 第4页机械与汽车工程学院 MATLAB程序设计基本图形的绘制二维图形的绘制 l 三维图形的绘制 l 图形的其他操作 l 第5页机械与汽车工程学院 MATLAB程序设计二维图形的绘制函数名功能在线性坐标系中绘制二维图形在对数坐标系中绘制二维图形对数图形,x 为对数坐标,y 为线性坐标对数图形,x 为线性坐标,y 为对数坐标绘制双 y 轴图形第6页 plot loglog semilogx semilogy plotyy机械与汽车工程学院 MATLAB程序设计 plot 函数 l plot 函数的调用格式为:– plot(Y – plot(X1,Y1,... – plot(X1,Y1,LineSpec,... – h = plot( (7)机械与汽车工程学院 MATLAB程序设计 plot 函数格式1 l l l l plot(Y Y 是向量:以向量索引(下标为横坐标,以向量元素值为纵坐标绘制图形,以直线段顺序连接各点; Y 是矩阵,同上,分别把每列元素用线段连接绘制; Y 是复数向量,以实部为横坐标,虚部为纵坐标, plot(Y = plot(real(Y,imag(Y (y=[1:4;2:2:8], plot(y (y=[1+3*i,2+2*i,3+5*i,4+2*i], plot(y 第8页机械与汽车工程学院 MATLAB程序设计 plot 函数格式2 l plot(x,y – x、y 均为行(列向量: 以 x 的元素为横坐标,y 的元素为纵坐标绘制图形;– x 为长度n 的向量,y 为 m×n 矩阵:以 x 的元素为横坐标,绘制 y 的 m 个 n 维向量;(x=1:10;y=[-9:0;0:9], plot(x,y – x、y 均为 m×n 矩阵:以 x 的各列为横坐标,以y 的对应列为纵坐标绘制 (x=[0:9;1:10], y=[-9:0;0:9], plot(x,y 第9页机械与汽车工程学院 MATLAB程序设计 plot 函数格式3 l lplot(x,y, ’LineSpec’ Li neSpec(字符串:图像控制,包括线条的形状、颜色和线型颜色符号含义数据点型 b . 蓝色 g x 绿色 r + 红色 c h 篮绿色 m * 紫红色 y s 黄色 k d 黑色含义• r É Y ¶ ¨ ¯ 线型 : -. -空格含义实线点线点划线虚线不画线第10页机械与汽车工程学院 MATLAB程序设计 >> x= 0:0.01:10; >> y=tan(x; >>plot(x,y >> 第11页机械与汽车工程学院 MATLAB程序设计三维图形的绘制 l 三维图形包括:–三维曲线图:plot3 –三维曲面图: mesh 和surf 第12页机械与汽车工程学院 MATLAB程序设计 Plot3 格式 l l plot3(X,Y,Z – X、Y、Z 为长度相同的向量,分别以 X、Y、Z 为横、纵、竖坐标绘制空间曲线;– X、Y、Z 皆为m×n矩阵,以每个矩阵的对应列为三坐标绘制出m条空间曲线(t=~eye(3;x=zeros(2,3;y=x;z=x;x(2,:=t(3,:,y(2,:=t(2,:, z(2,:=t(1,:,plot3(x,y,zplot3(X1,Y1,Z1,LineSpec 第13页机械与汽车工程学院 MATLAB程序设计 >> % 该程序用于绘制三维的螺旋曲线图 >> t = 0:pi/50:20*pi; >> plot3(sin(t,cos(2*t,sin(t+cos(t 第14页机械与汽车工程学院 MATLAB程序设计 mesh 、 surf 函数 mesh :绘制出在某一区间内完整的网格曲面 l surf :绘制曲面图 l – mesh/surf (X,Y,Z:绘制一个网格曲面图,颜色取决 Z :即颜色∝高度。

第五讲非线性方程求根及其MATLAB实现

第五讲非线性方程求根及其MATLAB实现

第五讲非线性方程求根及其MATLAB实现一、引言在数学和工程领域中,非线性方程的求解是一项基本任务。

非线性方程通常不具备直接求解的方法,因此需要采用迭代方法来逼近其解。

本讲将介绍几种常用的非线性方程求根方法,并给出MATLAB实现的示例。

二、二分法二分法是一种简单但有效的求根方法。

其基本思想是将方程的根所在的区间进行逐步划分,并选择其中点作为迭代的点,直到满足精度要求。

具体实现如下:```matlabfunction x = bisection(f, a, b, tol)if f(a) * f(b) >= 0error('f(a)和f(b)符号相同');endwhile (b - a) / 2 > tolx=(a+b)/2;if f(x) == 0break;elseif f(a) * f(x) < 0b=x;elsea=x;endendend```三、牛顿法牛顿法是一种基于方程导数的迭代方法,其基本思想是使用方程的切线来逼近其根。

具体实现如下:```matlabfunction x = newton(f, df, x0, tol)while abs(f(x0)) > tolx0 = x0 - f(x0) / df(x0);endx=x0;end```四、割线法割线法是一种类似于牛顿法的迭代方法,其基本思想是用两个迭代点的连线来逼近方程的根。

具体实现如下:```matlabfunction x = secant(f, x0, x1, tol)while abs(f(x1)) > tolx=x1-f(x1)*(x1-x0)/(f(x1)-f(x0));x0=x1;x1=x;endend```五、MATLAB实现示例下面是一些使用上述非线性方程求根方法的MATLAB示例:```matlab% 示例1:求方程sin(x) = 0的根a=0;b = 2 * pi;tol = 1e-6;x = bisection(f, a, b, tol);disp(['二分法求解的根为:', num2str(x)]);disp(['牛顿法求解的根为:', num2str(x)]);x = secant(f, a, b, tol);disp(['割线法求解的根为:', num2str(x)]);%示例2:求方程x^2-2=0的根x0=1;tol = 1e-6;x = newton(f, df, x0, tol);disp(['牛顿法求解的根为:', num2str(x)]);```六、总结本讲介绍了几种常用的非线性方程求根方法,并给出了MATLAB的实现示例。

Matlab程序设计教程(第二版)刘卫国课后参考答案解析

Matlab程序设计教程(第二版)刘卫国课后参考答案解析

Matlab程序设计教程(第二版)刘卫国课后参考答案解析第二章1 求下列表达式的值。

(1)w=sqrt(2)*(1+0.34245*10^(-6))(2)a=3.5;b=5;c=-9.8;x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/tan(b+c)+a(3)a=3.32;b=-7.9;y=2*pi*a^(2)*[(1-pi/4)*b-(0.8333-pi/4)*a](4)t=[2,1-3*i;5,-0.65];z=1/2*exp(2*t)*log(t+sqrt(1+t^(2)))2 求下列表达式A=[-1,5,-4;0,7,8;3,61,7];B=[8,3,-1;2,5,3;-3,2,0];(1)A+6*B A^2-B+eye(2)A*B A.*B B.*A(3)A/B B\A(4)[A,B] [A([1,3],:);B^2]3 根据已知,完成下列操作(1)A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14];K=find(A>10&A<25);A(K)(2)A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14];B=A(1:3,:) C=A(:,1:2) D=A(2:4,3:4) E=B*C(3)E<="">第三章1 从键盘输入一个3位数,将它反向输出,如输入639,出数936。

f=input('输入一个数:','s');f(end :-1:1)2 用if语句score=input('请输入成绩:');if score>=90&&score<=100disp('A');elseif score>=80&&score<=89disp('B');elseif score>=70&&score<=79disp('C');elseif score>=60&&score<=69;disp('D');elseif score<60&&score>=0;disp('E');elsedisp('出错');end用switch语句score=input('请输入成绩:');switch fix(score/10)case {9,10}disp('A');case {8}disp('B');case {7}disp('C');case {6}disp('D');case {0,1,2,3,4,5}disp('E');otherwisedisp('出错');end第四章1题1) X=0:10;Y=x-x.^3/6;P lot(x,y)2) t=0:0.01:2*pi;x=8.*cos(t);y=4*sqrt(2).*sin(t);plot(x,y)2题M文件:t=-pi:pi/10:pi;y=1./(1+exp(-t));subplot(2,2,1);bar(t,y,'b');title('bar(t,y,''b'')');axis([-5,5,-3,3]); subplot(2,2,2);stairs(t,y,'k');title('stairs (t,y,''k'')');axis([-5,5,-3,3]); subplot(2,2,3);stem(t,y,'m');title('stem (t,y,''m'')');axis([-5,5,-3,3]); subplot(2,2,4);loglog(t,y,'g');title('loglog(t,y,''g'')');axis([-5,5,-3,3]);3题1)t=0:pi/100:2*pi;y=5*cos(t)+4;polar(t,y,'-*')2)t=-pi/3:pi/100:pi/3;r=5*sin(t).^2./cos(t);polar(t,r,'-*')4题1)t=0:pi/100:2*pi;x=exp(-t/20).*cos(t);y=exp(-t/20).*sin(t);z=t;plot3(x,y,z)第五章:1题A=randn(10,5)1) X=mean(A)Y=std(A,0,1)2) max(max(A))min(min(A))3) B=sum(A,2)sum(B)4) sort(A);sort(A,2,'descend')2题1)t=0:15:90;x1=[0,0.2588,0.5000,0.7071,0.8660,0.9659,1.0000];a1=0:1:90;y1=interp1(t,x1,a1,'spline')x2=[0,0.2679,0.5774,1.0000,1.7320,3.7320,NaN]; a2=0:1:75; y2= interp1(t,x2,a2,'spline')p1=polyfit(t,x1,5);z1=polyval(p1,a1)p2=polyfit(t,x2,5);z2=polyval(p2,a2)4题P=[2,-3,5,13];Q=[1,5,8];p=polyder(P)p1=polyder(P,Q)[p,q]= polyder(P,Q)5题P1=[1,2,4,0,5];P2=[1,0];P3=[1,2,3];1) P4=conv(P2,P3)P4=[0,1,2,3,0];P=P1+P42) x=roots(P)3) A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5];Y=polyval(P,A)4) Z=polyvalm(P,A)第8章1.分解因式. (2)factor(sym(‘5135’))(1)syms A x y;A=x^4-y^4;factor(A)2.求函数的极限(1)syms x; (2)syms x;limit((x-2)/(x^2-4),x,2)f=(sqrt(pi)-sqrt(acos(x)))/sqrt(x+1);limit(f,x,-1,'right')3.求函数的符号导数。

MATLAB学习课件第五章

MATLAB学习课件第五章

4
5.1 概述
根据程序运行方式的不同,可以将MATLAB程序设计分为
两种方式:
一种是在命令窗口中逐条输入命令,另一种是将相关
的命令存储在一个M文件中。
前者称为命令行方式,又称为指令驱动模式。后者称
为M文件的程序运行方式。
命令行方式 M文件编程方式 命令逐条解释执行 自动一次执行完文件中所有命令 简单,直观 不直观 速度慢,执行过程不能保留, 速度快,可以重复执行文件 不能重复执行
25
2、while语句
while语句的一般格式为: while 表达式 循环体语句 end while语句为条件循环语句,循环次数不确定,只要循环条件
表达式的结果非零,语句体就重复执行,直到循环条件表达 式的结果为零,则跳出循环
26
5.3.4 程序流的控制
与控制程序执行过程相关的语句主要有break语句、
5.3 MATLAB程序结构
MATLAB程序的控制结构有3种:
顺序结构、选择结构和循环结构。
按照程序设计的观点, 任何算法功能都可以通过由程序模
块组成的三种基本程序结构的组合来实现。
11
5.3.1 顺序结构
顺序结构是指程序按程序语句或模块在执行流中的顺序逐
个执行,直到执行到程序的最后一个语句。
函数式M文件 接受输入参数,有返回值 文件中定义变量为局部变量, 文件执行完毕时,局部变量 清除,不保留在工作空间
要通过函数调用的方式调用 才能运行 用户需要自定义某种具体算 法时使用
5.2.3 M文件操作
对M文件常用的操作有:打开M文件、新建M文件、编辑
M文件、保存M文件和运行M文件等。
10
例5.8:判断读取矩阵是否正确。 解:程序如下 n=4; a=magic(3) try a_n=a(n,:), %取a的第n 行元素 catch a_n=a(end, : ), %如取a的第n 行出错,则改取a的最后一行 end lasterr %显示出错原因 执行结果如下; a= 8 1 6 3 5 7 4 9 2 a_n = 9 2 ans = Attempted to access a(4,:); index out of bounds because size(a)=[3,3].

数学实验MATLAB第五章

数学实验MATLAB第五章

学习方法与建议
学习方法
通过理论学习和实践操作相结合的方式,深入理解MATLAB高级编程技术的原 理和应用。
建议
在学习本章之前,读者应该已经具备一定的MATLAB基础知识和编程经验。同 时,建议读者在学习过程中多进行实践操作,通过编写代码来加深对知识点的 理解和掌握。
02 MATLAB基础知识回顾
数学实验matlab第五章
目 录
• 第五章概述 • MATLAB基础知识回顾 • 数组与矩阵操作 • 数值计算与数据分析 • 程序设计与优化 • 综合应用与案例分析
01 第五章概述
章节内容与目标
内容
介绍MATLAB中的高级编程技术 ,包括脚本和函数编程、数据结 构和算法、面向对象编程等。
目标
通过学习本章,读者应该能够熟 练掌握MATLAB的高级编程技术 ,并能够灵活运用这些技术解决 复杂的数学问题。
运算符与函数
运算符
详细讲解MATLAB中的运算符, 包括算术运算符、关系运算符、 逻辑运算符等。同时介绍运算符
的优先级和结合性。
函数
阐述函数的概念,以及如何在 MATLAB中定义和使用函数。同时 介绍函数的输入和输出参数,以及 函数的返回值。
常用函数
介绍MATLAB中常用的函数,包括 数学函数、字符串处理函数、文件 操作函数等。同时给出函数的语法 和使用示例。
矩阵的乘法
按照矩阵乘法的规则进行运算 ,结果矩阵的维数可能发生变
化。
矩阵的转置
将矩阵的行和列互换,得到转 置矩阵。
矩阵的逆
对于方阵,若其逆矩阵存在, 则可以通过特定的运算求得逆
矩阵。
数组与矩阵的应用举例
线性方程组求解
数据分析与处理

第五讲 基于MATLAB-Simulink的建模与仿真

第五讲  基于MATLAB-Simulink的建模与仿真
MATLAB的功能包括:数值分析,数值和符号计算, 工程和科学绘图,通讯和控制系统的设计与仿真,数字图 像与信号处理,财务与金融工程等。
MATLAB软件简介?
MATLAB软件的典型应用领域:
❖科学研究; ❖工程技术应用研究 ❖CAI(Computer Aided Instruct) ❖数学实验(Mathematical Experiment) ❖数学建模(Mathematical Modeling)
模型 Transfer-Fcn:线性传递函数模型 Zero-Pole:以零极点表示的传递
函数模型 Memory:存储上一时刻的状态值 Transport Delay:输入信号延时 一个给定时间再输出 Variable Transport Delay:输入 信号延时一个可变时间再输出
✓ 离散模块(Discrete)
For循环不能用For循环内重新赋值循环变
量n来终止。
在For循环中循环控制量的范围可以是任
何有效的MATLAB矩阵。比如
data=[11 9 45 6; 7 16 -1 5];
for n=data
x=n(1)-n(2)
end 这时程序的输出有四个数值,分别是矩阵
data的两列相减的结果
x = 4 x = -7
x = 46 x = 1
For循环可按需要嵌套,即For循环体内的命 令组中可以出现另一个For循环体,这体现了 For循环体也是命令组。比如 for n=1:5
for m=5:-1:1
A(n,m)=n^2+m^2; End
end
MATLAB软件简介?
While-end循环以不定的次数求一组语句的值。 Whil-end 循环的一般形式是: while expression(控制表达式) {commands} end 只要在控制表达式(expression)里的所有元 素为真,就执行While和end语句之间的命令 串({commands})。

第五讲matlab句柄绘图和GUI

第五讲matlab句柄绘图和GUI

1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
轴对象
窗口对象
线 对 象
面对象
10 0
value of the cosine 1
cos(x)=0.707
0.5
0
线对象
cos(x)
-10 20
轴对象
10
00
-0.5
20
10
-1
-5
0 50
像对象100 150 200
1 0.5
0 -0.5
-1 100 200 300
get(gca,'colororder') ans =
110 101 011 100 010 001
• 设置线条和窗口的颜色 set(h1,'color',[1 0 0]) set(h1,'color',[1 0.5 0])
10
10
9
9
8
8
7
7
6
6
5
5
4
4
3
3
set(gcf,'color',[0.5 0.5 0.5]) set(gcf,'color',[0.5 0.6 0.8])
• 句柄图形:利用底层绘图函数,通过对对象属 性的设置(Handle Graphics)与操作实现绘图。
• 句柄图形是一种面向对象的绘图系统,其中所 有图形操作都是针对图形对象而言的。
• 句柄图形充分体现了面向对象的程序设计。 • 之前介绍的高层图形指令(如plot)都是以句柄
图形软件为基础写成的。也正是这个原因,句 柄图形也被称为底层(Low-level)图形。

MATLAB-第五章

MATLAB-第五章

例如: factor: 因式分解
>>factor(x^3-6*x^2+11*x-6)
第五章 MATLAB的符号计算
五、符号运算
1 初等代数运算 (3)符号表达式化简(page48,表3-4)
例如: simplify: 对表达式化简
>>simplify(x^3-6*x^2+11*x-6) >>simplify(sin(x)^2 + cos(x)^2) >>simplify(exp(c*log(sqrt(a+b)))) >>simplify((x^2+5*x+6)/(x+2)) >>simplify(sqrt(16))
第五章 MATLAB的符号计算
三、符号表达式的定义
建立符号表达式有以下2种方法: (1)用sym函数建立符号表达式。 >> f=sym('a*x^2+b*x+c'); (2) 使用已经定义的符号变量组成符号表达式。 >> syms x y a b c >> f=a*x^2+b*x+c (?)利用单引号来生成符号表达式。 >> f='a*x^2+b*x+c'
第五章 MATLAB的符号计算
五、符号运算
1 初等代数运算 (2)符号表达式的加减乘除幂次方运算
例如: >> f1=sym('1/(a-b)'); >> f2=sym('2*a/(a+b)'); >> f3=sym('(a+1)*(b-1)*(a-b)');

第五讲 MATLAB绘图

第五讲 MATLAB绘图

第五讲 MATLAB绘图y 内容 y 画图入门 y 打印图象 y 联合作图 y 图像设置 循 结构( 固) y 循环结构(巩固) y 目的 y 能够进行MATLAB绘图1画图入门y MATLAB的扩展性和机制独立的画图功能是一个极其重要的功能.这个功能使数据画图变得十分简单.画一个数据图, 首先要创建两个向量,由x, y构成,然后使用plot函数。

x=0:1:10; 0 1 10 y=x.^2-10*x+15; plot(x y); plot(x,y);2y 正如我们所看到的,在MATLAB中画图是十分容易的.只要任何 对向量的长度相同,那么它就可以就能可视化地画出 任何一对向量的长度相同 来。

但是这还不是最后的结果,因为它还没有标题,坐标轴 标签,网格线。

y 给图增加标题和坐标轴标签将会用到title, xlabel, ylable函数。

调用每个函数时将会有一个字符串,这个字符串包含了图 象标题和坐标轴标签的信息 用grid 象标题和坐标轴标签的信息。

用 id命令可使网格线出现 或消失在图象中,grid on代表在图象中出现网格线,grid off代表去除网格线。

3给图增加标题和坐标轴标签将会用到title, xlabel, ylable函数。

调用每个函数时将会有一个字符串,这个字 符串包含了图象标题和坐标轴标签的信息。

用grid命令可 使网格线出现或消失在图象中,grid on代表在图象中出现 网格线 grid 网格线, id off ff代表去除网格线。

代表去除网格线 x 0:1:10; x=0:1:10; y=x.^2-10*x+15; plot(x,y); title ('Plot of y=x.^2-10*x+15'); xlabel ('x'); ylabel l b l ('y'); (' ') grid on;4打印图象y 一个图象一旦建立,我们就可以用print命令在打印机上打印出这幅图,也可以单击图象窗口的打印图标或者在文件 印出这幅图 也可以单击图象窗口的打印图标或者在文件 菜单中选择打印项打印。

第五讲 规划问题的matlab计算

第五讲  规划问题的matlab计算

但是,输入matlab计算时,应该输入成x1,x2,…,x25的 格式。本题有25个0-1变量且需要约束全部化为小于等 于形式。约束矩阵是20x25的矩阵(为什么?),应 该采用稀疏矩阵的输入方式。
>> clear >> c=[32 17 34 36 25 21 31 21 22 19 24 29 40 28 39 26 35 41 33 29 33 27 31 42 22]; >> A=zeor(20,25);
后者略优于前者bfgs是至今最好的拟牛顿法下面对两种算法作一个计算对比functionfgzuisu2xdfp拟牛顿法计算initialhesstypeidentity初始hesse矩阵用单位阵optionsoptimset?largescale??off??hessupdate??dfp??gradobj??on??maxfunevals?250?initialhesstype??identity??display??iter?
参数输入: Fun: x0: 目标函数,一般用M文件给出 优化的初始点
Options: 参数设置(后面说明)
函数输出:
X:最优点(或最后迭代值) Fval:最后迭代值的目标函数值 Exitflag:函数结束的信息 Oupput:函数基本信息,包括迭代次数,目标函数最 大计算次数,使用的算法名称,计算规模
x =
Ax b, s.t .Qx p , x 0
求解命令: x=linprog(c,A,b,Q,p)
若没有不等式,则令A=[ ],b=[ ]。
例2
例2 求解线性规划
min z 13 x1 9 x2 10 x3 11x4 12 x5 8 x6 ; x1 x4 400, x x 600, 5 2 x3 x6 500, s.t. 0.4 x1 1.1x2 x3 800, 0.5 x4 1.2 x5 1.3 x6 900, x16 0

第五讲-MATLAB之数组运算

第五讲-MATLAB之数组运算

数组的算术运算运算运算符含义说明加 + 相应元素相加减 - 相应元素相减乘 * 矩阵乘法点乘 .* 相应元素相乘幂 ^ 矩阵幂运算点幂 .^ 相应元素进行幂运算左除或右除\或/ 矩阵左除或右除左点除或右点除 .\或./ A的元素被B的对应元素除【例】数组加减法 >>A = rand(3); >>B = rand(3); >>A+B, A-B, A*B >>A/B, A\B 【例】点幂“.^”>>a=1:6>>a=a.^2>>b=reshape(a,2,3) >>b=b.^2关系运算MATLAB提供了6种关系运算符:<、>、<=、>=、==、~ =(不等于)关系运算符的运算法则:1、当两个标量进行比较时,直接比较两数大小。

若关系成立,结果为1,否则为0。

2、当两个维数相等的矩阵进行比较时,其相应位置的元素按标量关系进行比较,并给出结果,形成一个维数与原来相同的0、1矩阵。

3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行比较,结果形成一个与矩阵维数相等的0、1矩阵。

【例】建立5阶方阵A,判断其元素能否被3整除。

A = [24, 35, 13, 22, 63; 23, 39, 47, 80, 80; ...90, 41, 80, 29, 10; 45, 57, 85, 62, 21; 37, 19, 31, 88, 76] P = rem(A,3)==0 %被3除,求余逻辑运算Matlab提供了3种逻辑运算符:&(与)、|(或)、~(非)逻辑运算符的运算法则:1、在逻辑运算中,确认非零元素为真(1),零元素为假(0)。

2、当两个维数相等的矩阵进行比较时,其相应位置的元素按标量关系进行比较,并给出结果,形成一个维数与原来相同的0、1矩阵;3、当一个标量与一个矩阵比较时,该标量与矩阵的各元素进行比较,结果形成一个与矩阵维数相等的0、1矩阵;4、算术运算优先级最高,逻辑运算优先级最低。

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

MATLAB程序设计杨凯2010 . 11内容回顾一、二维绘图关键命令关键命令::plot 二、三维绘图关键命令关键命令::三维曲线三维曲线::plot3三维曲面三维曲面::meshgird;mesh;surf主要内容——数据分析与计算一、数据统计处理二、数据插值三、曲线拟合四、离散傅立叶变换五、多项式计算一、数据统计处理1.1最大值和最小值MATLAB 提供的求数据序列的最大值和最小值的函数分别为max 和min ,两个函数的调用格式和操作过程类似数的调用格式和操作过程类似。

1、求向量的最大值和最小值求一个向量X 的最大值的函数有两种调用格式格式,,分别是分别是::(1 y=max(X:返回向量X 的最大值存入y ,如果X 中包含复数元素中包含复数元素,,则按模取最大值则按模取最大值。

(2 [y,I]=max(X:返回向量X 的最大值存入y ,最大值的序号存入I ,如果X 中包含复数元素中包含复数元素,,则按模取最大值取最大值。

求向量X 的最小值的函数是min(X,用法和max(X完全相同完全相同。

例:求向量x 的最大值的最大值。

命令如下命令如下::x=[-43,72,9,16,23,47];y=max(x %求向量x 中的最大值[y,l]=max(x %求向量x 中的最大值及其该元素的位置2.求矩阵的最大值和最小值求矩阵A 的最大值的函数有3种调用格式种调用格式,,分别是分别是::(1 max(A:返回一个行向量返回一个行向量,,向量的第i 个元素是矩阵A 的第i 列上的最大值列上的最大值。

(2 [Y,U]=max(A:返回行向量Y 和U ,Y 向量记录A 的每列的最大值的每列的最大值,,U 向量记录每列最大值的行号大值的行号。

(3 max(A,[],dim:dim取1或2。

dim取1时,该函数;dim取2时,该函数返回一个和max(A完全相同完全相同;行上的最大值。

,其第i个元素是A矩阵的第i行上的最大值列向量,列向量完全相同。

求最小值的函数是min,其用法和max完全相同例:分别求3×4矩阵x中各列和各行元素中的最大。

值,并求整个矩阵的最大值和最小值并求整个矩阵的最大值和最小值。

3.两个向量或矩阵对应元素的比较函数max 和min 还能对两个同型的向量或矩阵进行比较进行比较,,调用格式为调用格式为::(1 U=max(A,B:A,B 是两个同型的向量或矩阵是两个同型的向量或矩阵,,结果U 是与A,B 同型的向量或矩阵同型的向量或矩阵,,U 的每个元素等于A,B 对应元素的较大者对应元素的较大者。

(2 U=max(A,n:n 是一个标量是一个标量,,结果U 是与A 同型的向量或矩阵的向量或矩阵,,U 的每个元素等于A 对应元素和n 中的较大者中的较大者。

min 函数的用法和max 完全相同完全相同。

例:求两个2×3矩阵x, y 所有同一位置上的较大元素构成的新矩阵p 。

1.2 求和与求积数据序列求和与求积的函数是sum和是一个向量,,其使用方法类似。

设X是一个向量prod,其使用方法类似是一个矩阵,,函数的调用格式为函数的调用格式为::A是一个矩阵各元素的和。

sum(X:返回向量X各元素的和各元素的乘积。

prod(X:返回向量X各元素的乘积返回一个行向量,,其第i个元素是A sum(A:返回一个行向量。

的第i列的元素和列的元素和。

prod(A:返回一个行向量返回一个行向量,,其第i 个元素是A 的第i 列的元素乘积的元素乘积。

sum(A,dim:当dim 为1时,该函数等同于sum(A;当dim 为2时,返回一个列向量返回一个列向量,,其第i 个元素是A 的第i 行的各元素之和行的各元素之和。

prod(A,dim:当dim 为1时,该函数等同于prod(A;当dim 为2时,返回一个列向量返回一个列向量,,其第i 个元素是A 的第i 行的各元素乘积行的各元素乘积。

例: 求矩阵A 的每行元素的乘积和全部元素的乘积的每行元素的乘积和全部元素的乘积。

1.3 平均值和中值求数据序列平均值的函数是mean ,求数据序列中值的函数是median 。

两个函数的调用格式为两个函数的调用格式为::mean(X:返回向量X 的算术平均值的算术平均值。

median(X:返回向量X 的中值的中值。

mean(A:返回一个行向量返回一个行向量,,其第i 个元素是A 的第I 列的算术平均值列的算术平均值。

median(A:返回一个行向量返回一个行向量,,其第i 个元素是A 的第i 列的中值列的中值。

mean(A,dim:当dim 为1时,该函数等同于mean(A;当dim 为2时,返回一个列向量返回一个列向量,,其第i 个元素是A 的第I 行的算术平均值行的算术平均值。

当为时,等同于;当median(A,dim:dim 1median(Adim 为2时,返回一个列向量返回一个列向量,,其第i 个元素是A 的第i 行的中值的中值。

例:分别求向量x 与y 的平均值和中值的平均值和中值。

1.4 标准方差与相关系数1.求标准方差在MATLAB 中,提供了计算数据序列的标准方差的函数std 。

对于向量X ,std(X返回一个标准方差方差。

对于矩阵A ,std(A返回一个行向量返回一个行向量,,它的各个元素便是矩阵A 各列或各行的标准方差各列或各行的标准方差。

std 函数的一般调用格式为的一般调用格式为::Y=std(A,flag,dim其中dim 取1或2。

当dim=1时,求各列元素的标准方差;当dim=2时,则求各行元素的标准方差则求各行元素的标准方差。

flag 取0或1例: 对二维矩阵x ,从不同维方向求出其标准方差从不同维方向求出其标准方差。

2、排序MATLAB 中对向量X 是排序函数是sort(X,函数返回一个对X 中的元素按升序排列的新向量中的元素按升序排列的新向量。

sort 函数也可以对矩阵A 的各列或各行重新排序,其调用格式为其调用格式为::[Y,I]=sort(A,dim其中dim 指明对A 的列还是行进行排序的列还是行进行排序。

若dim=1,则按列排则按列排;;若dim=2,则按行排则按行排。

Y 是排序后的矩阵后的矩阵,,而I 记录Y 中的元素在A 中位置中位置。

例:对二维矩阵做各种排序对二维矩阵做各种排序。

自学其他部分统计函数((自学3.其他部分统计函数(1累计和cumsum(2累积积sumprod(3相关系数corrcoef这些函数调用的参数与操作方式都与MEDIAN因此不作详细的介绍。

,因此不作详细的介绍函数基本上一样(中值中值函数基本上一样,二、数据插值插值的定义——是对某些集合给定的数据点之间函数的估值方法数的估值方法。

当不能很快地求出所需中间点的函数时当不能很快地求出所需中间点的函数时,,插值是一个非常有价值的工具个非常有价值的工具。

2.1 一维数据插值在MATLAB 中,实现这些插值的函数是interp1,其调用格式为其调用格式为::Y1=interp1(X,Y,X1,'method'函数根据X,Y 的值的值,,计算函数在X1处的值处的值。

X,Y 是两个等长的已知向量是两个等长的已知向量,,分别描述采样点和样本值分别描述采样点和样本值。

Y1=interp1(X,Y,X1,'method'X1是一个向量或标量是一个向量或标量,,描述欲插值的点描述欲插值的点,,Y1是一个与X1等长的插值结果等长的插值结果。

method 是插值方法是插值方法,,允许的取值有许的取值有‘‘linear’、‘nearest’、‘cubic’、‘spline’。

注意注意::X1的取值范围不能超出X 的给定范围的给定范围,,否则,会给出会给出““NaN”错误错误。

MATLAB 中有一个专门的3次样条插值函数Y1=spline(X,Y,X1,其功能及使用方法与函数Y1=interp1(X,Y,X1,‘spline’完全相同完全相同。

例:插值在车轮外形曲线检测中的应用车轮曲线特点车轮曲线特点::多段圆弧状曲线拼接而成基本原理基本原理::磁爬式系统组成系统组成::(1两个旋转编码器两个旋转编码器;;(2磁性小球磁性小球;;θ1θ2O 1O 2O 3(3机械支架机械支架;;测量曲线:(测量曲线例:某观测站测得某日6:00时至18:00时之间每隔2小时的室内外温度(℃,用3次样条插值分别求得该日室内外6:30至17:30时之间每隔2小时各点的近似温度(℃。

h =6:2:18;t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30]';设时间变量h 为一行向量为一行向量,,温度变量t 为一个两列矩阵矩阵,,其中第一列存放室内温度其中第一列存放室内温度,,第二列储存室外温度温度。

命令如下命令如下::XI =6.5:2:17.5YI=interp1(h,t,XI,‘spline’ %用3次样条插值计算2.2 二维数据插值在MATLAB 中,提供了解决二维插值问题的函数interp2,其调用格式为其调用格式为::Z1=interp2(X,Y,Z,X1,Y1,'method'其中X,Y 是两个向量是两个向量,,分别描述两个参数的采样点样点,,Z 是与参数采样点对应的函数值是与参数采样点对应的函数值,,X1,Y1是两个向量或标量个向量或标量,,描述欲插值的点描述欲插值的点。

Z1是根据相应的插值方法得到的插值结果插值方法得到的插值结果。

method 的取值与一维插值函数相同值函数相同。

X,Y,Z 也可以是矩阵形式也可以是矩阵形式。

同样同样,,X1,Y1的取值范围不能超出X,Y 的给定范围范围,,否则否则,,会给出会给出““NaN”错误错误。

三、曲线拟合在MATLAB 中,用polyfit 函数来求得最小二乘拟合多项式的系数拟合多项式的系数,,再用polyval 函数按所得的多项式计算所给出的点上的函数近似值式计算所给出的点上的函数近似值。

polyfit 函数的调用格式为函数的调用格式为::[P,S]=polyfit(X,Y,m函数根据采样点X 和采样点函数值Y ,产生一个m 次多项式P 及其在采样点的误差向量S 。

其中X,Y 是两个等长的向量是两个等长的向量,,P 是一个长度为m+1的向量的向量,,P 的元素为多项式系数的元素为多项式系数。

polyval 函数的功能是按多项式的系数计算x 点多项式的值polyval 函数用来求代数多项式的值数多项式的值,,其调用格式为:Y=polyval(P,x若x 为一数值为一数值,,则求多项式在该点的值则求多项式在该点的值;;若x 为向量或矩阵为向量或矩阵,,则对向量或矩阵中的每个元素求其多项式的值其多项式的值。

相关文档
最新文档