好文档 - 专业文书写作范文服务资料分享网站

[整理]matlab数值数组及向量化运算

天下 分享 时间: 加入收藏 我要投稿 点赞

-------------

第2章 数值数组及向量化运算

数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。

本章教学内容:数组浮点算法的特点;一、二维数值数组的创建和寻访;常用标准数组生成函数和数组构作技法;数组运算和向量化编程;实现数组运算的基本函数;关系和逻辑操作。

2.1 数值计算的特点和地位

【例2.1-1】已知f(t)?tcost,求s(x)?2? x 0f(t) dt。

(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) %end表示最后一个元素 Sx(end-4:end) %Sx的最后5个元素 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

-------------

-------------

图 2.1-1 在区间[0, 5]采样点上算得的定积分值

【例2.1-2】已知

f(t)?e?sin(t),求s(x)??f(t) dt。

0 4本例演示:被积函数没有“封闭解析表达式”,符号计算无法解题! (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

图 2.1-2 在区间[0, 4]中间的被积函数及其原函数的离散计算结果

小结:

(1) 符号计算

长处——可以对包含变量字符、参数字符和数字的表达式进行推理、运算,并给出符号结果,与高等数学中的解析式比较接近;符号计算的短处——很多问题无解或求解时间过长。 (2) 数值计算

-------------

-------------

在确定一组自变量采样点基础上,执行数值计算的表达式在已知的数值点上进行计算。它适用范围比符号计算广,以有限的精度表现有限时间和范围内的函数关系。

2.2 数值数组的创建和寻访

MATLAB把数组看作存储和运算的基本单元,而标量数据看作(1×1)的数组。

2.2.1 一维数组的创建 1.递增/减型一维数组的创建

数组元素值的大小按递增或递减的次序排列,数组元素之间的“差”是“确定的”,即“等步长”。

(1)“冒号”生成法

x=a : inc : b ;a—数组的第一个元素;inc—步长,默认值为1;最后一个元素小于等于b。

(2)线性(或对数)定点法

x=linspace(a, b, n); 产生线性等间隔(1×n)行数组,等价于x=a : (b-a)/(n-1) : b ; x=logspace(a, b, n);产生对数等间隔(1×n)行数组,n—一维数组的长度。 (线性等分向量)linspace=linear space linear 线性的 space间隔

2.通用型一维数组的创建

利用函数生成特殊形式数组。

【例2.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

-------------

[整理]matlab数值数组及向量化运算

-------------第2章数值数组及向量化运算数值数组(NumericArray)和数组运算(ArrayOperations)始终是MATLAB的核心内容。本章教学内容:数组浮点算法的特点;一、二维数值数组的创建和寻访;常用标准数组生成函数和数组构作技法;数组运算和向量化编程;实现数组运算的基本函数;关系和逻辑操作。2
推荐度:
点击下载文档文档为doc格式
4202p8oag237lyd0yjbf83hrt8bf1m008tf
领取福利

微信扫码领取福利

微信扫码分享