- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值数组及向量化运算
数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。本书从第3章起,全部注意力将集中于数值数组及其运算。
本章系统阐述:数组浮点算法的特点;一、二维数值数组的创建和寻访;数组运算和向量化编程;实现数组运算的基本函数;常用标准数组生成函数和数组构作技法;非数NaN、“空”数组概念和应用;关系和逻辑操作。
数值计算的特点和地位
【例3.1-1】已知,求。
(1)符号计算解法
syms t x
ft=t^2*cos(t)
sx=int(ft,t,0,x)
ft =
t^2*cos(t)
sx =
x^2*sin(x)-2*sin(x)+2*x*cos(x)
(2)数值计算解法
dt=0.05;
t=0:dt:5;
Ft=t.^2.*cos(t);
Sx=dt*cumtrapz(Ft);
t(end-4:end)
Sx(end-4:end)
plot(t,Sx,.k,MarkerSize,12)
xlabel(x),ylabel(Sx),grid on
ans =
4.8000 4.8500 4.9000 4.9500 5.0000
ans =
-20.1144 -19.9833 -19.7907 -19.5345 -19.2131
图 3.1-1 在区间[0, 5]采样点上算得的定积分值
【例3.1-2】已知,求。
(1)符号计算解法
syms t x
ft=exp(-sin(t))
sx=int(ft,t,0,4)
ft =
exp(-sin(t))
Warning: Explicit integral could not be found.
In sym.int at 58
sx =
int(exp(-sin(t)),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)
ans =
3.0632
图 3.1-2 在区间[0, 4]中间的被积函数及其原函数的离散计算结果
数值数组的创建和寻访
一维数组的创建
递增/减型一维数组的创建
通用型一维数组的创建
【例3.2-1】一维数组的常用创建方法举例。
a1=1:6
a2=0:pi/4:pi
a3=1:-0.1:0
a1 =
1 2 3 4 5 6
a2 =
0 0.7854 1.5708 2.3562 3.1416
a3 =
Columns 1 through 6
1.0000 0.9000 0.8000 0.7000 0.6000 0.5000
Columns 7 through 11
0.4000 0.3000 0.2000 0.1000 0
b1=linspace(0,pi,4)
b2=logspace(0,3,4)
b1 =
0 1.0472 2.0944 3.1416
b2 =
1 10 100 1000
c1=[2 pi/2 sqrt(3) 3+5i]
c1 =
Columns 1 through 3
2.0000 1.5708 1.7321
Column 4
3.0000 + 5.0000i
rand(state,0)
c2=rand(1,5)
c2 =
0.9501 0.2311 0.6068 0.4860 0.8913
二维数组的创建
小规模数组的直接输入法
【例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]
C =
1.0000
文档评论(0)