当前位置:首页 >> 小学教育 >>

第三讲 matlab在线性代数和高等数学中的应用


第三讲 Matlab在微积分和线性代 数中的应用

主要内容
? 1. 高等数学微积分中的应用 ? 2. 线性代数中的应用 ? 3. 常微分方程的符号解 ? 4. 概率论分析中的应用

1、高等数学微积分中的应用

1.1 导数、极值和积分、Taylor公式
1. 极限运算

>命 limit(f,x,a)



功 计算 lim
x? a


f (x)

limit(f,x,inf)
limit(f,x,a, 'right') limit(f,x,a, 'left')

计算 lim

x? ?

f (x)
lim f ( x )

计算单侧极限 计算单侧极限

x? a?

x? a?

lim f ( x )

注意:在左右极限不相等或左右极限有一个不存在时, MATLAB的默认状态是求右极限。

1.1 导数、极值和积分、Taylor公式
1. 极限运算

命 limit(f,x,a)



功 计算 lim
x? a


f (x)

limit(f,x,inf)
limit(f,x,a, 'right') limit(f,x,a, 'left')

计算 lim

x? ?

f (x)
lim f ( x )

计算单侧极限 计算单侧极限

x? a?

x? a?

lim f ( x )

注意:在左右极限不相等或左右极限有一个不存在时, MATLAB的默认状态是求右极限。

1

例. 求极限

lim (1 ? 4 x ) x
x? 0

例. 求极限

与极限

lim

e ?1
x

x? 0?

lim (

x ?2

?

1 x

)

x? 0

x

syms x;
y=sqrt(x)-2^(-1/x); limit(y,x,0, 'right')

syms x; y1=(1+4*x)^(1/x);

y2=(exp(x)-1) /x;
limit(y1,x,0) limit(y2,x,0)

2. 求导运算
(1)一元函数的求导 diff(f) diff(f,n) 例. 求函数3 x 导数 syms x; f=3*x^3+5*x+1;
3

? 5 x ? 1 的二阶

例.



y ? 3 x ? 2 x ? 1,求 y '
3

x ?1

syms x; y=3*x^2-2*x+1; B=diff(y),x=1;

diff(f,2)

eval(B)

(2)多元函数的偏导数 diff(f,xi) diff(f,xi,n) 例12. 求z
? x sin 2 y
2

关于x的偏导数。

syms x y; z=x^2*sin(2*y);

B=diff(z,x)

3. 积分运算
(1)一元函数的不定积分 int(f) 求函数f对默认变量的不定积分,用于函数只有一 个变量的情况 int(f,v) 求符号函数f对变量v的不定积分

例.

计算 ?
int(y)

1 sin
2

x cos

2

dx x

例.

计算

?1?

x z
2

dz

syms x ; y=1/(sin(x)^2*cos(x)^2);

syms x z; B=int(x/(1+z^2),z)

pretty(int(y))

(2)一元函数的定积分 b int(f,x,a,b) 用微积分基本公式计算定积分 ?a 例. 求 ? ?1 1? syms x ;
1

f ( x ) dx

x ? sin x
2

x

2

dx

y=(x^2+sin(x))/(1+x^2); int(y,x,-1,1) (3)多重积分运算 int(int(f,y),x) int(int(f,y,c,d),x,a,b) 例. 计算 计算不定积分 ? dx ? 计算不定积分 ?a
b

f ( x , y ) dy
d

dx

?

f ( x , y ) dy

c

? ?
0

1

x ?1 x

( x ? y ? 1 ) dxdy
2 2

syms x y ; int(int(x^2+y^2+1,y,x,x+1),x,0,1)

4. 函数的Taylor展开
taylor(f) 将函数f展开成默认变量的6阶麦克劳林(Maclaurin)公式 taylor(f,n) 将函数f展开成默认变量的n阶麦克劳林(Maclaurin)公式 taylor(f,n,v,a) 将函数f(v)在v=a处展开成n阶Taylor公式 2 例. 将函数 f ( x ) ? x arctan x ? ln 1 ? x 展开为x的6阶麦克劳林 (Maclaurin)公式 syms x ;
f=x*atan(x)-log(sqrt(1+x^2)); taylor(f) 例. 将函数 f ( x ) ?
1 x
2

