02数值计算与数据分析.docx

上传人:b****6 文档编号:6531203 上传时间:2023-01-07 格式:DOCX 页数:48 大小:222.46KB
下载 相关 举报
02数值计算与数据分析.docx_第1页
第1页 / 共48页
02数值计算与数据分析.docx_第2页
第2页 / 共48页
02数值计算与数据分析.docx_第3页
第3页 / 共48页
02数值计算与数据分析.docx_第4页
第4页 / 共48页
02数值计算与数据分析.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

02数值计算与数据分析.docx

《02数值计算与数据分析.docx》由会员分享,可在线阅读,更多相关《02数值计算与数据分析.docx(48页珍藏版)》请在冰豆网上搜索。

02数值计算与数据分析.docx

02数值计算与数据分析

第2章数值计算与数据分析

2.1基本数学函数

2.1.1三角函数与双曲函数

函数sin、sinh

功能正弦函数与双曲正弦函数

格式Y=sin(X)%计算参量X(可以是向量、矩阵,元素可以是复数)中每一个角度分量的正弦值Y,所有分量的角度单位为弧度。

Y=sinh(X)%计算参量X的双曲正弦值Y

注意:

sin(pi)并不是零,而是与浮点精度有关的无穷小量eps,因为pi仅仅是精确值π浮点近似的表示值而已;对于复数Z=x+iy,函数的定义为:

sin(x+iy)=sin(x)*cos(y)+i*cos(x)*sin(y),

例2-1

x=-pi:

0.01:

pi;plot(x,sin(x))

x=-5:

0.01:

5;plot(x,sinh(x))

图形结果为图2-1。

图2-1正弦函数与双曲正弦函数图

函数asin、asinh

功能反正弦函数与反双曲正弦函数

格式Y=asin(X)%返回参量X(可以是向量、矩阵)中每一个元素的反正弦函数值Y。

若X中有的分量处于[-1,1]之间,则Y=asin(X)对应的分量处于[-π/2,π/2]之间,若X中有分量在区间[-1,1]之外,则Y=asin(X)对应的分量为复数。

Y=asinh(X)%返回参量X中每一个元素的反双曲正弦函数值Y

说明反正弦函数与反双曲正弦函数的定义为:

例2-2

x=-1:

.01:

1;plot(x,asin(x))

x=-5:

.01:

5;plot(x,asinh(x))

图形结果为图2-2。

图2-2反正弦函数与反双曲正弦函数图

函数cos、cosh

功能余弦函数与双曲余弦函数

格式Y=cos(X)%计算参量X(可以是向量、矩阵,元素可以是复数)中每一个角度分量的余弦值Y,所有角度分量的单位为弧度。

我们要指出的是,cos(pi/2)并不是精确的零,而是与浮点精度有关的无穷小量eps,因为pi仅仅是精确值π浮点近似的表示值而已。

Y=sinh(X)%计算参量X的双曲余弦值Y

说明若X为复数z=x+iy,则函数定义为:

cos(x+iy)=cos(x)*cos(y)+i*sin(x)*sin(y),

例2-3

x=-pi:

0.01:

pi;plot(x,cos(x))

x=-5:

0.01:

5;plot(x,cosh(x))

图形结果为图2-3。

图2-3余弦函数与双曲余弦函数图

函数acos、acosh

功能反余弦函数与反双曲余弦函数

格式Y=acos(X)%返回参量X(可以是向量、矩阵)中每一个元素的反余弦函数值Y。

若X中有的分量处于[-1,1]之间,则Y=acos(X)对应的分量处于[0,π]之间,若X中有分量在区间[-1,1]之外,则Y=acos(X)对应的分量为复数。

Y=asinh(X)%返回参量X中每一个元素的反双曲余弦函数Y

说明反余弦函数与反双曲余弦函数定义为:

例2-4

x=-1:

.01:

1;plot(x,acos(x))

x=-5:

.01:

5;plot(x,acosh(x))

图形结果为图2-4。

图2-4反余弦函数与反双曲余弦函数图

函数tan、tanh

功能正切函数与双曲正切函数

格式Y=tan(X)%计算参量X(可以是向量、矩阵,元素可以是复数)中每一个角度分量的正切值Y,所有角度分量的单位为弧度。

