x=(a'a)-1a'b——求逆法
3)欠定方程组的解
matlab可求出两个解:
用除法求的解x是具有最多零元素的解
是具有最小长度或范数的解,这个解是基于伪逆pinv求得的。
6、复数运算:
复数的实虚部、模和幅角计算
real_z=real(z)
image_z=imag(z)
magnitude_z=abs(z)
angle_z_radian=angle(z)%弧度单位
angle_z_degree=angle(z)*180/pi%度数单位
7、符号矩阵的创建
1)用matlab函数sym创建矩阵(symbolic的缩写)
命令格式:
A=sym('[]')
2)用字符串直接创建矩阵
8、符号矩阵的修改
a.直接修改:
可用、键找到所要修改的矩阵,直接修改
b.指令修改:
subs(A,'new','old')来修改
9、符号矩阵与数值矩阵的转换
将数值矩阵转化为符号矩阵,函数调用格式:
sym(A)
将符号矩阵转化为数值矩阵,函数调用格式:
numeric(A)
10、符号微积分与积分变换
diff(f)—对缺省变量求微分
diff(f,v)—对指定变量v求微分
diff(f,v,n)—对指定变量v求n阶微分
int(f)—对f表达式的缺省变量求积分
int(f,v)—对f表达式的v变量求积分
int(f,v,a,b)—对f表达式的v变量在(a,b)区间求定积分
11、符号代数方程求解
solve(f)——求一个方程的解
solve(f1,f2,…fn)——求n个方程的解
12、符号微分方程求解指令:
dsolve
命令格式:
dsolve(f,g):
f——微分方程,可多至12个微分方程的求解;g为初始条件,默认自变量为'x',可任意指定自变量't','u'等,微分方程的各阶导数项以大写字母D表示
三、实验内容:
1、生成一个3行3列的随机矩阵,并逆时针旋转90°,左右翻转,上下翻转。
2、已知a=[123],b=[456],求a.\b和a./b
3、数组和矩阵有何不同?
4、已知a=[123;456;780],求其特征多项式并求其根。
5、已知多项式a(x)=x2+2x+3,b(x)=4x2+5x+6,求a,b的积并微分。
6、求解方程1)
2)
3)
7、用两种方法创建符号矩阵,A=[a,2*b]
[3*a,0]
并把其中的a改为c。
8、计算二重不定积分
9、对符号方程f=ax2+bx+c求解1)对x求解2)对a求解。
10、求解微分方程
。
实验三MATLAB语言的程序设计
一、实验目的:
1、熟悉MATLAB程序编辑与设计环境
2、掌握各种编程语句语法规则及程序设计方法
3、函数文件的编写和设计
4、了解和熟悉跨空间变量传递和赋值
二、实验基本知识:
1、程序流程控制语句
for循环结构
语法:
fori=初值:
增量:
终值
语句1
……
语句n
end
说明:
1.i=初值:
终值,则增量为1。
2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。
while循环结构
语法:
while逻辑表达式
循环体语句
end
说明:
1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。
若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。
若表达式的值为假,则程序执行end之后的语句。
2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。
(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。
)
3、while循环也可以嵌套、其结构如下:
while逻辑表达式1
循环体语句1
while逻辑表达式2
循环体语句2
end
循环体语句3
end
if-else-end分支结构
if表达式1
语句1
elseif表达式2(可选)
语句2
else(可选)
语句3
end
end
说明:
1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。
2.elseif表达式2与else为可选项,这两条语句可依据具体情况取舍。
3.注意:
每一个if都对应一个end,即有几个if,记就应有几个end。
switch-case结构
语法:
switch表达式
case常量表达式1
语句组1
case常量表达式2
语句组2
……
otherwise
语句组n
end
说明:
1.switch后面的表达式可以是任何类型,如数字、字符串等。
2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。
程序流程控制指令
break、return、pause
2、函数文件的结构和编写方法
函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。
M函数文件的结构
(1)函数定义行(function)
(2)H1行(函数帮助文本的第一行)
(3)函数帮助文本
(4)函数体
(5)注释
函数文件编写后,保存时,其文件名必须与函数名相同。
注意:
函数名不要与MATLAB自身的函数命令相同。
三、实验内容:
练习A
1、熟悉MATLAB程序编辑与设计环境
2、用for循环语句实现求1~100的和。
3、用for循环语句实现编写一个求n阶乘的函数文件。
4、Fibonacci数组的元素满足Fibonacci规则:
且,现要求该数组中第一个大于10000的元素。
练习B
思考题
4、已知一维数组A=[2,4,5,8,10],B=[4,6,9,3,4],用for循环语句实现
。
求和函数可用sum()。
.
5、利用for循环求1!
+2!
+3!
+…+5!
的值。
.
实验四MATLAB的图形绘制
一、实验目的:
1、学习MATLAB图形绘制的基本方法;
2、熟悉和了解MATLAB图形绘制程序编辑的基本指令;
3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注;
4、掌握plot、subplot的指令格式和语法。
二、实验基本知识:
1、plot(x,y)------绘制由x,y所确定的曲线;
2、多组变量绘图:
plot(x1,y1,选项1,x2,y2,选项2,……);
3、双Y轴绘图:
plotyy()函数;
4、图形窗口的分割;
5、图形编辑窗口的使用。
三、实验内容
练习A
【1】二维曲线绘图基本指令演示。
本例运作后,再试验plot(t),plot(Y),plot(Y,t),以观察产生图形的不同。
t=(0:
pi/50:
2*pi)';
k=0.4:
0.1:
1;
Y=cos(t)*k;
plot(t,Y)
plot指令基本操作演示
【2】用图形表示连续调制波形Y=sin(t)sin(9t)及其包络线。
t=(0:
pi/100:
pi)';
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:
9)/9;
y3=sin(t3).*sin(9*t3);plot(t,y1,'r:
',t,y2,'b',t3,y3,'bo')
axis([0,pi,-1,1])
【3】在一个图形窗口绘制正弦和余弦曲线,要求给图形加标题“正弦和余弦曲线”,X轴Y轴分别标注为“时间t”和“正弦、余弦”,在图形的某个位置标注“sin(t)”“cos(t)”,并加图例,显示网格,坐标为正方形坐标系。
【4】绘制向量x=[130.52.52]的饼形图,并把3对应的部分分离出来。
【5】绘制参数方程x=t,y=sin(t),z=cos(t)在t=[07]区间的三维曲线。
【6】用holdon命令在同一个窗口绘制曲线y=sin(t),y1=sin(t+0.25)
y2=sin(t+0.5),其中t=[010]。
【7】观察各种轴控制指令的影响。
演示采用长轴为3.25,短轴为1.15的椭圆。
注意:
采用多子图(图6.2-4)表现时,图形形状不仅受“控制指令”影响,而且受整个图面“宽高比”及“子图数目”的影响。
t=0:
2*pi/99:
2*pi;
x=1.15*cos(t);y=3.25*sin(t);
subplot(2,3,1),plot(x,y),axisnormal,gridon,
title('NormalandGridon')
subplot(2,3,2),plot(x,y),axisequal,gridon,title('Equal')
subplot(2,3,3),plot(x,y),axissquare,gridon,title('Square')
subplot(2,3,4),plot(x,y),axisimage,boxoff,title('ImageandBoxoff')
subplot(2,3,5),plot(x,y),axisimagefill,boxoff
title('ImageandFill')
subplot(2,3,6),plot(x,y),axistight,boxoff,title('Tight')
各种轴控制指令的不同影响
实验五线性系统时域响应仿真分析
一.实验目的:
1.熟悉MATLAB软件分析系统时域响应方法。
通过观察典型二阶系统在单位阶跃、脉冲、斜坡信号作用下的动态特性,熟悉各种典型的响应曲线。
2.通过二阶系统定性及定量了解参数变化对动态特性的影响。
分析参数变化时对系统响应的影响。
二.实验设备:
PC机及MATLAB软件。
三.实验方法:
1.一阶系统阶跃响应:
图示RC网络为一阶系统
图9-1
研究图9-1所示电路,其运动方程为
式中,T=RC为时间常数.当初始条件为零时,其传递函数为
若R=1Ω,C=0.01F,则T=RC=0.01s。
传递函数Ф(s)=1/(0.01s+1)
求单位阶跃响应的MATLAB程序如下:
[设K=1、T=0.01]
%Example
clear
clearall
num=[1];
den=[0.011];
step(num,den)
执行后可得如下图形:
图5-2
2.求当K=1,T=0.1,0.5,1,2s时的阶跃响应,记录曲线列表求出ts并分析。
[为读数方便,可加入step(num,den);gridon。
数据可保留两位有效数字]
(二)位置随动系统可以用如下二阶系统模型描述:
ωn—自然频率,ξ—相对阻尼系数
1.试绘制ωn=6,ξ=0.2,0.4,……1.0,2.0时的单位阶跃响应。
MATLAB程序:
%Example2.1
wn=6;
kosi=[0.1:
0.2:
1.0,2.0];
figure
(1)
holdon
forkos=kosi
num=wn.^2;
den=[1,2*kos*wn,wn.^2];
step(num,den)
end
title(‘StepResponse’)
holdoff
2.绘制典型二阶系统,当ξ=0.7,ωn=2,4,6,8时的单位阶跃响应。
MATLAB程序:
%Example2.2
w=[2:
2:
8];
kos=0.5;
figure
(1)
holdon
forwn=w
num=wn.^2;
den=[1,2*kos*wn,wn.^2];