展开为关于(x-2)的最高次为4的幂级数

syms x ;
f=1/x^2; taylor(f,4,x,2);

pretty(taylor(f,4,x,2))

1.2 数值微分与数值积分在MATLAB中的实现
1. 数值微分 数值微分是用离散的方法近似地计算函数y=f(x)在某点 x=a处的导数值,通常仅当函数以离散数值形式给出时才 有这种必要。 diff(x)

1.2 数值微分与数值积分在MATLAB中的实现
2. 用数值方法计算定积分 (1)复合梯形公式 trapz(x,y) (2)复合辛普生公式 quad('fun',a,b,tol,trace) quadl('fun',a,b,tol,trace)
例. 用复合梯形公式和复合辛普生公式求 ? syms x ; x=2:0.1:5; y=log(x)./(x.^2); t=trapz(x,y);ff=inline('log(x)./(x.^2) ', 'x ' );
5

ln x x
2

dx

2

q=quad(ff,2,5);
disp([blanks(3) '梯形法求积分' blanks(3) '辛普生法求积分']),[t,q]

(3)用数值方法计算二重积分 dblquad('fun',xmin,xmax,ymin,ymax) 计算二重积分 ? dx ? f ( x , y ) dy
x max y max x min y min

例.

计算 ??
D

xydxdy

,其中D是由y=1, x=4, x=0, y=0所围成的区域

Q = dblquad(inline('x*y'), 0, 4, 0, 1)

1.3 线性方程和非线性方程在MATLAB中的各种求解方法

1. 求多项式方程的根 roots(p) solve(p)

例.

求方程

x ? 4 x ? 9 x ? 10 ? 0
3 2

的所有根

p=[1 -4 9 -10] r=roots(p) 或 s1=sym('x^3-4*x^2+9*x-10'); solve(s1)

2. 求超越方程的根
例. 求方程
p sin x ? r

的根,其中p,r为常数

ff=sym('p*sin(x)=r') solve(ff,'x') solve命令还可以用来求解方程组 例. 求方程组
?x ? y ? 1 ? ? x ? 11 y ? 5

的根

[x,y]= solve('x+y=1','x-11*y=5','x','y')

1.4 MATLAB中求和及求极值方法
1. 求和 (1) 向量或矩阵求和 sum(x) 求向量x的和或者是矩阵每一列向量的和 例. a=1:5; A=[1 2 3;2 3 4;7 8 9]; sum(a) sum(A)

(2) 级数求和 symsum(s,v,a,b) 对表达式s的符号变量v从v=a到v=b进行求和

例.

求?

n ?1

k

3

例.

求 ?
k ?0

??

x

k

k ?0

k!

syms k n; f=k^3; symsum(f,k,0,n-1)

syms x k;
symsum(x^k/sym('k!'),k,0,inf)

2. 求函数的极值点
(1) 求一元函数的极值问题 fminbnd(fun,x1,x2) 在区间[x1,x2]内求函数fun的极小值点

例.

f = inline('sin(x)+3');
x = fminbnd(f,2,5)

(2) 求多元函数的极值问题 fminsearch(fun,x0) 用单纯形法求多元函数fun在x0附近的极值点 fminunc(fun,x0) 用拟牛顿法求多元函数fun在x0附近的极值点

1.5 函数插值与曲线的拟合

1. 函数插值 (1) 一维插值 Y1=interp1(x,y,X1, 'method') 功能:根据已知的数据(x,y),用method方法进行插值,然后计算 X1对应的函数值Y1.

(1) 一维插值 例. 对
y ? 1 1? x
2

,? 5 ? x ? 5

, 用11个节点作三种插值,并比较其结果.