我们要指出的是,tan(pi/2)并不是精确的零,而是与浮点精度有关的无穷小量eps,因为pi仅仅是精确值π浮点近似的表示值而已。

Y=tanh(X)%返回参量X中每一个元素的双曲正切函数值Y

例2-5

x=(-pi/2)+0.01:

0.01:

(pi/2)-0.01;%稍微缩小定义域

plot(x,tan(x))

x=-5:

0.01:

5;plot(x,tanh(x))

图形结果为图2-5。

图2-5正切函数与双曲正切函数图

函数atan、atanh

功能反正切函数与反双曲正切函数

格式Y=atan(X)%返回参量X(可以是向量、矩阵)中每一个元素的反正切函数值Y。

若X中有的分量为实数,则Y=atan(X)对应的分量处于[-π/2,π/2]之间。

Y=atanh(X)%返回参量X中每一个元素的反双曲正切函数值Y。

说明反正切函数与反双曲正切函数定义为:

例2-6

x=-20:

0.01:

20;plot(x,atan(x))

x=-0.99:

0.01:

0.99;plot(x,atanh(x))

图形结果为图2-6。

图2-6反正切函数与反双曲正切函数图

函数cot、coth

功能余切函数与双曲余切函数

格式Y=cot(X)%计算参量X(可以是向量、矩阵,元素可以是复数)中每一个角度分量的余切值Y,所有角度分量的单位为弧度。

Y=coth(X)%返回参量X中每一个元素的双曲余切函数值Y

例2-7

x1=-pi+0.01:

0.01:

-0.01;%去掉奇点x=0

x2=0.01:

0.01:

pi-0.01;%做法同上

plot(x1,cot(x1),x2,cot(x2))

plot(x1,coth(x1),x2,coth(x2))

图形结果为图2-7。

图2-7余切函数与双曲余切函数图

函数acot、acoth

功能反余切函数与反双曲余切函数

格式Y=acot(X)%返回参量X(可以是向量、矩阵)中每一个元素的反余切函数Y

Y=acoth(X)%返回参量X中每一个元素的反双曲余切函数值Y

例2-8

x1=-2*pi:

pi/30:

-0.1;x2=0.1:

pi/30:

2*pi;%去掉奇异点x=0

plot(x1,acot(x1),x2,acot(x2))

x1=-30:

0.1:

-1.1;x2=1.1:

0.1:

30;

plot(x1,acoth(x1),x2,acoth(x2))

图形结果为图2-8。

图2-8反余切函数与反双曲余切函数图

函数sec、sech

功能正割函数与双曲正割函数

格式Y=sec(X)%计算参量X(可以是向量、矩阵,元素可以是复数)中每一个角度分量的正割函数值Y,所有角度分量的单位为弧度。

我们要指出的是,sec(pi/2)并不是无穷大,而是与浮点精度有关的无穷小量eps的倒数,因为pi仅仅是精确值π浮点近似的表示值而已。

Y=sech(X)%返回参量X中每一个元素的双曲正割函数值Y

例2-9

x1=-pi/2+0.01:

0.01:

pi/2-0.01;%去掉奇异点x=pi/2

x2=pi/2+0.01:

0.01:

(3*pi/2)-0.01;

plot(x1,sec(x1),x2,sec(x2))

x=-2*pi:

0.01:

2*pi;

plot(x,sech(x))

图形结果为图2-9。

图2-9正割函数与双曲正割函数图

函数asec、asech

功能反正割函数与反双曲正割函数

格式Y=asec(X)%返回参量X(可以是向量、矩阵)中每一个元素的反正割函数值Y

Y=asech(X)%返回参量X中每一个元素的反双曲正割函数值Y

例2-10

x1=-5:

0.01:

-1;x2=1:

0.01:

5;

plot(x1,asec(x1),x2,asec(x2))

x=0.01:

0.001:

1;plot(x,asech(x))

图形结果为图2-10。

图2-10反正割函数与反双曲正割函数图

函数csc、csch

功能余割函数与双曲余割函数

