1 / 25

数学实验

数学实验. Matlab 符号运算 ( 一 ). Matlab 符号运算介绍. Matlab 符号运算是通过 符号数学工具箱 ( Symbolic Math Toolbox) 来实现的。 Matlab 符号数学工具箱是建立在功能强大的 Maple 软件的基础上的,当 Matlab 进行符号运算时,它就请求 Maple 软件去计算并将结果返回给 Matlab。.

ull
Download Presentation

数学实验

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数学实验 Matlab符号运算 (一)

  2. Matlab 符号运算介绍 • Matlab 符号运算是通过符号数学工具箱(Symbolic Math Toolbox)来实现的。Matlab 符号数学工具箱是建立在功能强大的 Maple 软件的基础上的,当 Matlab 进行符号运算时,它就请求 Maple 软件去计算并将结果返回给 Matlab。 • Matlab 的符号数学工具箱可以完成几乎所有得符号运算功能。主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、符号作图,符号代数方程求解,符号微分方程求解等。此外,该工具箱还支持可变精度运算,即支持以指定的精度返回结果。

  3. Matlab 符号运算特点 • 计算以推理方式进行,因此不受计算误差累积所带来的困扰。 • 符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。 • 符号计算指令的调用比较简单,与数学教科书上的公式相近。 • 符号计算所需的运行时间相对较长。

  4. Matlab 符号运算举例 • 求一元二次方程 ax2 + bx + c = 0的根 >>solve('a*x^2+b*x+c') • 求的根 f (x) = (cosx)2的一次导数 >>x=sym('x'); >>diff(cos(x)^2) • 计算 f (x) = x2在区间 [a, b]上的定积分 >>syms a b x; >>int(x^2,a,b)

  5. 符号对象与符号表达式 • 在进行符号运算时,必须先定义基本的符号对象,可以是符号常量、符号变量、符号表达式等。符号对象是一种数据结构。 • 含有符号对象的表达式称为符号表达式,Matlab 在内部把符号表达式表示成字符串,以与数字变量或运算相区别。 • 符号矩阵/数组:元素为符号表达式的矩阵/数组。

  6. 符号变量=sym(A) 参数 A可以是一个数或数值矩阵,也可以是字符串 例: >>a=sym('a') a是符号变量 b是符号常量 c是符号矩阵 符号对象的建立 • 符号对象的建立:sym和 syms • sym函数用来建立单个符号量,一般调用格式为: >>b=sym(1/3) >>c=sym('[1 ab; c d]')

  7. 例: >>syms a b c 符号对象的建立 • 符号对象的建立:sym和 syms • syms命令用来建立多个符号量,一般调用格式为: syms 符号变量1 符号变量2 ... 符号变量n >>a=sym('a'); >>b=sym('b'); >>c=sym('c');

  8. 符号表达式的建立 • 符号表达式的建立: 建立符号表达式通常有以下2种方法: (1) 用 sym函数直接建立符号表达式。(2) 使用已经定义的符号变量组成符号表达式。 例: >>y=sym('sin(x)+cos(x)') >> x=sym('x'); >>y=sin(x)+cos(x)

  9. 符号方程的建立 • equ=sym(‘equaion’) 符号方程的建立只有一种 eq1=sym(‘5*x=6+a’) eq1= 5*x=6+a

  10. 符号矩阵的创建 • 1. 利用 sym 直接创建。 • 2. 利用 syms 间接创建。 • 3. 由数值矩阵转化为符号矩阵。 例: M=[1 2;3 4]; S=sym(M) S= [1 2] [3 4]

  11. 2.5 数值变量、符号变量、字符变量的相互转化

  12. 1. x=double(s) 转换s为双精度型数值变量x。 • 2. x=str2num(s) 把字符串变量s转化为数值变量x。 • 3. x=numeric(s) 转换s为数值变量x。

  13. 4. x=sym(s) 转化s为符号变量x。 • 5. s=int2str(x) 将数x转换为字符变量s。 • 6. s=num2str(x) 将普通数值变量x转换为字符变量s。

  14. 2.6 调用Maple的符号计算能力

  15. 1.maple(maplestatement) 可以调用maple函数库中非图像处理的所有函数。 • 2.maple(‘function’,a1,a2,a3,…) 调用maple函数库中的函数function,其中a1,a2,a3 是function参数。

  16. 例1 求递推方程 见书上46页。 • 例2 求泰勒近似值 见书上46页。

  17. 2.7 图形化的符号函数计算器 符号函数计算器是由funtool.m 文件生成的,在命令窗口输入funtool 即可打开符号函数计算器。

  18. 基本运算符 • 普通运算:+、-、*、\、/、^ • 数组运算:.*、.\、./、.^ • 矩阵转置:'、.' 例: >> X=sym('[x11,x12;x21,x22;x31,x32]'); >>Y=sym('[y11,y12,y13;y21,y22,y23]'); >>Z1=X*Y; Z2=X'.*Y; 符号对象的基本运算 Matlab 符号运算采用的运算符和基本函数,在形状、名称和使用上,都与数值计算中的运算符和基本函数完全相同

  19. 符号对象的基本运算 • 基本函数 三角函数与反三角函数、指数函数、对数函数等

  20. 查找符号变量 • 查找符号表达式中的符号变量 findsym(expr)按字母顺序列出符号表达式 expr中的所有符号变量 findsym(expr, N)列出 expr中离 x最近的 N个符号变量 若表达式中有两个符号变量与 x的距离相等, 则ASCII 码大者优先。 常量 pi,i,j不作为符号变量

  21. findsym 举例 例: >>f=sym('2*w-3*y+z^2+5*a') >>findsym(f) >>f=sym(f,3) >>f=sym(f,1)

  22. 符号表达式的替换 • 用给定的数据替换符号表达式中的指定的符号变量 subs(f,x,a) 用 a替换字符函数f中的字符变量 xa是可以是 数/数值变量/表达式 或 字符变量/表达式 若 x是一个由多个字符变量组成的数组或矩阵, 则 a应该具有与 x相同的形状的数组或矩阵。

  23. 下面的命令运行结果会是什么? >>subs(f3,[x,y],[x+y,x+y]) subs 举例 • 例:指出下面各条语句的输出结果 f=2*u >>f=sym('2*u'); >>subs(f,'u',2) >>f2=subs(f,'u','u+2') >>a=3; >>subs(f2,'u',a+2) >>subs(f2,'u','a+2') >>syms x y >>f3=subs(f,'u',x+y) >>subs(f3,[x,y],[1,2]) ans=4 f2=2*(u+2) ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6

  24. 上机作业 • 指出下面的M1,M2,M3分别是什么,并上机验证。 >>a=1; b=2; c=3;d=4; >>M1=[a,b;c,d]; >>M2='[a,b;c,d]'; >>M3=sym('[a,b;c,d]'); • 下面语句计算出来的 c1,c2相等吗,为什么?上机验证。 >>a1=1e10; b1=1e-10; >>c1=(a1+b1-a1)/b1; >>a2=sym(a1); b2=sym(b1); >>c2=(a2+b2-a2)/b2; 补充:class(x)查看指定变量 x 的类型

More Related