x0=-5:0.5:5; y0=1./(1+x0.^2);
x=-5:0.2:5; y1=interp1(x0,y0,x,'linear');

y2=interp1(x0,y0,x,'spline');
y3=interp1(x0,y0,x,'nearst'); subplot(2,2,1),plot(x0,y0,'r-p'),title('y=1/(1+x^2)');

subplot(2,2,2),plot(x0,y0,'r-',x,y1),title('linear');
subplot(2,2,3),plot(x0,y0,'r-',x,y2),title('spline'); subplot(2,2,4),plot(x0,y0,'r-',x,y3),title('nearst');

(2) 二维插值 Z1=interp2(x,y,z,X1,Y1, 'method') 功能:根据已知的数据(x,y,z),用method方法进行插值,然后计 算(X1,Y1)对应的函数值Z1.

2. 曲线的拟合 (1) 多项式拟合 [p,s]=polyfit(x,y,n) 功能:对于已知的数据组x,y进行多项式拟合,拟合的多项式的阶 数为n,其中p为多项式的系数矩阵,s为预测误差估计值的 矩阵。
例. x取0至1之间的数,间隔为0.1;y为2.3,2.5, 2.1,2.5,3.2,3.6,3.0,3.1,4.1,5.1, 3.8,分别用二次、三次、和七次拟合曲线来拟合这组数据,试观察三组拟合曲线哪个效 果最好。 clf; x=0:0.1:1; y=[2.3,2.5, 2.1,2.5,3.2,3.6,3.0,3.1,4.1,5.1,3.8]; p2=polyfit(x,y,2); p3=polyfit(x,y,3); p7=polyfit(x,y,7);

disp('二次拟合曲线'),p2 disp('三次拟合曲线'),p3 disp('七次拟合曲线'),p7

x1=0:0.1:1;
y2=polyval(p2,x1); y3=polyval(p3,x1); y7=polyval(p7,x1);

plot(x,y,'rp',x1,y2,'--',x1,y3,'k-',x1,y7)
legend('拟合点', '二次拟合', '三次拟合', '七次拟合')

(2) 非线性最小二乘拟合 leastsq('f',x0) f是M函数文件
例30. 用表中的一组数据拟合
t c 0.25 19.21 0.5 18.15
c ( t ) ? re
? kt

中系数r,k,并给出图像。
2 12.98 3 9.32 4 7.45 6 5.24 8 3.01

1 15.36

1.5 14.10

(1)

建立函数文件ct.m function y=ct(x) t=[0.25 0.5 1 1.5 2 3 4 6 8]

c=[19.21 18.15 15.36 14.10 12.98 9.32 7.45 5.24 3.01]
y=c-x(1)*exp(-x(2).*t) (2) 建立命令文件 x0=[10,0.5] x=leastsq('ct',x0) tt=0:0.2:8 yy=x(1).*exp(-x(2).*tt)

plot(tt,yy,'-rp')

2、线性代数中的应用

2.1 MATLAB中向量和矩阵的基本运算
设A、B为两个矩阵 1. A+B,A-B 2. k*A 3. A*B 4. A\B 左除 A-1B,A必须为方阵 5. A/B 右除 AB-1 ,B必须为方阵 6. det(A) 求|A|,A必须为方阵 7. inv(A)或A-1 8. A^n 9. A'或transpose(A) 10. rank(A) 11. rref(A) 矩阵行变化化简,求矩阵A阶梯形的行最简形式

例. 计算

? 1 ? ? ??3 ?a ? ? ?c

3 9 b? ? ? d?

7 ? ? 2 ??? ? ? ? 1? ? ? 1

3 6

2 ? ? ? ? 7?

例. 求矩 阵

的转置、逆和行列式。

syms a b c d; A=[a b;c d]; A' inv(A) 例. 求矩 阵 ? 4
? ? 1 ? 10 ? ? ? 0

det(A)
1 2 5 1 2 0 2 1 4? ? 2? 0? ? ? 7?

