![数理统计及其在数学建模中的实践(使用MATLAB)](https://wfqqreader-1252317822.image.myqcloud.com/cover/996/30762996/b_30762996.jpg)
1.5 数值分析
1.5.1 微分
diff函数用于计算函数的微分项,相关的函数语法有下列4个:
diff(f)传回f对预设独立变量的一次微分值;
diff(f, t
)传回f对独立变量t的一次微分值;
diff(f,n)传回f对预设独立变量的n次微分值;
diff(f, t
,n)传回f对独立变量t的n次微分值.
数值微分函数也是用diff,因此这个函数是靠输入的参数决定执行数值微分或是符号微分的,如果参数为向量则执行数值微分,如果参数为符号表达式则执行符号微分.
先定义下列三个方程式,接着再计算其微分项:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-40.jpg?sign=1739279993-lWRipkWA9gEYXk6D8qV4bXHkzflRUqTb-0-efe67b35bf1c7e5098db1b9ffb9ea55e)
1.5.2 积分
int函数用以计算函数的积分项,这个函数要找出一符号表达式F使得diff(F)=f.如果积分式的解析式不存在或MATLAB无法找到,则int传回原输入的符号式.相关的函数语法有下列4个:
int(f)传回f对预设独立变量的积分值;
int(f, t
)传回f对独立变量t的积分值;
int(f,a,b)传回f对预设独立变量的积分值,积分区间为[a,b],a和b为数值表达式;
int(f, t
,a,b)传回f对独立变量t的积分值,积分区间为[a,b],a和b为数值表达式;
int(f, m
,
n
)传回f对预设变量的积分值,积分区间为[m,n],m和n为符号表达式.
例1-13
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-49.jpg?sign=1739279993-OmLmojXrlpJF0lxk8rMkNzDb3hJTsNcC-0-955a8eaf9342171c38f5c49aba6b0a04)
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-50.jpg?sign=1739279993-HvFBZqv0jHs31wSn47A7IVSpFOxWXdGN-0-1732d61df45f603fd9e3fc8fd2cabfa2)
1.5.3 求解常微分方程
用MATLAB求解常微分方程的语法是
dsolve( equation
,
condition
)其中equation代表常微分方程即y
=g(x,y),且以Dy代表一阶微分项y
,D2y代表二阶微分项y",condition为初始条件.
假设有以下三个一阶常微分方程和其初始条件
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-57.jpg?sign=1739279993-c4GSon0cpqsEi72ej4ICdX3Ox7BE9pwl-0-655ac575807a1f466992ace371fffc95)
1.5.4 非线性方程的实根
要求解任一方程的根有三个步骤:
1)先定义方程.要注意必须将方程化成f(x)=0的形式,例如一方程为sin(x)=3,则该方程应表示为f(x)=sin(x)-3,可以用m-file定义方程.
2)代入适当范围的x,y(x)值,将该函数的分布图画出,以便了解该方程式的图像.
3)由图中决定y(x)在何处附近(x0)与x轴相交,以fzero的语法fzero( function
,x0)即可求出在x0附近的根,其中function是先前已定义的函数名称.如果从函数分布图看出方程的根不止一个,则需再代入另一个在方程的根附近的x0,再求出下一个根.
以下分别介绍几个方程,来说明如何求解它们的根.
例1-14 方程式为
sin(x)=0
求根方式如下:
r=fzero( sin
,3)%因为sin(x)是内建函数,其名称为sin,因此无须定义它,选择在x=3附近求根
r=3.1416
r=fzero( sin
,6)%选择x=6附近求根
r=6.2832
例1-15 方程为MATLAB内建函数humps,我们不需要知道这个方程的形态如何,不过我们可以将它画出来,再找出根的位置.求根方式如下:
>>x=linspace(-2,3);
>>y=humps(x);
>>plot(x,y),grid%由图1-1可看出方程在0和1附近有两个根
>>r=fzero( humps
,1.2)
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-66.jpg?sign=1739279993-3Wa5vlP51SIRkkIC2BsqsVIJvh9OWTbA-0-287fd06d4143cd3f4db26860aa1d9c8f)
图 1-1
例1-16 方程式为y=x.^3-2∗x-5
这个方程其实是个多项式,我们说明除了用roots函数找出它的根外,也可以用这节介绍的方法求根,注意二者的解法及结果的异同.求根方式如下:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-67.jpg?sign=1739279993-u8oipSwqVHErE6O0hptOwOM7nyMByY2o-0-a0c43f4bd1d45d89b1912392594db96d)
1.5.5 线性代数方程(组)求解
习惯将线性方程组以矩阵的方式表示如下
AX=B
其中 A为等式左边各方程的系数项,X为欲求解的未知项,B代表等式右边的已知项,要求解方程组,我们可以利用矩阵的左除\运算,即X=A\B.
如果将原方程式改写成
XA=B
其中 A为等式左边各方程的系数项,X为欲求解的未知项,B代表等式右边的已知项.
注意:上式的X,B已改写成行向量,A其实是前一个方程中A的转置矩阵.上式的X可以用矩阵的右除/运算求解,即X=B/A.
若以逆矩阵运算求解AX=B,X=B,即X=inv(A)∗B,或是改写成XA=B,X=B-1,即X=B∗inv(A).
我们直接以下面的例子来说明这三个运算的用法:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-68.jpg?sign=1739279993-YZcPQRgHNV1eVwFRXUbiO9IjYVHPqANX-0-c52d13ad4893d9e44b2df083d199b308)
1.6 基本平面绘图命令
MATLAB不但适合用在矩阵相关的数值运算中,也适合用在各种科学可视化表示(Scien-tific visualization)中.本节将介绍MATLAB基本Oxy平面及Oxyz空间的各项绘图命令,其中包含一维曲线及二维曲面的绘制、打印及存档等应用.
(1)plot plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y坐标.
例1-17 画出一条正弦曲线:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-69.jpg?sign=1739279993-NS2aqOmQkQ6J15lI0zysNQTUrVdOoCt1-0-1c9f07192b1fbfa2d9cfc8d1d5ec084e)
绘制结果如图1-2所示.
小整理:MATLAB中的基本绘图函数
plot:x轴和y轴均为线性刻度(Linear scale);
loglog:x轴和y轴均为对数刻度(Logarithmi cscale);
semilogx:x轴为对数刻度,y轴为线性刻度;
semilogy:x轴为线性刻度,y轴为对数刻度;
若要画出多条曲线,只需将坐标对依次放入plot函数即可.
plot(x,sin(x),x,cos(x));
绘制结果如图1-3所示.
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-70.jpg?sign=1739279993-YNnpKaTbnPGASV2tyy63Ia5yBjxFFTly-0-ad67403af374f18e21a2b9adbeda47c5)
图 1-2
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-71.jpg?sign=1739279993-pkPzfcg31ywuIoyTxGTBXEhwxoLJ136T-0-adb99fca978128e7efb2923a05da142f)
图 1-3
若要改变颜色,在坐标对后面加上相关字符串即可.
plot(x,sin(x), c
,x,cos(x),
g
);
绘制结果如图1-4所示.
若要同时改变颜色及线型(Linestyle),只需在坐标对后面加上相关字符串即可:
plot(x,sin(x), co
,x,cos(x),
g∗
);
绘制结果如图1-5所示.
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-80.jpg?sign=1739279993-voHl3YdbifK28q24UnmUl4lkBkMsRa6b-0-3365888363fb800ba5a9548ef69b367c)
图 1-4
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-81.jpg?sign=1739279993-SyM6Uo7HljtHgfd5IAE3aUSmiZCnsO60-0-603d21abd4ad1c7104e77f2cd29cb300)
图 1-5
小整理:plot绘图函数的参数字符、颜色字符、线型如下:y黄色,.点,k黑色,o圆,w白色,xxb蓝色,++g绿色,∗∗r红色,-实线,c亮青色,:点线,m锰紫色,-.点虚线,--虚线
图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:
axis([0,6,-1.2,1.2]);
图轴范围调整后的效果如图1-6所示.
此外,MATLAB也可对图形加上各种注释与处理:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-82.jpg?sign=1739279993-qivpPKTFDN898ApA2xGGosM1pQnuP9N5-0-5efe230144e4607d71c384fa4dc3d16e)
添加注释后的图形如图1-7所示.
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-83.jpg?sign=1739279993-f6CDNJxrRals48UsVQzBl0kV6AuoWO9A-0-2de954cba3254a844907bc6adee42100)
图 1-6
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-84.jpg?sign=1739279993-LfVA6xzlhj0z3eRksyUq0DX8PT3K9qSd-0-c8f85d73f0318c5204d85f789cc2f441)
图 1-7
(2)subplot
subplot用来在同一个视窗之中画出数个小图形:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-85.jpg?sign=1739279993-Zb9o5y6QKn73gyye9AoMwqg5Gp47G43c-0-daabaf5e99441400fb91bdcdd88c6890)
绘制结果如图1-8所示.
(3)其他二维绘图函数
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-86.jpg?sign=1739279993-b4B6yiEtZUlMUT5vHdi65PW5ukFrGu8O-0-2339fbdc07b32ca0637bd1cf3bd650c6)
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-87.jpg?sign=1739279993-YUyhH2KpbWTR6SpfX6Y4pGP21Z3UpADf-0-0c42a698298162a312a0cf2c09058fce)
图 1-8
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-88.jpg?sign=1739279993-rckA4yzrEKqvS8xSIZH1Q38YTtIY1NI2-0-542c305fedac1edf96d76dc9db9d087d)
绘制结果如图1-9所示.
如果已知数据的误差量,就可用errorbar来表示.下例以单位标准差来做数据误差量:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-89.jpg?sign=1739279993-1jd3CWfY63zrKVDvIqQJoXAh9EXpYa0d-0-75ae2bdc7486ec8ae555d2aaae699c16)
绘制结果如图1-10所示.
对于变化剧烈的函数,可用fplot来进行较精确的绘图,对剧烈变化处进行较密集的取样.例如:
fplot( sin(1/x)
,[0.020.2]);%[0.020.2]是绘图范围
绘制结果如图1-11所示.
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-92.jpg?sign=1739279993-coHKapB3ePjRUEkj5NNI3SxnI1dqLaws-0-fdc8ce9062b83fad023fa7367bcd1bf7)
图 1-9
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-93.jpg?sign=1739279993-JSAyNbTaBEVlDPGO1sGWdLXC86ZUGYms-0-433fc36535f2ed6ed12d5fce7a61c6bc)
图 1-10
若要产生极坐标图形,可用polar:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-94.jpg?sign=1739279993-sWpYcEKVdPgFCL2d3uTbFCiYEJ8ZbuV5-0-79ef5e5b4c26b3f43232d32e066d8bc6)
绘制结果如图1-12所示.
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-95.jpg?sign=1739279993-FgQbLDOplIToKf6Wm1tcPTZQVE8tABFW-0-b221fd6ea5713013c4c7676232bb3f73)
图 1-11
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-96.jpg?sign=1739279993-HE4pHVDS2b2oV6XI9fPcHcZY5puVTHWe-0-1cfbe27211317ac7647355f96fe322ac)
图 1-12
对于大量的数据,我们可用hist来显示数据的分布情况和统计特性.下面几个命令可用来验证randn产生的高斯随机数:
x=randn(5000,1); %产生5000个m=0,s=1的高斯随机数
hist(x,20); %20代表方柱的个数
绘制结果如图1-13所示.
rose和hist很接近,只不过是将数据大小视为角度,数据个数视为距离,并用极坐标绘制表示:
x=randn(1000,1);
rose(x);
绘制结果如图1-14所示.
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-97.jpg?sign=1739279993-aSqImiCWNSXXI48Hoq2VPHGAEC8RNRQe-0-76e9f8ab90f7eb9e8bfdc4e78db2cc39)
图 1-13
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-98.jpg?sign=1739279993-AFkqFuJRBQNtBSOAXDjsAYUcpgxlO8E6-0-8c689e6ab0409cb150585cbe5c612b4e)
图 1-14
stairs可画出阶梯图:
x=linspace(0,10,50);
y=sin(x).∗exp(-x/3);
stairs(x,y);
绘制结果如图1-15所示.
stems可产生针状图,常被用来绘制数字信号
x=linspace(0,10,50);
y=sin(x).∗exp(-x/3);
stem(x,y);
绘制结果如图1-16所示.
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-99.jpg?sign=1739279993-63enYbIa0Car0xF6kqkiPP1YyOiEBpDA-0-aa0e95a0cbe596fa837dc6556ff38f7b)
图 1-15
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-100.jpg?sign=1739279993-NMmK1uo5lAOY65AiiNsm2zWHygZZlyZq-0-d18d0b2148ec9320cbbbf61971067d5d)
图 1-16
stairs将数据点视为多边形的顶点,并将此多边形涂上颜色:
x=linspace(0,10,50);
y=sin(x).∗exp(-x/3);
fill(x,y, b
);%
b
为蓝色
绘制结果如图1-17所示.
feather将每一个数据点视为复数,并以箭头画出:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-105.jpg?sign=1739279993-6zlqalw7nbKbDlZ4pZtYA3PYJlTMrDO7-0-e205b5eb8110fce955837e21e26ec54a)
compass和feather很接近,只是每个箭头的起点都在原点:
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-106.jpg?sign=1739279993-MsVDrx2txcbzKePIXj4Z8BOSwpHVpS0c-0-026a4b42fc5abfe5e80f77ec0a0b4ddb)
绘制结果如图1-18所示.
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-107.jpg?sign=1739279993-UdF8hDazK4zyIm3GEZAUvGdpQKjmHk5Q-0-e59be2f44d97cc52857a5cba55977eb6)
图 1-17
![](https://epubservercos.yuewen.com/19D965/16741087904971906/epubprivate/OEBPS/Images/978-7-111-43176-3-Chapter01-108.jpg?sign=1739279993-S5cRHQDK8r6YN6IebfZAUV1KFWh4jmMa-0-b7595185e1a8d937275cb3f273b0ebd0)
图 1-18