实验一 MA TLAB 环境熟悉及基本操作
1. 命令窗口运行入门
1-1 求2
))39(212(2
-*+的算术运算结果 1-2 简单矩阵A 的生成
1-3 绘制图形比较函数曲线5432x x x x 、、、,要求(一)四个曲线在一个图形文件窗口(二)
子图
2. 命令窗口常用的基本操作
1-4 若用户想计算51)
2sin(21+=πy ,51)
2cos(22+=πy 的值
1-5 变量的保存:save 和load 命令,将已生成的变量保存,名为×××,存入目录C :\my_dir
3. 系统的在线帮助
1-6 help sqrt/help syntax/help (回车)
1-7 lookfor line(查找与直线、线性问题有关的函数)
1-8 help 菜单
实验二 数组(矩阵)及其运算
2-1 用户不能清除的固定变量ans 、eps 、pi 、i 、j 、NaN 、Inf 等
如>>eps
Ans=2.2204e-016
2-2 矩阵的创建
(1)>>a=[1 2 3;4 5 6;7 8 9]
>>a=[1:2;4:6;7:9]; a1=1:6
(2)利用MA TLAB 内部函数产生矩阵
>>b=eye(3)
>>c=ones(2,5)
>>d=zeros(3,2)
>>e=linspace(-3,6,10) %注意三个参数的含义
>>f=logspace(1,6,5) %注意三个参数的含义
>>R=rand(1,6)
(3) 访问元素
>>aa=a(1,2)+a(2,3)
>>bb=a(4)+a(8)
>>a(end-2:end,2) %在下标中可以直接用end 表示这一维的最后一个元素
(4) 矩阵操作
>>A=[1,2,3;4,5,6;7,8,9]
>>B=diag(A)
>>C=diag(B)
>>D=rot90(A)
>>E=reshape(D,1,9) %注意这三个参数的含义
2-3 矩阵运算
(1)算术运算 + - * / \ ^ ‘
①两种不同转置的区别
>>clear; A=zeros(2,3);
>>A(:)=1:6
>>A=A*(1+i)
>>A_A=A.’
>>A_M=A’
②求矩阵的逆矩阵(4种方法)
>>B=[1 2;3 4]
>>B1=inv(B)
>>B2=B^(-1)
>>B3=eye(2)/B
>>B4=B\eye(2)
③关于矩阵求幂
>>A=[1 2;3 4];B=[2 1;3 2 ]
>>C=A.^B
(2)关系和逻辑运算
①关系运算符(6种):>、<、>=、<=、==、~=
②逻辑运算符(4种):、|、~、xor
③一些测试用的逻辑函数:all、any、find、exist、is*等
>>a=[1,2;0;4]
>>all(a)
>>all(all(a))
>>A=[1,2,3;4,5,6;7,8,9]
>>b=trace(A) %返回矩阵A的迹,即A的对角线元素的和
>>n=numel(A) %返回矩阵A的元素个数
2-4 特征值和特征向量的求解
>>A=[-1,1,0;-4,3,0;1,0,2]
>>[V,D]=eig(A)
实验三 M文件及MATLAB程序设计
1.关于M脚本文件和M函数文件
3-1 分别编写求解平均值与标准差的脚本文件stat1.m和函数文件stat2.m %stat1.m
%脚本文件
%求阵列x的平均值和标准差
[m,n]=size(x);
If m==1 m=n;end
s1=sum(x);s2=sum(x.^2);mean1=s1/m;stdev=sqrt(s2/m-mean1.^2);
%stat2.m
function [mean1,stedv]=stat2(x)
%函数文件
%求阵列x的平均值和标准差
[m,n]=size(x);
if m==1 m=n;end
s1=sum(x);s2=sum(x.^2);mean1=s1/m;stdev=sqrt(s2/m-mean1.^2);
2.MATLAB 程序流程控制
3-2 for 循环示例
for i=1:10
x(i)=I;
end;
x
3-3 while 循环结构:完成不定重复的循环
已知Fibonacci 数组的元素满足Fibonacci 规则:1,......2,12112===+=++a a k a a a k k k ,且,。
求该数组中第一个大于10 000的元素 a(1)=1; a(2)=1;
while a(i)<=10000
a(i+1)=a(i-1)+a(i)
i=i+1;
end;
i, a(i)
3-4 if-else end 分支结构
用for 循环指令寻求fibonacc 数组中的第一个大于10000的元素
n=100; a=ones(1,n)
for i=3:n
a(i)=a(i-1)+a(i-2);
a(i);
else break;
end;
i
3-5 演示switch 结构的应用
var1=input(‘var1=’); %让用户通过键盘输入数值,字符串或表达式
switch var1
case {-2 -1}
disp(‘var1 is negative one ro two.’)
case 0
disp(‘var1 is zero.’)
case {1,2,3}
disp(‘var1 is positive one,two or three.’)
otherwise
disp(‘var1 is other value.’)
end
实验四 SIMULINK 使用练习
4-1 假设从实际自然界(力学、电学、生态等)或社会中,抽象出有初始状态为0的二阶微
分方程)(24.05.0t u x x x =++
,)(t u 是单位阶跃函数。
试用积分器直接构建求解该微分方程
Step1: 搭建SIMULINK 模型
Step2: 运行该SIMULINK 模型,并将数据保存在MATLAB 工作空间中。
4-2 求模型用传递函数4
.05.022++s s 表示系统的阶跃响应曲线 4-3 状态空间模块,将微分方程)(24.05.0t u x x x =++
改写状态方程21x x = u x x x
24.05.0212+--= 即。