的秩与行最简形。

2.2矩阵的变换与分解及其在MATLAB中的实现
1. 矩阵的对角元素 (1) 函数diag可以将一个矩阵的对角元素提取出来 diag(A) 由矩阵A的对角线元素得到一个列向量
例. A=pascal(3) diag(A)

(2) 用该函数来产生第k阶对角线上的元素 diag(A,k) 其中,k=0表示主对角线;k>0表示在主对角线以上; k<0表示 在主对角线以下。
例. a=[1 2 3] A=diag(a,0), B=diag(a,1), C=diag(a,-1)

(3) 函数blkdiag可以根据输入创建一个分块对角矩阵 S=blkdiag(a,b,c,…) 功能:根据输入的a,b,c等参数构造一个分块对角矩阵
例. a=1;b=[1 2;3 4];c=9; d=[1 -1;2 -2;3 -3] S=blkdiag(a,b,c,d)

2. 矩阵的分解 (1) 矩阵的奇异值分解

(2) 矩阵的LU分解 (2) 矩阵的QR分解 (2) 矩阵的Cholesky分解

s=svd(A) [U,S,V]=svd(A) [U,S,V]=svd(A,0) [L,U]=lu(A) [Q,R]=qr(A) C=chol(A)

2.3 MATLAB中矩阵特征值和特征向量的求解方法
1. 矩阵的特征值与特征向量 d=eig(A) 返回方阵A的全部特征值组成的特征向量d [V,D]= eig(A) 返回矩阵A的特征值D与特征向量矩阵V,满足 AV=VD poly(A) 求矩阵A的特征多项式
例.
6 0? ? 4 求矩阵 ? ? 的特征多项式、特征值和特征向量。 ?? 3 ? 5 0? ?? 3 ? 6 1? ? ? A=[4 6 0;-3 -5 0;-3 -6 1]

P=poly(A)

[V,D]= eig(A)

注:求矩阵A的特征根 D=roots(poly(A)) 。

2. 矩阵的相似对角化
例. 化上述矩 阵A为对角阵。 D=V-1AV
2 2 求一个正交变换将二次型 f ? x12 ? x 2 ? x 32 ? x 4 ? 2 x1 x 2 ? 2 x1 x 4 ? 2 x 2 x 3 ? 2 x 3 x 4

例.

化为标准型 A=[1 1 0 -1;1 1 -1 0;0 -1 1 1;-1 0 1 1]

[P,D]= eig(A)
syms x1 x2 x3 x4; X=[x1;x2;x3;x4] Y=P*X

2.4 线性方程组的直接求解法在MATLAB中的实现
1. 齐次线性方程组的直接求解法
例. 用基础解系表示齐次方程组 ? x 1 ? x 2 ? x 3 ? x 4 ? x 5 ? 0 的通解。 ? ? 3 x1 ? 2 x 2 ? x 3 ? x 4 ? 3 x 5 ? 0 ? ? x1 ? 2 x 3 ? 2 x 4 ? 6 x 5 ? 0 ?5 x ? 4 x ? 3 x ? 3 x ? x ? 0 2 3 4 5 ? 1 A=[1 1 1 1 1;3 2 1 1 -3;0 1 2 2 6;5 4 3 3 -1]; B=null(A,'r');
syms k1 k2 k3; x=k1*B(:,1)+k2*B(:,2)+k3*B(:,3)

2. 非齐次线性方程组的直接求解法 (1) 求逆法 对AX=B,若|A|不等于0,则解由inv(A)*B获得 (2) 左除法与右除法
例. 求非齐次线性方程组 ? 2 x ? 3 y ? z ? 4 ? ? x ? 2 y ? 4 z ? ?5 ? ? 3 x ? 8 y ? 2 z ? 13 ?4 x ? y ? 9 z ? ?6 ? A=[2 3 1 4;1 -2 4 -5;3 8 -2 13; 4 -1 9 -6]; rref(A) …… 的通解。

