(第3次符号计算-内容多)矩阵、数组和符号运算.ppt

上传人:max****ui 文档编号:2562785 上传时间:2019-11-27 格式:PPT 页数:48 大小:680.81KB
返回 下载 相关 举报
(第3次符号计算-内容多)矩阵、数组和符号运算.ppt_第1页
第1页 / 共48页
(第3次符号计算-内容多)矩阵、数组和符号运算.ppt_第2页
第2页 / 共48页
(第3次符号计算-内容多)矩阵、数组和符号运算.ppt_第3页
第3页 / 共48页
点击查看更多>>
资源描述
,第2章 矩阵、数组和符号运算,掌握内容: (1)了解 MATLAB 6.0 的符号变量,掌握 MATLAB 符号表达式、符号矩阵的两种创建方法。 (2)掌握 MATLAB 符号数学函数的创建。 (3)掌握符号矩阵的基本运算及MATLAB 关于不同精度的控制方法。 (4)掌握符号微积分内容,包括求函数的极限、对符号表达式求导数和微分、符号积分、符号求和、傅立叶变换及其逆变换等。 (5)掌握各种符号方程的求解方法和函数命令。 (6)了解 MATLAB 可视化的符号函数分析界面及使用。 (7)初步了解 MAPLE 的符号资源。,第2章 矩阵、数组和符号运算,抽象运算:公式推导、因式分解、求解代数方程或微分方程的精确解 符号数学工具箱 1)通过基本符号数学工具箱的专用函数; 符号表达式和符号矩阵的操作; 多项式的化简、展开和代入; 线性代数; 微积分; 符号方程的求解; 特殊的数学函数。 2)通过 maple.m、mpa.m 两个专门设计的 M 文件进行符号运算; 3) 通过 MATLAB 中的函数计算器(Function Caculator)。,第2章 矩阵、数组和符号运算,1、符号变量的创建 a. sym 函数 S=sym(arg) ,从表达式 arg 创建一个 sym 对象 S x=sym(x) x = sym(x,real) x = sym(x,unreal) 附加属性 x = sym(x,positive) pi = sym(pi) delta = sym(1/10) S = sym(A, flag) ,将数值或矩阵转化为符号形式 其中 flag 选项有四项参数f, r, e 和 d,r为缺省项。 f:代表十六进制浮点形式; r:代表有理数形式; e:估计误差; d:表示十进制小数。,第2章 矩阵、数组和符号运算, A=2/5,4/0.78,sqrt(23)/3;0.33,0.3333,log(4) 输入数值矩阵A A = 0.4000 5.1282 1.5986 0.3300 0.3333 1.3863 FA=sym(A) 将数值矩阵A转化为符号矩阵FA FA = 2/5, 200/39, sqrt(23/9) 33/100, 3333/10000, 6243314768165359*2(-52) 不管数值矩阵的元素是以分数或是浮点数表示,转换后的符号矩阵都将以最接近有理式的形式给出。 b. syms 函数 syms arg1 arg2 . syms a b c x y,2、符号表达式和矩阵的创建 a.字符串直接输入创建 符号表达式和符号方程对空格很敏感。因此,在创建符号表达式或符号方程时,不要在字符间任意加空格符; 符号计算中出现的数字也是当作符号处理的; f=a*x2+b*x+c f = a*x2+b*x+c f=a*x2+b*x+c=0 f = a*x2+b*x+c=0,第2章 矩阵、数组和符号运算,第2章 矩阵、数组和符号运算,这种方法输入符号矩阵与字符串矩阵的输入相似。但要保证在同一列中各元素字符串有同样的长度,在较短的字符串前后用空格符填充; 这种方法要求符号矩阵每一行的两端都有方括号,而字符串矩阵仅在首尾有方括号。 B=4+x x2 x ;x3 5*x-3 x*a B = 4+x x2 x x3 5*x-3 x*a,第2章 矩阵、数组和符号运算,b.由 sym 命令创建 f=sym(a*x2+b*x+c) f = a*x2+b*x+c f1=sym(a*x2+b*x+c=0) f1 = a*x2+b*x+c=0 A=sym(4+x, x2, x;x3, 5*x-3, x*a) A = 4+x, x2, x x3, 5*x-3, x*a,第2章 矩阵、数组和符号运算,c.由 syms 命令创建 syms x a b c f=a*x2+b*x+c f = a*x2+b*x+c syms x a B=4+x x2 x;x3 5*x-3 x*a B = 4+x, x2, x x3, 5*x-3, x*a 不能创建符号方程,第2章 矩阵、数组和符号运算,3、数字矩阵和符号矩阵的转换 MATLAB 中的数值型、字符型和符号型三种数据类型中数值变量级别最低,字符变量级别居中,符号变量级别最高; 三种变量参与的混合运算,系统将会把所有参与运算的变量自动统一转换为变量等级最高的类型,然后进行计算; 可以通过命令来完成对不同数据类型之间的转换,大致可以分为三种情况: 转换为数值变量: double, str2num,numeric 转化为符号变量: sym 转化为字符变量: int2str, num2str,第2章 矩阵、数组和符号运算,4、MATLAB 关于不同精度的控制 针对浮点运算的数值算法 计算速度最快,占用计算机内存最少的算法,与 C、FORTRAN 语言中的浮点运算算法完全相同。在机器内的表达和计算都是一个被“ 截断”的8 位浮点近似值。 针对精确运算的符号算法 计算时间最长,内存占用最多,精度也最高。 任意精度的算法 运算时间、内存占用和计算精度均介于以上两种运算之间。采用函数 digits 来控制十进制结果的有效位数。digits 的缺省值为 32,大约对应于浮点精度。 符号数学工具箱中,用 vpa 函数执行任意精度运算。,第2章 矩阵、数组和符号运算, syms x f=x-cos(x) f = x-cos(x) f1=subs(f,x,pi) %将符号表达式中的变量替换为另一变量 f1 = pi+1 digits(25) vpa(f1) ans = 4.141592653589793238462643 vpa(f1,6) ans = 4.14159 numeric(f1) ans = 4.1416 double(f1) ans = 4.1416,5、符号矩阵的运算 基本运算 四则运算 两个符号矩阵的大小相等方可进行加减运算,符号矩阵和符号标量的加减运算按照数组运算规则进行; 两个符号矩阵只有内积相等时才可以进行乘法运算; 符号的乘方运算 Sp,若 S 为符号表达式,p 可以为符号表达式或数值表达式;若 S 为符号矩阵,则 p 必须是整数。,第2章 矩阵、数组和符号运算,第2章 矩阵、数组和符号运算, a=sym(1/x, 1/(x+1); 1/(x+2), 1/(x+3) a = 1/x, 1/(x+1) 1/(x+2), 1/(x+3) b=sym(x, 1; x+2, 0) b = x, 1 x+2, 0 b-a ans = x-1/x, 1-1/(x+1) x+2-1/(x+2), -1/(x+3), ab ans = -6*x-2*x3-7*x2, 3/2*x2+x+1/2*x3 6+2*x3+10*x2+14*x, -1/2*x3-2*x2-3/2*x a.b ans = x2, x+1 (x+2)2, 0 a2 ans = 1/x2+1/(x+1)/(x+2), 1/x/(x+1)+1/(x+1)/(x+3) 1/(x+2)/x+1/(x+3)/(x+2), 1/(x+1)/(x+2)+1/(x+3)2 exp(b) ans = exp(x), exp(1) exp(x+2), 1,第2章 矩阵、数组和符号运算,矩阵运算 a ans = 1/conj(x), 1/(2+conj(x) 1/(1+conj(x), 1/(3+conj(x) inv(a) ans = 1/2*x*(x+1)*(x+2), -1/2*x*(x+3)*(x+2) -1/2*x*(x+3)*(x+1), 1/2*(x+3)*(x+1)*(x+2) det(a) ans = 2/x/(x+3)/(x+1)/(x+2) rank(a) ans = 2, eig(b) ans = 1/2*x+1/2*(x2+4*x+8)(1/2) 1/2*x-1/2*(x2+4*x+8)(1/2) triu(a) ans = 1/x, 1/(x+1) 0, 1/(x+3) diag(a) ans = 1/x 1/(x+3) tril(a) ans = 1/x, 0 1/(x+2), 1/(x+3),第2章 矩阵、数组和符号运算,b.符号矩阵的简化 因式分解 syms x factor(x9-1) ans = (x-1)*(x2+x+1)*(x6+x3+1) 符号矩阵展开 syms x y expand(x+1)3) ans = x3+3*x2+3*x+1 expand(sin(x+y) ans = sin(x)*cos(y)+cos(x)*sin(y),同类项合并 syms x y collect(x2*y+y*x-x2-2*x) ans = (y-1)*x2+(y-2)*x 分式通分 syms x y n,d=numden(x/y+y/x) n = x2+y2 d = y*x,符号简化 syms x simple(cos(x)2-sin(x)2) simplify: 2*cos(x)2-1 radsimp: cos(x)2-sin(x)2 combine(trig): cos(2*x) factor: (cos(x)-sin(x)*(cos(x)+sin(x) expand: cos(x)2-sin(x)2 combine: cos(2*x),第2章 矩阵、数组和符号运算,convert(exp): (1/2*exp(i*x)+1/2/exp(i*x)2+1/4*(exp(i*x)-1/exp(i*x)2 convert(sincos): cos(x)2-sin(x)2 convert(tan): (1-tan(1/2*x)2)2/(1+tan(1/2*x)2)2-4*tan(1/2*x)2/(1+tan(1/2*x)2)2 collect(x): cos(x)2-sin(x)2 ans = cos(2*x) simplify(cos(x)2-sin(x)2) ans = 2*cos(x)2-1 simplify(sin(x)2+cos(x)2) ans = 1,第2章 矩阵、数组和符号运算,第2章 矩阵、数组和符号运算,6、符号微积分 Matlab自变量确定原则:除i、j外,字母位置最接近x的小写字母为自变量;如果表达式中没有变量,x会被视为默认的变量。由函数findsym可一找到默认变量 a. 符号极限 limit(F,x,a) limit(F,a),变量为由findsym定义的默认变量 limit(F,x,a,right) /limit(F,x,a,left) Limit(F), a=0 syms x a t h limit(sin(x)/x) ans = 1 limit(1+2*t/x)(3*x),x,inf) ans = exp(6*t), limit(1/x,x,0,right) ans = inf,b.符号积分 int(S) 不定积分 int(S,v) int(S,a,b) 定积分 int(S,v,a,b) syms x x1 alpha u t; A=cos(x*t),sin(x*t);-sin(x*t),cos(x*t) A = cos(x*t), sin(x*t) -sin(x*t), cos(x*t) int(A,t) ans = 1/x*sin(x*t), -cos(x*t)/x cos(x*t)/x, 1/x*sin(x*t) int(x1*log(1+x1),0,1) ans = 1/4,第2章 矩阵、数组和符号运算,符号合计函数 Symsum(S) Symsum(S,v) Symsum(S,a,b) syms k n; simplify(symsum(k) ans = 1/2*k2-1/2*k simplify(symsum(k2,0,n) ans = 1/3*n3+1/2*n2+1/6*n simplify(symsum(k2,0,10) ans = 385,c. 符号微分和差分 微分和差分 Diff(S) Diff(S,v) Diff(S,n) Diff(S,v,n) syms x diff(sin(x2) ans = 2*cos(x2)*x diff(t6,6) ans = 720,第2章 矩阵、数组和符号运算, syms x t; A=cos(x*t),sin(x*t);-sin(x*t),cos(x*t) A = cos(x*t), sin(x*t) -sin(x*t), cos(x*t) diff(A,x) % diff(A,x) ans = -sin(x*t)*t, cos(x*t)*t -cos(x*t)*t, -sin(x*t)*t diff(A,t,2) ans = -cos(x*t)*x2, -sin(x*t)*x2 sin(x*t)*x2, -cos(x*t)*x2,第2章 矩阵、数组和符号运算,梯度函数 DF=gradient(F) 一维梯度 FX,FY=gradient(F) 二维梯度 FX,FY=gradient(F,H) FX,FY=gradient(F,HX,HY) FX,FY,FZ=gradient(F) 三维梯度FX,FY,FZ=gradient(F,HX,HY,HZ) H指定间距,默认为1 x,y=meshgrid(-2:0.2:2,-2:0.2:2); z=x.*exp(-x.2-y.2); px,py=gradient(z,0.2,0.2); contour(z) hold on quiver(px,py) %画矢量图 hold off,d.傅立叶变换和傅立叶逆变换? 傅立叶快速离散变换 MATLAB 提供了 fft(内置函数)、ifft、fft2、ifft2、fftn、ifftn、fftshift、ifftshift 等函数,用来计算矩阵的离散快速傅立叶变换。 函数 fft 和 ifft 函数 fft 最完整的调用格式为: Y=fft(X,dim) 或 Y= fft(X,n,dim) 数据长度n是 2 次幂时,可以采用基-2 算法进行快速计算。 输入参数 X 可以是向量、矩阵。 dim 指定变换的实施方向。当 X 是矩阵时, 1 指明变换按列进行(默认),2 指明变换按行进行。,第2章 矩阵、数组和符号运算,第2章 矩阵、数组和符号运算, X=1,2,3;4,5,6;7,8,9 X = 1 2 3 4 5 6 7 8 9 Y=fft(X) Y = 12.0000 15.0000 18.0000 -4.5000 + 2.5981i -4.5000 + 2.5981i -4.5000 + 2.5981i -4.5000 - 2.5981i -4.5000 - 2.5981i -4.5000 - 2.5981i 函数 fft2 和 ifft2 函数 fft2 和 ifft2 是对数据做二维快速傅立叶变换和逆傅立叶变换。数据的二维傅立叶变换 fft2(X)相当于 fft(fft(X),即先对 X 的列做一维傅立叶变换,然后对变换结果的行做一维傅立叶变换。 其调用格式为: Y=fft2(X,mrows,ncols),和函数 fft2 和 ifft2 类似,函数 fftn 和 ifftn 对数据做多维快速傅立叶变换。 函数 fftshift 和 ifftshift 函数 fftshift 用于把傅立叶变换结果( 频域数据)中的直流分量( 频率为 0 处的值)移到中间位置。 其调用格式为: Y=fftshift(X) X=rand(3,3) X = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 Y=fft(X) Y = 1.7881 2.1394 1.2964 0.5311 + 0.3254i -0.3407 - 0.1119i 0.0365 + 0.6953i 0.5311 - 0.3254i -0.3407 + 0.1119i 0.0365 - 0.6953i,第2章 矩阵、数组和符号运算, Y1=fftshift(X) Y1 = 0.8214 0.6068 0.7621 0.4565 0.9501 0.4860 0.0185 0.2311 0.8913,傅立叶积分变换及其反变换 离散傅立叶变换( DFT)作用于有限数据采样,傅立叶变换作用于连续函数 。 傅立叶变换调用格式为: F = fourier(f):求表达式 f 的傅立叶变换。缺省的自变量为 x,缺省的返回值是关于 w 的函数。 F = fourier(f,v):返回函数 F 是关于符号表达式对象 v 的函数,而不是缺省的 w。 F=fourier(f,u,v):对关于 u 的函数 f 进行变换,返回函数 F 是 关于 v 的函数。 傅立叶逆变换调用格式为: f = ifourier(F):符号表达式对象F的傅立叶逆变换。缺省的自变量为 w,缺省返回是关于 x 的函数。 f = ifourier(F,u):返回函数 f 是关于符号表达式对象 u 的函数,而不是缺省的 x的函数。 f = ifourier(F,v,u):对关于 v 的函数 F 进行变换,返回关于 u 的函数 f。,第2章 矩阵、数组和符号运算, syms x t w u; fourier(exp(-x2) ans = pi(1/2)*exp(-1/4*w2) fourier(exp(-x2),u) ans = pi(1/2)*exp(-1/4*u2) fourier(exp(-t2),t,u) ans = pi(1/2)*exp(-1/4*u2) ifourier(sym(fourier(f(x),x,w),w,x) ans = f(x) ifourier(exp(-w2) ans = 1/2/pi(1/2)*exp(-1/4*x2),第2章 矩阵、数组和符号运算,e. Laplace变换 L=laplace(F) x s L=laplace(F,z) x z L=laplace(F,w,z) w z syms x s w z laplace(sin(x) ans = 1/(s2+1) laplace(sin(x),w) ans = 1/(w2+1),第2章 矩阵、数组和符号运算, laplace(sin(x*w) ans = w/(s2+w2) laplace(sin(x*w),w,z) ans = x/(z2+x2),第2章 矩阵、数组和符号运算,7、符号方程求解 线性方程组的符号解法 函数命令 linsolve 用来求解线性方程组符号解。 对方程 A*X=B,linsolve 的调用格式为: X = linsolve(A,B) 等同于 X = sym(A)sym(B) A=sym(10,-1,0;-1,10,-2;0,-2,10) A = 10, -1, 0 -1, 10, -2 0, -2, 10 B=(9;7;6) B = 9;7;6, linsolve(A,B) ans = 473/475 91/95 376/475 vpa(ans,6) ans = .995789 .957895 .791579 矩阵 A 必须至少是行满秩的。当 A 的列数大于行数时,将给出解不惟一的警告提示。,b. 非线性方程的符号解法 用函数零点法求非线性方程的解有两个函数命令,即 fzero 和 fsolve。 fzero命令用于求一元函数零点 fsolve命令用于求解非线性方程组 首先需将方程 f(x)=g(x)转化为 F(x)=f(x)-g(x)=0,方程组也是如此 ;然后再将函数 F(x)写成 MATLAB 的 m 函数,以便在 fzero 和 fsolve 命令中调用。 求解的过程为: 先猜测一个初始零点,或者该零点大概所在的区间; 然后通过计算,使猜测值不断精确化,或使猜测区间不断收缩 ,直到达到预先指定的精度为止。,第2章 矩阵、数组和符号运算,第2章 矩阵、数组和符号运算,求一元函数零点命令fzero 的调用格式为: x = fzero(fun,x0):求一元函数零点命令的最简形式; x,fval,exitflag =fzero(fun,x0,options,P1,P2,.):求一元函数零点命令的完整格式。 x0 是初始猜测的零点; options 是优化迭代所采用的参数选项,options的缺省设置可以用命令 options=optimset(fzero)获得; P1,P2是向函数 fun 传递的附加参数。它的具体取名和函数 fun 中一致; x是输出参数,为所求的零点自变量值; fval是输出参数,为函数 fun 在 x 处的值; exitflag是描述函数 fun 的退出情况。若 exitflag0,则表示找到函数零点后退出;若 exitflag0,则表示没有找到零点或在搜索过程中遇到了无穷大的函数值。,第2章 矩阵、数组和符号运算,用 fzero 命令求解函数 的零点 ( 1)建立函数 f(x)的 M 文件。 function y=fun1(x) y=x.4-4*x-5; ( 2)建立水平横轴的 M 文件。 function y=fun2(x) y=0; ( 3)用作图法估计函数零点位置。 fplot(fun1,-5,5,r) hold on fplot(fun2,-5,5,r) ( 4)用 zoom 和 ginput 命令获得零点的初始近似值 在程序中输入下列命令,可得到函数的局部放大图及鼠标操作线。 zoom on %局部放大命令 tt=ginput(1) yy=ginput(1) %用鼠标获取 2 个零点猜测值 zoom off %恢复原来图形大小,显示所得零点初始猜测值,结果为: tt = -0.9838 0.0001 yy = 1.8762 0.0091 (5)用函数 fzero 命令求函数的精确零点 x,fval,exitflag=fzero(fun1,tt(1),) %靠近 tt(1)点处的精确零点 x,fval,exitflag=fzero(fun1,yy(1),) %靠近 yy(1)点处的精确零点 结果为: Zero found near tt. x = -1 fval = 0 exitflag = 1,第2章 矩阵、数组和符号运算,Zero found near yy. x = 1.8812 fval = -6.2172e-015 exitflag = 1,解非线性方程组的函数命令fsolve 其调用格式为: x=fsolve(fun,x0) :解非线性方程组最简单的调用格式。该式中除两个输入参数外,其余输入输出参数都可以缺省; x,fval,exitflag,output,jacob=fsolve(fun,x0,options,P1,P2.):解非线性方程组最完整的调用格式。 x0 是表示零点数是猜测值的向量; options 是 优 化 迭 代 所 采 用 参 数 的 结 构 数 组 。 P1 和 P2是向函数 fun 传递的参数; x 和 fval是输出参数,所求零点的自变量值和函数值; output是输出此命令所用的计算方法、迭代次数等信息。 jacob是函数在 x 处的 jacobian。,第2章 矩阵、数组和符号运算,第2章 矩阵、数组和符号运算,求方程组 的根。 首先编制函数文件fc.m function y=fc(x) y(1)=x(1)-0.7*sin(x(1)-0.2*sin(x(2); y(2)=x(2)-0.7*cos(x(1)+0.2*sin(x(2); y=y(1),y(2); 然后用fsolve求解 x,fval,exitflag,output,jacob=fsolve(fc, 1.,1.,) %1.,1.为初值 x = 0.3367 0.5553 fval = 1.0e-008 * 0.2029 0.5242 exitflag = 1,output = firstorderopt: 5.7877e-009 iterations: 5 funcCount: 16 cgiterations: 4 algorithm: 1x43 char jacob = (1,1) 0.3393 (2,1) 0.2313 (1,2) -0.1700 (2,2) 1.1700,求方程组 的解。 初始零点猜测值为:x0,y0=0.0, -0.0058 用fsolve 函数命令求精确解 fun=sin(x(1)+x(2),x(1)+6*x(2); %用字符串表达式形式命令。 注意自变量必须写成x(1)和 x(2) fun 函数也可用 M 函数文件的形式 function yy=fun(x) yy(1)=sin(x(1)+x(2); yy(2)=x(1)+6*x(2); XX,YY=fsolve(fun,x0(1),y0(1) %解此非线性方程组 XX = 1.0e-016 * -0.5464 0.1214 YY = 1.0e-016 * -0.4250 0.1821,第2章 矩阵、数组和符号运算,第2章 矩阵、数组和符号运算,c.一般代数方程(组)的符号解 slove 命令可以解一般代数方程,包括线性方程、非线性方程和超越方程。当方程不存在符号解,且又无其他自由参数时,函数 solve 将给出数值解。 命令调用格式为: solve(eqn1,eqn2,.,eqnN):对 N 个方程的默认变量求解; solve(eqn1,eqn2,.,eqnN,var1,var2,.,varN):对 N 个方程的 var1,var2,.,varN 变量求解。要注意变量的英文字母顺序,且在变量前不可有空格; S=solve(eqn1,eqn2,.,eqnN,var1,var2,.,varN):对 N 个方程的var2,.,varN 变量求解;S 是一个结构数组; x1,x2,xn=solve(eqn1,eqn2,.,eqnN,var1,var2,.,varN):对变量 var1,var2,., varN 求解,求解的结果分别赋给 x1,x2,xn(按照变量var1,var2,.varN 在英文字母中的顺序给 x1,x2,xn赋值)。,第2章 矩阵、数组和符号运算,求非线性方程组 的解 。 解: x,y,z=solve(x2+sqrt(2)*x+2=0,x+3*z=4,y*z=-1,x,y,z) x = (-1/2+1/2*i*3(1/2)*2(1/2) (-1/2-1/2*i*3(1/2)*2(1/2) y= -51/73+3/73*i*3(1/2)-27/146*(-1/2+1/2*i*3(1/2)*2(1/2)-3/146*2(1/2) -51/73-3/73*i*3(1/2)-27/146*(-1/2-1/2*i*3(1/2)*2(1/2)-3/146*2(1/2) z = -1/3*(-1/2+1/2*i*3(1/2)*2(1/2)+4/3 -1/3*(-1/2-1/2*i*3(1/2)*2(1/2)+4/3,d. 常微分方程的符号解 函数 dsolve 用来求常微分方程的符号解。 在符号方程中,用符号表达式中包含的字母“ D”来代替微分运算,符号 D2、D3、DN 分别对应于第二、第三、第 N 阶导数。因变量是位于 D后面的变量,缺省的自变量为 t。 dsolve 的调用格式为: S=dsolve(eqn1,eqn2, .) 输入参数包含三部分内容:微分方程、初始条件和指定独立变量。输出S 是结构数组。 初始条件或边界条件写成y(a)=b或Dy(a)=b等。a、b 可以是变量使用符以外的其他字符。 当初始条件少于微分方程数时,在所得解中将出现任意常数符 C1,C2,.,解中任意常数符的数目等于所缺少的初始条件数。 当无输出参数时,MATLAB 工作内存中在 y1,y2,定义的输出参数中保存计算结果。,第2章 矩阵、数组和符号运算, dsolve(Dx=-a*x) ans = C1*exp(-a*t) dsolve(Dx=-a*x,x(0)=2) ans = 2*exp(-a*t) dsolve(Df - f -sin(t)=0, f(pi/2) = 0) ans = -1/2*cos(t)-1/2*sin(t)+1/2*exp(t)/(cosh(1/2*pi)+sinh(1/2*pi) y = dsolve(Dy)2 + y2 = 1,y(0) = 0) y = sin(t) -sin(t),第2章 矩阵、数组和符号运算,求 , , f(0)=1, g(0)=2 的解。 S = dsolve(Df = f + g,Dg = -f + g,f(0) = 1,g(0) = 2) S = f: 1x1 sym g: 1x1 sym S.f ans = exp(t)*(cos(t)+2*sin(t) S.g ans = exp(t)*(-sin(t)+2*cos(t) 函数 dsolve 命令求解微分方程时,如果得不到其解,则给出警告信息。,第2章 矩阵、数组和符号运算,8、符号函数的二维图 二维符号函数的专用命令ezplot 格式为: ezplot(sym-fun,limits) 参数含义如下: sym-fun:符号函数或代表它的符号变量; limits:为自变量 x 的取值范围,即 limits=x1,x2,其默认值为-2pi,2pi。 用ezplot 绘函数图 syms x f=(x2)(cos(x)2); ezplot(f),第2章 矩阵、数组和符号运算,第2章 矩阵、数组和符号运算,9、图示化函数计算器 a. 单变量函数分析界面 用于考察两个一元函数各自性质及其相互关系。该函数计算器由funtool.m 文件生成。 在 MATLAB 命令窗口中键入下面命令即可:funtool,第2章 矩阵、数组和符号运算,单函数运算、函数和常数a的运算、两个函数之间的运算和辅助操作,辅助操作,b.泰勒级数逼近分析界面 观察函数 f(x)在给定区间位置上的 N 阶泰勒多项式 逼近的情况。 在MATLAB 工作窗口中输入命令: taylortool或taylortool(fx) fx为字符串,第2章 矩阵、数组和符号运算,第2章 矩阵、数组和符号运算,10、符号计算的Maple 接口 MAPLE 具有强大的符号计算功能和丰富的应用数学函数。 为了能够在 MATLAB 的工作环境中利用 MAPLE 的符号计算能力,MATLAB 提供有专门的指令用于 MATLAB 和 MAPLE的连接。 mfun:对 MAPLE 中的若干重要的特殊函数实施数值计算。 使用格式为: mfun(function, par1, par2, par3, par4) 该函数以数值方式计算 MAPLE 中特殊函数function的值,函数的参数由 par1、par2、par3、par4 指定,最多可以指定四个参数。 mfunlist:采用 MATLAB 注释语句列出能被 mfun 计算的一些重要 MAPLE 函数列表; mhelp:查阅 MAPLE 库函数的联机帮助文件,以获取 MAPLE 库函数及其调用方法; maple:进入 MAPLE 的工作空间,直接对访问 MAPLE 的任意函数进行计算,并将结果返回至 MATLAB 工作空间。 x = 0:0.1:5.0; y = mfun(FresnelC,x);,(1)设 , 对f(x)和g(x)进行因式分解。 (2)运用 simplify 命令简化 ,并与采用 simple 命令得出的结果相比较。 (3)计算下列极限 a. b. (4)建立一个符号表达式 y=sin(a+b)2*xc),分别以变量 c 进行积分、以变量 x 从pi/2 到 pi 进行积分, (5)求符号矩阵 F 对变量 x 的一阶微分、对变量 a 的二阶微分 F=cos(a*x) sin(a+b)2*x) -sin(b*x) en;,上机练习,(6)建立一个包含 的符号表达式,并将该表达式转换为符号变量。 (7)用符号计算验证下述三角恒等式的正确性。 (8)用 rand 函数建立一个 33 维随机数值矩阵,并将该数值矩阵转换为符号矩阵,比较它们的不同。 (9)分别用 1 位和 10 位有效数字计算 2*pi+3.1415 的值,并比较与采用 format 格式的差别。 (10)求下述矩阵的逆、特征根和矩阵的行列式值。,上机习题,(1)求解下列微分方程 a. y=(x+y)(x-y) b. xy=ytg(y/x),y(10)=1 c. y=-xsinx/cosy, y(2)=1 (2)求微分方程组 的解。 (3)求微分方程组 , 当初始条件为 f(0)=2,g(2)=5 时的解。 (4)练习使用单变量函数分析界面。,上机 练习与习题,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!