格式Y=csc(X)%计算参量X(可以是向量、矩阵,元素可以是复数)中每一个角度分量的余割函数值Y,所有角度分量的单位为弧度。

Y=csch(X)%返回参量X中每一个元素的双曲余割函数值Y

例2-11

x1=-pi+0.01:

0.01:

-0.01;x2=0.01:

0.01:

pi-0.01;%去掉奇异点x=0

plot(x1,csc(x1),x2,csc(x2))

plot(x1,csch(x1),x2,csch(x2))

图形结果为图2-11。

图2-11余割函数与双曲余割函数图

函数acsc、acsch

功能反余割函数与反双曲余割函数。

格式Y=asec(X)%返回参量X(可以是向量、矩阵)中每一个元素的反余割函数值Y

Y=asech(X)%返回参量X中每一个元素的反双曲余割函数值Y

例2-12

x1=-10:

0.01:

-1.01;x2=1.01:

0.01:

10;%去掉奇异点x=1

plot(x1,acsc(x1),x2,acsc(x2))

x1=-20:

0.01:

-1;x2=1:

0.01:

20;

plot(x1,acsch(x1),x2,acsch(x2))

图形结果为图2-12。

图2-12反余割函数与反双曲余割函数图

函数atan2

功能四象限的反正切函数

格式P=atan2(Y,X)%返回一与参量X和Y同型的、与X和Y元素的实数部分对应的、元素对元素的四象限的反正切函数阵列P,其中X和Y的虚数部分将忽略。

阵列P中的元素分布在闭区间[-pi,pi]上。

特定的象限将取决于sign(Y)与sign(X)。

例2-13

z=1+2i;

r=abs(z);

theta=atan2(imag(z),real(z))

z=r*exp(i*theta)

feather(z);holdon

t=0:

0.1:

2*pi;

x=1+sqrt(5)*cos(t);

y=sqrt(5)*sin(t);

plot(x,y);

axisequal;holdoff

计算结果为:

theta=

1.1071

z=

1.0000+2.0000i

图形结果为图2-13。

图2-13四象限的反正切函数图

2.1.2其他常用函数

函数fix

功能朝零方向取整

格式B=fix(A)%对A的每一个元素朝零的方向取整数部分,返回与A同维的数组。

对于复数参量A,则返回一复数,其分量的实数与虚数部分分别取原复数的、朝零方向的整数部分。

例2-14

>>A=[-1.9,-0.2,3.1415926,5.6,7.0,2.4+3.6i];

>>B=fix(A)

计算结果为:

B=

Columns1through4

-1.000003.00005.0000

Columns5through6

7.00002.0000+3.0000i

函数roud

功能朝最近的方向取整。

格式Y=round(X)%对X的每一个元素朝最近的方向取整数部分,返回与X同维的数组。

对于复数参量X,则返回一复数,其分量的实数与虚数部分分别取原复数的、朝最近方向的整数部分。

例2-15

>>A=[-1.9,-0.2,3.1415926,5.6,7.0,2.4+3.6i];

>>Y=round(A)

计算结果为:

Y=

Columns1through4

-2.000003.00006.0000

Columns5through6

7.00002.0000+4.0000i

函数floor

功能朝负无穷大方向取整

格式B=floor(A)%对A的每一个元素朝负无穷大的方向取整数部分,返回与A同维的数组。

对于复数参量A,则返回一复数,其分量的实数与虚数部分分别取原复数的、朝负无穷大方向的整数部分。

例2-16

>>A=[-1.9,-0.2,3.1415926,5.6,7.0,2.4+3.6i];

>>F=floor(A)

计算结果为:

F=

Columns1through4

-2.0000-1.00003.00005.0000

Columns5through6

7.00002.0000+3.0000i

函数rem

功能求作除法后的剩余数

格式R=rem(X,Y)%返回结果X-fix(X./Y).*Y,其中X、Y应为正数。

若X、Y为浮点数,由于计算机对浮点数的表示的不精确性,则结果将可能是不可意料的。

fix(X./Y)为商数X./Y朝零方向取的整数部分。

若X与Y为同符号的,则rem(X,Y)返回的结果与mod(X,Y)相同,不然,若X为正数,则rem(-X,Y)=mod(-X,Y)-Y。