34

3. 符号方程组的求解方法 (1) 线性方程组AX=B的符号解 X=linesolve(A,B) 只给出特解
例. 求
?a ? ? ?0 0 b 0? ?1? ?X ? ? ? ? ? ? 0? ?c?

的解。

syms a b c; A=[a 0 0;0 b 0]; B=[1;c] X=linesolve(A,B)

(2) 非线性方程组的符号解 [x1,x2,x3,…]=solve(e1,e2,e3,…)
例 解
?a ? b ? x ? y ? ? 2 ax ? by ? ? 1 ? ?2(a ? b) ? x ? y ? ay ? bx ? 4 ?

e1=sym('a+b+x=y'); e2=sym('2*a*x-b*y=-1');

e3=sym('2*(a+b)=x+y');
e4=sym('a*y+b*x=4'); [a,b,x,y]=solve(e1,e2,e3,e4)

3 常微分方程的符号解

3 常微分方程的符号解
r=dsolve('eqn1','eqn2',...,'var') r=dsolve('eqn1,eqn2,... ','var')
功能:求微分方程或微分方程组的通解

r=dsolve('eqn1','eqn2',..., ‘cond1', 'cond2',...,'var') r=dsolve('eqn1,eqn2,...', ‘cond1,cond2,...', 'var')
功能:求微分方程(组)满足初始条件的特解

在Matlab中,约定D1表示一次微分,D2表示二次微分,依此类推, Dn表示n次微分,符号Dy相当于Dy/Dt,默认自变量为t。
例1 求解一阶微分方程
dy dx ?1? y
2

及x=0时的特解。
1 2

dsolve('Dy=1+y^2', 'x') 例2 求解二阶微分方程
2

dsolve('Dy=1+y^2', 'y(0)=1' ,'x')
2

x y ' ' ? xy ' ? ( x ?

) y ? 0, y (

?
2

) ? 2, y ' (

?
2

)? ?

2

?

dsolve('x^2*D2y+x*Dy+(x^2-1/2)*y=0','y(pi/2)=2','Dy(pi/2)=-2/pi','x')

4 概率论基础知识及其在MATLAB中 的实现

4 概率论基础知识及其在MATLAB中的实现
§3.1 随机事件及其概率

rand(N) 返回一个N×N的随机矩阵 rand(N,M) 返回一个N×M的随机矩阵 rand(P1,P2,…,Pn) 返回一个P1×P2×…×Pn的随机矩阵 round(X) 对向量或矩阵X的每个分量四舍五入取整 fix(x) 对x朝零方向取整 floor(x) 对x朝负无穷大方向取整 ceil(x) 对x朝正无穷大方向取整

§3.2

随机变量的分布及其数学特征

1. 二项分布 binopdf(X,N,P) 计算二项分布的密度函数 binocdf(X,N,P) 计算二项分布的累积分布函数 binoinv(X,N,P) 计算二项分布的逆累积分布函数 binornd(N,P,m,n) 产生服从二项分布的m×n阶随机矩阵 binostat(N,P) 求二项分布的数学期望与方差

2. 泊松分布 poisspdf(X,LMD) poisscdf(X,LMD) poissinv(Y,LMD) poissrnd(LMD,m,n) poisstat(LMD) 4. 均匀分布 unifpdf(X,A,B) unifcdf(X,A,B) unifinv(P,A,B) unifrnd(A,B,m,n) unifstat(A,B)

3. 超几何分布 hygepdf(M,n,k,N) hygecdf(M,n,k,N) hygeinv(P,n,k,N) hygernd(n,k,N,mr,mc) hygestat(n,k,N) 5. 指数分布 exppdf(X,L) expcdf(X,L) expinv(P,L) exprnd(X,L,m,n) expstat(L)

6. 正态分布 normpdf(X,M,C) normcdf(X,M,C) norminv(P,M,C) normrnd(M,C,m,n) normstat(M,C) 8. t分布 tpdf(X,N) tcdf(X,N) tinv(P,N) trnd(N,m,n) tstat(N)

