2 matlab——一个强有力的科学计算与。
控制系统cad软件。
2.1 概述。
matlab的名字由matrix和laboratory两词的前三个字母组合而成,始创者是时任美国新墨西哥大学计算机科学系主任的cleve moler教授。于2023年由mathworks公司推出(dos版)。2023年推出matlab 4.
0(windows版)。2023年matlab 5.0版问世。
2023年春已到了5.3版。今天matlab已成为国际上最优秀的科技应用软件之一,其强大的科学计算与可视化功能、简单易用的开放式可推展环境以及多达30余个面向不同领域而扩展的工具箱(toolbox)支持,使得matlab在许多学科领域在成为科学计算、计算机辅助设计与分析的基本工具和首选平台。
在国内外的许多大学中,matlab已成为自动控制,信号分析等课程和教科书的内容,成为许多学科攻读学位的大学生、硕士生、博士生的必须掌握的工具。在国际学术界,matlab已被确认作为一个准确、可靠的科学计算软件而得到承认。在许多国际一流的学术刊物上都可以看到matlab的应用,在研究单位和工业部门,matlab已成为一些分析统计软件的工作平台和主要支撑。
许多硬件、仪器都接受matlab的支持。
面向控制工程应用一直是matlab的主要功能之一,早期的版本就提供了控制系统设计工具箱(control toolbox)。90年代初的3.5版推出robust toolbox, 4.
0版推出基于模块图的控制系统**软件 simulink。到目前为止,matlab 版本中包含的控制工程类工具箱已超过10个。matlab所具备的强有力的计算功能和图形表现,以及各种工具箱提供的丰富的专用函数,为设计研究人员避免重复繁琐的计算和编程,更快、更好、更准确地进行控制系统分析和设计提供了极大的帮助。
本书的后叙章节中将结合控制系统理论与设计方法介绍几个控制类工具箱的应用。本章中,我们将通过一些简单例子表现matlab的编程和功能。
2.2 matlab基本功能及举例。
本节中,我们通过一些简单例题来说明matlab的基本计算与绘图功能。
2.2.1 矩阵运算。
既然以matrix laboratory的缩写来命名,matlab无疑将在矩阵的表示和运算方面独具特色。
矩阵的matlab表示:
对于矩阵,可以简单地表示为a=[1 2 3 ;4 5 6;7 8 9]
此外,a=[-1.3/7 sqrt(4.5) 2+3i]也表示一个矩阵。
在matlab中,可以方便地用c=[a;a]来构成一个新的矩阵。
也可以用。x=c(:,2)等命令来提取一个矩阵的某一部分。
matlab的矩阵运算:
matlab在矩阵运算方面的优势则更是明显。如,可以直接用 c=a+b, d=a*b等计算式形式的命令来完成矩阵的四则运算。
如有 ax=b 则求解指令为 x=a\b
xa=b 则求解指令为 x=b/a
矩阵转置: b=a’
矩阵求逆: b=inv(a)
行列式: det(a)
此外,在矩阵求特征值,lu分解等诸多方面,matlab都提供了大量丰富的专用函数和指令,使得用户可以用计算公式的形式来解决fortran、c等语言中须通过复杂编程来求解的问题。
读者可以通过运行本书提供的chp2_程序来体会matlab中矩阵计算的一些基本方法。
program chp2_1
basioc module --
clcdisp('matrix expression')
disp('a=[1 2 3;4 5 6;7 8 9] :
a=[1 2 3;4 5 6;7 8 9]
disp('a=[-1.3/7 sqrt(4.5) 2+3i] :
a=[-1.3/7 sqrt(4.5) 2+3i]
disp('matrix turn :'
b=a'pause
clca=[1 2 3;4 5 6;7 8 9]
a=[-1.3/7 sqrt(4.5) 2+3i]
disp(' c=[a;a] :
c=[a;a]
disp(' x=c(:,2) :
x=c(:,2)
pauseclc
a=[1 2 3;4 5 6;7 8 9]
disp(' c=a+a :'
c=a+adisp(' b=a*e(e is an 3x3 identity matrix) :
b=a*eye(3)
pauseclc
a=[1 2 3;3 2 1;1 2 5]
b=[-2 9 -15;6 15 -21;-6 11 -2]
disp('ax=b ==x=a\b :'
x=inv(a)*b
disp('the determinant of the square matrix x is')
det(x)
2.2.2 多项式计算。
matlab中以向量形式进行多项式的表示和计算。
如多项式 x2+3x+2 表示为x=[1 3 2]
4y3+2y2+6 表示为y=[4 2 0 6]
上述两个多项式的乘积,可以。
z=conv(x,y)
求得为 z=[4 14 14 10 18 12]
表示相乘后的多项式为 4x5+14x4+14x3+10x2+18x+12
相反,如欲求多项式的分解,则可用dconv指令。
如用 y=deconv(z,x)求得。
y=[4 2 0 6]
此外,还有:
求根,对多项式 x2+3x+2=0
可用 roots(x)求得。
rootofx=-2
反之,也有 polynom =poly(rootofx)
求函数值,可以polyval(x,5)求出x=5时,x2+3x+2的值。
如: pa=polyval(x,5)
得: pa=42
有关计算机程序参见 chp2_
% polyval - evaluate polynomial. %polyvalm - evaluate polynomial with matrix argument. %residue - partial-fraction expansion (residues).
polyfit - fit polynomial to data. %polyder - differentiate polynomial.
program bm_2
polynomial
clcdisp('polynomial expression')
disp('
disp('polynomial x^2+3x+2 and 4y^3+2y^2+6:')
x=[1 3 2]
y=[4 2 0 6]
disp('multiply polynomials-->z=conv(x,y):'
z=conv(x,y)
disp('divide polynomials-->y=deconv(z,x):'
y=deconv(z,x)
pauseclc
disp('
disp('polynomial x^2+3x+2:')
disp('
disp('find polynomial roots-->roots(x):'
rootofx=roots(x)
disp('convert roots to polynomial-->poly(roots):'
polynom=poly(rootofx)
disp(' evaluate polynomial-->pa=polyval(x,a);a=5:')
pa=polyval(x,5)
disp('end of bm_2')
2.2.3 函数功能。
matlab提供丰富的函数功能,基本函数例如下连几个表中。
表2.1 三角函数表2.2 基本函数。
2.2.4 图形处理。
图形是人们通过视觉观察和分析数据间内在关系的一个重要途径,在matlab中,可以通过数据点、曲线、曲面、线型、色彩等诸多手段表现数据的性状,获得良好的数据和函数图形处理的基本机能和规律。
1)二维绘图。
二维绘图的最基本指令是plot,它是以一定的线型(线条或标记,颜色)把一组成对的数据表示在x-y坐标面上,其格式为:
plot(x,y,line-type)
例2.1 曲线绘制 y1=sin(t), y2=cos(t), y3=e-(0.1+t)
程序 chp2_
program bm_p2
t=0:0.05:3*pi;
y1=sin(t);
y2=cos(t);
y3=exp(-(0.1+t));
plot(t,y1,'r',t,y2,'+g',t,y3,'b')
title('my first plot')
xlabel('number of points t')
ylabel('r:sin(t) g:cos(t) b:exp(-0.1-t)')
griddisp('end of bm_p2')
执行结果如图2.1所示。
2)三维绘图。
三维绘图主要包括三维空间曲线,三维网线图和曲面图,基本格式为:
三维空间曲线 plot(x,y,z. line-type)
三维网线图 mesh (z); mesh (x,y,z).
三维曲面图 surf (z); surf(x,y,z).
例2.2用三维网线图、曲面图表示函数。
参见程序chp2_
program chp2_
准备数据。x=-8:.5:8;
y=x';x=ones(size(y))*x;
y=y*ones(size(x));
r=sqrt(x.^2+y.^2)+eps;
z=sin(r)./r;
figure(1)
mesh(z三维网线图。
第二章MATLAB
2 matlab 一个强有力的科学计算与。控制系统cad软件。2.1 概述。matlab的名字由matrix和laboratory两词的前三个字母组合而成,始创者是时任美国新墨西哥大学计算机科学系主任的cleve moler教授。于1984年由mathworks公司推出 dos版 1993年推出ma...
MATLAB第二章
目录。第二章matlab基础 1 2.1 变量和数组 1 2.2 matlab变量的初始化 3 2.2.1 用赋值语句初始化变量 3 2.2.2 用捷径表达式 short expressions 来赋值 4 2.2.3 用内置函数来初始化 5 2.2.4用关键字input初始化变量 6 测试2.1 ...
matlab第二章作业
第二章作业。1.运用递归的思想。function a fib n 生成长度为n的斐波那契数列。if n 1 a 1 elseif n 2 a 1 1 elseb fib n 1 a b,b end 1 b end 此程序的亮点。end注意调用时放入work中,例如在指令窗口中输入fib 10 便可得...