该命令返回的结果在区间[0,sign(X)*abs(Y)],若Y中有零分量,则相应地返回NaN。

例2-17

>>X=[12233445];

>>Y=[3726];

>>R=rem(X,Y)

计算结果为:

R=

0203

函数ceil

功能朝正无穷大方向取整

格式B=floor(A)%对A的每一个元素朝正无穷大的方向取整数部分,返回与A同维的数组。

对于复数参量A,则返回一复数,其分量的实数与虚数部分分别取原复数的、朝正无穷大方向的整数部分。

例2-18

>>A=[-1.9,-0.2,3.1415926,5.6,7.0,2.4+3.6i];

>>B=ceil(A)

计算结果为:

B=

Columns1through4

-1.000004.00006.0000

Columns5through6

7.00003.0000+4.0000i

函数exp

功能以e为底数的指数函数

格式Y=exp(X)%对参量X的每一分量,求以e为底数的指数函数Y。

X中的分量可以为复数。

对于复数分量如,z=x+i*y,则相应地计算:

e^z=e^x*(cos(y)+i*sin(y))。

例2-19

>>A=[-1.9,-0.2,3.1415926,5.6,7.0,2.4+3.6i];

>>Y=exp(A)

计算结果为:

Y=

1.0e+003*

Columns1through4

0.00010.00080.02310.2704

Columns5through6

1.0966-0.0099-0.0049i

函数expm

功能求矩阵的以e为底数的指数函数

格式Y=expm(X)%计算以e为底数、x的每一个元素为指数的指数函数值。

若矩阵x有小于等于零的特征值,则返回复数的结果。

说明该函数为一内建函数,它有三种计算算法:

(1)使用文件expm1.m中的用比例法与二次幂算法得到的Pad近似值;

(2)使用Taylor级数近似展开式计算,这种计算在文件expm2.m中。

但这种一般计算方法是不可取的,通常计算是缓慢且不精确的;

(3)在文件expm3.m中,先是将矩阵对角线化,再把函数计算出相应的的特征向量,最后转换过来。

但当输入的矩阵没有与矩阵阶数相同的特征向量个数时,就会出现错误。

例2-20

>>A=hilb(4);

>>Y=expm(A)

计算结果为:

Y=

3.25061.20680.83550.6417

1.20681.74030.54170.4288

0.83550.54171.41000.3318

0.64170.42880.33181.2729

函数log

功能自然对数,即以e为底数的对数。

格式Y=log(X)%对参量X中的每一个元素计算自然对数。

其中X中的元素可以是复数与负数,但由此可能得到意想不到的结果。

若z=x+i*y,则log对复数的计算如下:

log(z)=log(abs(z))+i*atan2(y,x)

例2-21下面的语句可以得到无理数π的近似值:

>>Pi=abs(log(-1))

计算结果为:

Pi=

3.1416

函数log10

功能常用对数,即以10为底数的对数。

格式Y=log10(X)%计算X中的每一个元素的常用对数,若X中出现复数,则可能得到意想不到的结果。

例2-22

>>L1=log10(realmax)%由此可得特殊变量realmax的近似值

>>L2=log10(eps)%由此可得特殊变量eps的近似值

>>M=magic(4);

>>L3=log10(M)

计算结果为:

L1=

308.2547

L2=

-15.6536

L3=

1.20410.30100.47711.1139

0.69901.04141.00000.9031

0.95420.84510.77821.0792

0.60211.14611.17610

函数sort

功能把输入参量中的元素按从小到大的方向重新排列

格式B=sort(A)%沿着输入参量A的不同维的方向、从小到大重新排列A中的元素。

A可以是字符串的、实数的、复数的单元数组。

对于A中完全相同的元素,则按它们在A中的先后位置排列在一块;若A为复数的,则按元素幅值的从小到大排列,若有幅值相同的复数元素,则再按它们在区间[-π,π]的幅角从小到大排列;若A中有元素为NaN,则将它们排到最后。

若A为向量,则返回从小到大的向量,若A为二维矩阵,则按列的方向进行排列;若A为多维数组,sort(A)把沿着第一非单元集的元素象向量一样进行处理。

