《matlab在线性代数和高等数学中的应用》由会员分享,可在线阅读,更多相关《matlab在线性代数和高等数学中的应用(44页珍藏版)》请在金锄头文库上搜索。
1、第三讲 Matlab在微积分和线性代数中的应用,主要内容,1. 高等数学微积分中的应用 2. 线性代数中的应用 3. 常微分方程的符号解 4. 概率论分析中的应用,1、高等数学微积分中的应用,1.1 导数、极值和积分、Taylor公式,1. 极限运算,注意:在左右极限不相等或左右极限有一个不存在时,MATLAB的默认状态是求右极限。,1. 极限运算,注意:在左右极限不相等或左右极限有一个不存在时,MATLAB的默认状态是求右极限。,1.1 导数、极值和积分、Taylor公式,例. 求极限 与极限 syms x; y1=(1+4*x)(1/x); y2=(exp(x)-1) /x; limit(
2、y1,x,0) limit(y2,x,0),例. 求极限 syms x; y=sqrt(x)-2(-1/x); limit(y,x,0, right),2. 求导运算 (1)一元函数的求导 diff(f) diff(f,n),例. 求函数 的二阶 导数 syms x; f=3*x3+5*x+1; diff(f,2),例. 设 ,求 syms x; y=3*x2-2*x+1; B=diff(y),x=1; eval(B),(2)多元函数的偏导数 diff(f,xi) diff(f,xi,n),例12. 求 关于x的偏导数。 syms x y; z=x2*sin(2*y); B=diff(z,x)
3、,3. 积分运算 (1)一元函数的不定积分 int(f) 求函数f对默认变量的不定积分,用于函数只有一 个变量的情况 int(f,v) 求符号函数f对变量v的不定积分,例. 计算 syms x ; y=1/(sin(x)2*cos(x)2); int(y) pretty(int(y),例. 计算 syms x z; B=int(x/(1+z2),z),(2)一元函数的定积分 int(f,x,a,b) 用微积分基本公式计算定积分,例. 求 syms x ; y=(x2+sin(x)/(1+x2); int(y,x,-1,1),(3)多重积分运算 int(int(f,y),x) 计算不定积分 in
4、t(int(f,y,c,d),x,a,b) 计算不定积分,例. 计算 syms x y ; int(int(x2+y2+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公式,例. 将函数 展开为x的6阶麦克劳林(Maclaurin)公式 syms x ; f=x*atan(x)-log(sqrt(1+x2); taylor(f),
5、例. 将函数 展开为关于(x-2)的最高次为4的幂级数 syms x ; f=1/x2; taylor(f,4,x,2); pretty(taylor(f,4,x,2),1.2 数值微分与数值积分在MATLAB中的实现,数值微分 数值微分是用离散的方法近似地计算函数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,trac
6、e),例. 用复合梯形公式和复合辛普生公式求 syms x ; x=2:0.1:5; y=log(x)./(x.2); t=trapz(x,y);ff=inline(log(x)./(x.2) , x ); q=quad(ff,2,5); disp(blanks(3) 梯形法求积分 blanks(3) 辛普生法求积分),t,q,(3)用数值方法计算二重积分 dblquad(fun,xmin,xmax,ymin,ymax) 计算二重积分,例. 计算 ,其中D是由y=1, x=4, x=0, y=0所围成的区域 Q = dblquad(inline(x*y), 0, 4, 0, 1),1.3 线性
7、方程和非线性方程在MATLAB中的各种求解方法,求多项式方程的根 roots(p) solve(p),例. 求方程 的所有根 p=1 -4 9 -10 r=roots(p) 或 s1=sym(x3-4*x2+9*x-10); solve(s1),2. 求超越方程的根 例. 求方程 的根,其中p,r为常数 ff=sym(p*sin(x)=r) solve(ff,x),solve命令还可以用来求解方程组 例. 求方程组 的根 x,y= solve(x+y=1,x-11*y=5,x,y),求和 (1) 向量或矩阵求和 sum(x) 求向量x的和或者是矩阵每一列向量的和,例. a=1:5; A=1 2
8、 3;2 3 4;7 8 9; sum(a) sum(A),1.4 MATLAB中求和及求极值方法,(2) 级数求和 symsum(s,v,a,b) 对表达式s的符号变量v从v=a到v=b进行求和,例. 求 syms k n; f=k3; symsum(f,k,0,n-1),例. 求 syms x k; symsum(xk/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) 求多元函数的
9、极值问题 fminsearch(fun,x0) 用单纯形法求多元函数fun在x0附近的极值点 fminunc(fun,x0) 用拟牛顿法求多元函数fun在x0附近的极值点,函数插值 (1) 一维插值 Y1=interp1(x,y,X1, method) 功能:根据已知的数据(x,y),用method方法进行插值,然后计算 X1对应的函数值Y1.,1.5 函数插值与曲线的拟合,(1) 一维插值,例. 对 , 用11个节点作三种插值,并比较其结果. x0=-5:0.5:5; y0=1./(1+x0.2); x=-5:0.2:5; y1=interp1(x0,y0,x,linear); y2=int
10、erp1(x0,y0,x,spline); y3=interp1(x0,y0,x,nearst); subplot(2,2,1),plot(x0,y0,r-p),title(y=1/(1+x2); 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) 功能:根据已知的数据
11、(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,
12、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. 用表
13、中的一组数据拟合 中系数r,k,并给出图像。,建立函数文件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为两个矩阵 A+B,A-B k*A A*B
14、 AB 左除 A-1B,A必须为方阵 A/B 右除 AB-1 ,B必须为方阵 det(A) 求|A|,A必须为方阵 inv(A)或A-1 An A或transpose(A) rank(A) rref(A) 矩阵行变化化简,求矩阵A阶梯形的行最简形式,例. 计算,例. 求矩 阵 的转置、逆和行列式。 syms a b c d; A=a b;c d; A inv(A) det(A),例. 求矩 阵 的秩与行最简形。,2.2矩阵的变换与分解及其在MATLAB中的实现,矩阵的对角元素 (1) 函数diag可以将一个矩阵的对角元素提取出来 diag(A) 由矩阵A的对角线元素得到一个列向量,例. A=p
15、ascal(3) diag(A),(2) 用该函数来产生第k阶对角线上的元素 diag(A,k) 其中,k=0表示主对角线;k0表示在主对角线以上; k0表示在主对角线以下。,例. 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. 矩阵的分解 矩阵的奇异值分解 s=svd(A) U,S,V=svd(A) U,S,V=svd(A,0) (2) 矩阵的LU分解 L,U=lu(A) (2) 矩阵的QR分解 Q,R=qr(A) (2)