第二讲 MATLAB的数值计算.ppt
《第二讲 MATLAB的数值计算.ppt》由会员分享,可在线阅读,更多相关《第二讲 MATLAB的数值计算.ppt(60页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第三讲 MATLAB的符号运算, matlab 不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包SymbolicMath Toolbox,符号运算的功能,符号表达式、符号矩阵的创建符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程,一、符号运算的基本操作,什么是符号运算与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。,特点: 运算对象可以是没赋值的符号变量 可以获得任意精度的解Symbolic Math Toolbox符号运算工具包通过调用Maple软件实现符号计算的。ma
2、ple软件主要功能是符号运算, 它占据符号软件的主导地位。,2. 符号变量与符号表达式,f = sin(x)+5xf 符号变量名sin(x)+5x 符号表达式 符号标识符号表达式一定要用 单引 号括起来matlab才能识别。, 的内容可以是符号表达式,也可以是符号方程。例: f1=ax2+bx+c 二次三项式 f2= ax2+bx+c=0 方程 f3=Dy+y2=1 微分方程符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算,3.符号矩阵的创建 数值矩阵A=1,2;3,4 A=a,b;c,d 不识别用matlab函数sym创建矩阵(symbolic的缩写)命令
3、格式:A=sym( ) 符号矩阵内容同数值矩阵 需用sym指令定义 需用 标识,例如:A = sym(a , 2*b ; 3*a , 0) A = a, 2*b 3*a, 0 这就完成了一个符号矩阵的创建。注意:符号矩阵的每一行的两端都有方 括号,这是与 matlab数值矩阵的一个重要区别。,用字符串直接创建矩阵,模仿matlab数值矩阵的创建方法 需保证同一列中各元素字符串有相 同的长度。,例:A = a,2*b; 3*a, 0 A = a, 2*b 3*a, 0, 符号矩阵的修改,a.直接修改 可用、 键找到所要修改的矩阵,直接修改 b.指令修改 用A1=sym(A,new) 来修改。 用
4、A1=subs(A, new, old)来修改 A1=subs(S, old ,new),例如:A = a, 2*b 3*a, 0A1=sym(A,2,2, 4*b) A1 = a, 2*b 3*a, 4*b,A(2,2)=4*bA3 = a, 2*b 3*a, 4*b,A2=subs(A1, c, b) A2 = a, 2*c 3*a, 4*c,将数值矩阵转化为符号矩阵 函数调用格式:sym(A)A=1/3,2.5;1/0.7,2/5A = 0.3333 2.5000 1.4286 0.4000sym(A)ans = 1/3, 5/210/7, 2/5, 符号矩阵与数值矩阵的转换,将符号矩阵
5、转化为数值矩阵函数调用格式: numeric(A)A = 1/3, 5/210/7, 2/5numeric(A)ans = 0.3333 2.5000 1.4286 0.4000,符号矩阵运算 数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c; a=a*b ;A=2*a2+3*a-5等。 而符号运算就不同了,所有涉及符号运算的操作都有专用函数来进行,二、符号运算,符号矩阵运算的函数:symadd(a,d) 符号矩阵的加symsub(a,b) 符号矩阵的减symmul(a,b) 符号矩阵的乘symdiv(a,b) 符号矩阵的除sympow(a,b) 符号矩阵的幂运算symop(
6、a,b) 符号矩阵的综合运算,例1:f= 2*x2+3*x-5; g= x2+x-7;h= symadd(f,g)h= 3*x2+4*x-12例2:f=cos(x);g= sin(2*x);symop(f,/,g,+,f,*,g) ans =cos(x)/sin(2*x)+cos(x)*sin(2*x),例1:f= 2*x2+3*x-5; g= x2+x-7; syms x f=2*x2+3*x-5; g= x2+x-7; h=f+gh = 3*x2+4*x-12例2:f=cos(x);g= sin(2*x); syms x f=cos(x);g=sin(2*x); f/g+f*gans =c
7、os(x)/sin(x)+cos(x)*sin(x),符号运算函数:symsize 求符号矩阵维数charploy 特征多项式determ 符号矩阵行列式的值eigensys 特征值和特征向量inverse 逆矩阵transpose 矩阵的转置jordan 约当标准型simple 符号矩阵简化,2. 任意精度的数学运算,在symbolic中有三种不同的算术运算:数值类型 matlab的浮点算术运算有理数类型 maple的精确符号运算vpa类型 maple的任意精度算术运算,浮点算术运算1/2+1/3 (定义输出格式format long)ans =0.83333333333333符号运算sym
8、(1/2)+(1/3)ans = 5/6 精确解,任意精度算术运算digits(n) 设置可变精度,缺省16位vpa(x,n) 显示可变精度计算digits(25)vpa(1/2+1/3)ans =.8333333333333333333333333,vpa(5/6,40) ans =.8333333333333333333333333333333333333333 a=sym(1/4,exp(1);log(3),3/7)a = 1/4,exp(1)log(3), 3/7vpa(a,10)ans =.2500000000, 2.7182818281.098612289, .4285714286
9、,diff(f) 对缺省变量求微分diff(f,v) 对指定变量v求微分diff(f,v,n) 对指定变量v求n阶微分int(f) 对f表达式的缺省变量求积分int(f,v) 对f表达式的v变量求积分int(f,v,a,b) 对f表达式的v变量在(a,b) 区间求定积分,3. 符号微积分与积分变换,int(被积表达式,积分变量,积分上限, 积分下限) 定积分,缺省时为不定积分,mtaylor(f,n) 泰勒级数展开ztrans(f) Z变换Invztrans(f) 反Z变换Laplace(f) 拉氏变换Invlaplace(f) 反拉氏变换fourier(f) 付氏变换Invfourier(f
10、) 反付氏变换,例1.计算二重不定积分,F=int(int(x*exp(-x*y),x),y)F= 1/y*exp(-x*y)例2.计算 f=x*exp(-x*10)的Z变换 F=ztrans(f) F= z*exp(-10)/(z-exp(-10)2, syms x y F=int(int(x*exp(-x*y),x),y)F =1/y*exp(-x*y) syms x f=x*exp(-x*10); F=ztrans(f) F=ztrans(x*exp(-x*10);F =z*exp(-10)/(z-exp(-10)2,例3. 计算指数函数eAt。用拉氏反变换法计算eAt的公式为: eAt
11、 = L-1(SI-A)-1系统矩阵A=,结果:, a=0 1;-2 -3; syms s b=(s*eye(2)-a)b = s, -1 2, s+3 B=inv(b) (s+3)/(s2+3*s+2), 1/(s2+3*s+2) -2/(s2+3*s+2), s/(s2+3*s+2), b11=ilaplace(sym(b,1,1);b(1,1)=b11; b12=ilaplace(sym(b,1,2);b(1,2)=b12; b21=ilaplace(sym(b,2,1);b(2,1)=b21; b22=ilaplace(sym(b,2,2);b(2,2)=b22; bb = -exp(
12、-2*t)+2*exp(-t), exp(-t)-exp(-2*t) -2*exp(-t)+2*exp(-2*t), 2*exp(-2*t)-exp(-t),4.符号代数方程求解,matlab符号运算能够解一般的线性方程、非线性方程及一般的代数方程、代数方程组。当方程组不存在符号解时,又无其他自由参数,则给出数值解。命令格式:solve(f) 求一个方程的解Solve(f1,f2, fn) 求n个方程的解,例1. f = ax2+bx+c 求解f=a*x2+b*x+c; solve(f) 对缺省变量x求解ans =1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 matlab 数值 计算
限制150内