ch3 数值数组及向量化运算[精].doc
文本预览下载声明
数值数组及向量化运算
MATLAB的核心内容:数值数组和数组运算
数值计算的特点和地位
符号计算的局限性:有很多问题1)无法解,2)求解时间过长
数值计算:适用范围广,能处理各种复杂的函数关系,计算速度快,容量大。
【例3.1-1】已知,求。
(1)符号计算解法
syms t x
ft=t^2*cos(t)
sx=int(ft,t,0,x)
ezplot(sx,0,5)
hold on
(2)数值计算解法
dt=0.05;
t=0:dt:5;
Ft=t.^2.*cos(t);
Sx=dt*cumtrapz(Ft); % 小梯形面积的累加求Ft曲线下的面积,由一个个宽度为dt的小梯形面积累加得到的
t(end-4:end) % end指示最后一个元素的位置
Sx(end-4:end)
plot(t,Sx,.k,MarkerSize,12)
xlabel(x),ylabel(Sx),grid on
图 3.1-1 在区间[0, 5]采样点上算得的定积分值
【例3.1-2】已知,求。
(1)符号计算解法 无解
syms t x
ft=exp(-sin(t))
sx=int(ft,t,0,4)
(2)数值计算解法
dt=0.05;
t=0:dt:4;
Ft=exp(-sin(t));
Sx=dt*cumtrapz(Ft);
Sx(end)
plot(t,Ft,*r,MarkerSize,4)
hold on
plot(t,Sx,.k,MarkerSize,15)
hold off
xlabel(x)
legend(Ft,Sx)
数值数组的创建和寻访
一维数组的创建
x=[1,3,5,7,9] 逐个元素输入法
x=a:inc:b 步长生成法,inc缺省时步长为1
x=linspace(a,b,n) 线性采样法 ,以a,b为左右端点,产生1*n行数组
x=logspace(a,b,n) 对数采样法,以a,b为左右端点,产生1*n行数组
运用diag, eye等标准数组生成函数。
【例3.2-1】一维数组的常用创建方法举例。
a1=1:6
a2=0:pi/4:pi
a3=1:-0.1:0
b1=linspace(0,pi,4)
b2=logspace(0,3,4) %创建数组[100 101 102 103]
c1=[2 pi/2 sqrt(3) 3+5i]
二维数组的创建
小规模数组的直接输入法
【例3.2-2】在MATLAB环境下,用下面三条指令创建二维数组C。
a=2.7358; b=33/79;
C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]
三个要素:整个输入数组 “[ ]”
行与行间 “;”或“Enter”
同行中元素间 “,”或“空格”
中规模数组的数组编辑器创建法
【例3.2-3】根据现有数据创建一个的数组。
图3.2-1 利用数组编辑器创建中规模数组
中规模数组的M文件创建法
【例3.2-4】创建和保存数组 AM的 MyMatrix.m 文件。
打开文件编辑调试器,并在空白填写框中输入所需数组(见图3.2-2)。
最好,在文件的首行,编写文件名和简短说明,以便查阅(见图3.2-2)。
保存此文件,并且文件起名为 MyMatrix.m 。
以后只要在MATLAB指令窗中,运行 MyMatrix.m文件 ,数组 AM 就会自动生成于 MATLAB内存中。
图3.2-2 利用M文件创建数组
利用MATLAB函数创建数组
【例3.2-5】利用最常用标准数组生成函数产生标准数组的演示。
ones(2,4) %产生(2×4)全1数组
randn(state,0) %把正态随机数发生器置0
randn(2,3) %产生正态随机阵
D=eye(3) %产生3×3的单位阵
diag(D) %取D阵的对角元
diag(diag(D)) %外diag利用一维数组生成对角阵
randsrc(3,20,[-3,-1,
显示全部