7.

?

分布 chi2pdf(X,N) chi2cdf(X,N) chi2inv(P,N) chi2rnd(N,m,n) chi2stat(N)
2

9. F分布 fpdf(X,M,N) fcdf(X,M,N) finv(P,M,N) frnd(M,N,m,n) fstat(M,N)

样本的数字特征

1. 集中趋势(位置)度量
geomean(X) 样本的几何平均值 harmmean(X) 样本的调和平均值 mean(X) 样本的算术平均值 median(X) 样本的中位数 trimmean(X,P) 修正的样本均值,计算时剔除样本数据中 最高P%和最低P%后的均值
注:上述命令中,若X为向量,则返回该向量的各度量值;若X为矩阵,则 返回矩阵各列的度量值组成的行向量。

2. 离中趋势(散布)度量
vqr(X) 样本的内四分位数间距 mad(X) 样本的平均绝对差 rang(X) 样本的极差 var(X) 样本的方差 std(X) 样本的标准差 cov(X)或cov(X,Y) 样本的协方差

3. 中心矩 4. 峰度 偏度 5. 相关系数

moment(X,k) kurtosis(X) skewness(X) corrcoef(X)

44


相关文章:
Matlab在高等数学和线性代数中的应用
⒉实验任务分解通过一些实例初步掌握 Matlab 在高等数学和线性代数中的应用。实验任务 可分解为: Matlab 在高等数学的应用, Matlab 在线性代数中的应用(一), ...
matlab在高等数学中的应用
matlab在高等数学中的应用_工学_高等教育_教育专区。matlab在高等数学和线性代数中的应用第1章本章学习的主要目的: MatLab 入门 1. 了解 MatLab 软件的功能,熟悉 ...
MATLAB在高等数学中的应用
在美国的一些大学里,MATLAB 正在成为 对数值线性代数以及其他一些高等应用数学课程...直角坐标系下函数的图像. 我们以第一个重要极限 ( (见文献[1])中的函数 ,...
Matlab在线性代数中的应用
Matlab在线性代数中的应用_数学_自然科学_专业资料。Matlab 在线性代数中的应用§...第三讲 matlab在线性代数... 44页 免费 实验数学三:MATLAB在线... 43页 免费...
MATLAB软件在高等数学中的应用探索
12 3 MATLAB 软件在线性代数中的应用 ??? 13 3.1 行列式求值 ??? 13 3...27 0 MATLAB 软件在高等数学中的应用探索 摘要 MATLAB 将计算机、可视化、程序...
MATLAB在高等数学中的应用(二)
实验五 MATLAB在高等数学中的应用( 实验五:MATLAB在高等数学中的应用(二) 在高等数学中的应用一、实验目的掌握用MATLAB求级数和、级数展开、线性代数、方程的运算...
实验六 MATLAB在高等数学中的应用
实验六 MATLAB在高等数学中的应用_理学_高等教育_教育专区。Matlab 在电子信息类...掌握矩阵的运算、分解,解线性代数方程组、非线性方程,掌握矩阵的逆和行列式; 2...
实验六 MATLAB在高等数学中的应用
Matlab 在电子信息类中的应用实验 班级: 姓名: 成绩: 学号: 实验六:MATLAB 在高等数学中的应用 实验目的: 1. 掌握矩阵的运算、分解,解线性代数方程组、非线性...
Matlab软件在高职高专数学教学中的应用
中的应用 作者:孙美玲 来源:《科教导刊》2014 年第 35 期 摘要将 Matlab ...关键词 高职高专 高等数学 线性代数 Matlab 应用示例 中图分类号:G424 文献...
更多相关标签:
高等线性代数 | 高等数学 线性代数 | 高等教育线性代数答案 | 线性代数和高等代数 | 高等线性代数 pdf | 高等代数线性方程组 | 高等数学和线性代数 | 高等代数线性变换 |