B=sort(A,dim)%沿着矩阵A(向量的、矩阵的或多维的)中指定维数dim方向重新排列A中的元素。

[B,INDEX]=sort(A,…)%输出参量B的结果如同上面的情形,输出INDEX是一等于size(A)的数组,它的每一列是与A中列向量的元素相对应的置换向量。

若A中有重复出现的相同的值,则返回保存原来相对位置的索引。

例2-23

>>A=[-1.9,-0.2,3.1415926,5.6,7.0,2.4+3.6i];

>>[B1,INDEX]=sort(A)

>>M=magic(4);

>>B2=sort(M)

计算结果为:

B1=

Columns1through4

-0.2000-1.90003.14162.4000+3.6000i

Columns5through6

5.60007.0000

INDEX=

213645

B2=

4231

5768

9111012

16141513

函数abs

功能数值的绝对值与复数的幅值

格式Y=abs(X)%返回参量X的每一个分量的绝对值;若X为复数的,则返回每一分量的幅值:

abs(X)=sqrt(real(X).^2+imag(X).^2)。

例2-24

>>A=[-1.9,-0.2,3.1415926,5.6,7.0,2.4+3.6i];

>>Y=abs(A)

计算结果为:

Y=

1.90000.20003.14165.60007.00004.3267

函数conj

功能复数的共轭值

格式ZC=conj(Z)%返回参量Z的每一个分量的共轭复数:

conj(Z)=real(Z)-i*imag(Z)

函数imag

功能复数的虚数部分

格式Y=imag(Z)%返回输入参量Z的每一个分量的虚数部分。

例2-25

>>imag(2+3i)

计算结果为:

ans=

3

函数real

功能复数的实数部分。

格式Y=real(Z)%返回输入参量Z的每一个分量的实数部分。

例2-26

>>real(2+3i)

计算结果为:

ans=

2

函数angle

功能复数的相角

格式P=angle(Z)%返回输入参量Z的每一复数元素的、单位为弧度的相角,其值在区间[-π,π]上。

说明angle(z)=imag(log(z))=atan2(imag(z),real(z))

例2-27

>>Z=[1-i,2+i,3-i,4+i;

>>1+2i,2-2i,3+2i,4-2i;

>>1-3i,2+3i,3-3i,4+3i;

>>1+4i,2-4i,3+4i,4-4i];

>>P=angle(Z)

计算结果为:

P=

-0.78540.4636-0.32180.2450

1.1071-0.78540.5880-0.4636

-1.24900.9828-0.78540.6435

1.3258-1.10710.9273-0.7854

函数complex

功能用实数与虚数部分创建复数

格式c=complex(a,b)%用两个实数a,b创建复数c=a+bi。

输出参量c与a、b同型(同为向量、矩阵、或多维阵列)。

该命令比下列形式的复数输入更有用:

a+i*b或a+j*b因为i和j可能被用做其他的变量(不等于sqrt(-1)),或者a和b不是双精度的。

c=complex(a)%输入参量a作为输出复数c的实部,其虚部为0:

c=a+0*i。

例2-28

>>a=uint8([1;2;3;4]);

>>b=uint8([4;3;2;1]);

>>c=complex(a,b)

计算结果为:

c=

1.0000+4.0000i

2.0000+3.0000i

3.0000+2.0000i

4.0000+1.0000i

函数mod

功能模数(带符号的除法余数)

用法M=mod(X,Y)%输入参量X、Y应为整数,此时返回余数X-Y.*floor(X./Y),若Y≠0,或者是X。

若运算数x与y有相同的符号,则mod(X,Y)等于rem(X,Y)。

总之,对于整数x,y,有:

mod(-x,y)=rem(-x,y)+y。

若输入为实数或复数,由于浮点数在计算机上的不精确表示,该操作将导致不可预测的结果。

例2-29

>>M1=mod(13,5)

>>M2=mod([1:

5],3)

>>M3=mod(magic(3),3)

计算结果为:

M1=

3

M2=

12012

M3=

210

021

102

函数nchoosek

功能二项式系数或所有的组合数。

该命令只有对n<15时有用。

函数C=nchoosek(n,k)%参量n,k为非负整数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1