第3章 MATLAB符号计算
- 格式:ppt
- 大小:419.00 KB
- 文档页数:44
第三章MATLAB的符号计算MATLAB的数学计算分为数值计算和符号计算,在第二章中我们介绍了数值计算。
符号计算则是可以对未赋值的符号对象(可以是常数、变量、表达式)进行运算和处理,是MATLAB 处理数值功能的自然扩展。
MATLAB具有符号数学工具箱,将符号运算结合到MATLAB的数值运算环境。
符号运算可以实现微积分运算、表达式的化简以及求解代数方程和微分方程等。
3.1 符号表达式的建立在符号运算时,首先要定义基本的符号对象,然后才能进行符号运算。
符号对象是一种数据结构,包括符号常数、符号变量和符号表达式,用来存储代表符号的字符串。
在符号运算时,凡是由符号表达式所生成的对象也都是符号对象。
3.1.1 创建符号常量、变量和表达式符号常量是不含变量的符号表达式,用sym命令来创建符号常量。
语法:sym(‘常量’) %创建符号常量sym(‘arg’ , 参数) %把变量定义为符号对象sym(‘表达式’) %创建符号表达式sym(‘arg1’ , ‘arg2’ ,……,参数) %把变量定义为符号对象sym arg1 arg2 …, 参数%把变量定义为符号对象的简洁形式3.1.2 符号矩阵用sym和syms命令也可以创建符号矩阵。
例如:>>A=sym(‘[a, b ; c, d]’) 与下列相同>>syms a b c d>>A=[a, b ; c, d] 与下列相同>>B=’[a, b; c, d]’>>C=sym(B)3.2 符号表达式的代数运算由于MATLAB采用了重载技术,使得符号运算表达式的运算符和基本函数都与数值计算的几乎完全相同,使得符号运算的编程很方便。
例如:>> syms a b c d >>f=sym(‘2*x^2+3*x+4’)>>A=[a, b; c, d] >>g=sym(‘5*x+6’)>>det(A) >>f+g可以使用digits和vpa命令来实现任意精度的控制。
第3章 MATLAB符号计算符号计算则是可以对未赋值的符号对象(可以是常数、变量、表达式)进行运算和处理。
MATLAB具有符号数学工具箱(Symbolic Math Toolbox),将符号运算结合到MATLAB的数值运算环境。
符号数学工具箱是建立在Maple软件基础上的。
3.1 符号表达式的建立3.1.1 创建符号变量和表达式Symbolic Math Toolbox规定在进行符号计算时,首先要定义基本的符号对象然后才能进行符号运算。
创建符号变量和符号表达式可以使用sym和syms命令。
1. 使用sym命令创建符号变量和表达式语法:sym(‘变量’,参数) %把变量定义为符号对象2.使用syms命令创建符号变量和符号表达式语法:syms(‘arg1’, ‘arg2’, …,参数) %把字符变量定义为符号变量syms arg1 arg2 …,参数%把字符变量定义为符号变量的简洁形式说明:syms用来创建多个符号变量,这两种方式创建的符号对象是相同的。
参数设置和前面的sym命令相同,省略时符号表达式直接由各符号变量组成。
说明:参数用来设置限定符号变量的数学特性,可以选择为’positive’、’real’和’unreal’,’positive’表示为“正、实”符号变量,’real’表示为“实”符号变量,’unreal’表示为“非实”符号变量。
如果不限定则参数可省略。
【例3.1】创建符号变量,用参数设置其特性。
>> syms x y real %创建实数符号变量>> z=x+i*y; %创建z为复数符号变量>>real(z) %复数z的实部是实数xans =x【例3.2】创建符号表达式。
>> f1=sym('a*x^2+b*x+c')f1 =a*x^2+b*x+c【例3.3】使用syms命令创建符号变量和符号表达式。
>> syms a b c x %创建多个符号变量>>f2=a*x^2+b*x+c %创建符号表达式f2 =a*x^2+b*x+c3.1.2符号表达式的代数运算符号运算与数值运算的区别主要有以下几点:▪传统的数值型运算因为要受到计算机所保留的有效位数的限制,它的内部表示法总是采用计算机硬件提供的8位浮点表示法,因此每一次运算都会有一定的截断误差,重复的多次数值运算就可能会造成很大的累积误差。
《MATLAB原理及应用》实验报告第三章MATLAB的符号运算一.实验目的1、掌握符号对象的命名方法2、掌握符号表达式的基本运算3、掌握符号级数的求法二.实验设备计算机、MATLAB软件三.实验内容1.确定符号表达式的变量为了简化符号对象的操作和计算,MATLAB为用户提过了findsym命令。
r=findsym(S)确定符号表达式或者矩阵S中自由符号变量r=findsym(S,n)确定符号表达式或者矩阵S中靠近x最近的n个独立符号变量。
【实验3-1】使用MA TLAB的命令确定符号表达式的变量。
在MATLAB的命令窗口中输入下例内容:>> syms a x y z t确定下面简单符号表达式中的符号变量信息:>>findsym(sin(pi*t))ans =t确定下面简单符号表达式中的符号变量信息:>>findsym(x+i*y-j*z)ans =x, y, z确定下面简单符号表达式中的符号变量信息:>>findsym(a+y,1)ans =y2.符号表达式元算1.符号表达式的四则运算表达式的四则运算与数字运算一样,用+、-、/、运算符实现,其运算结果依然是一个符号表达式。
【实验3-2】在MATLAB的命令窗口中输入下例内容:>>f=sym('2*x^2+3*x-5');%定义符号表达式g=sym('x^2-x+7');f+gans =3*x^2+2*x+2ans =3*x^2+2*x+2>> f^gans =(2*x^2+3*x-5)^(x^2-x+7)3.符号表达式的提取分子和分母运算如果符号表达式是一个有理分式或可以展开为有理分式,可以可利用numden函数来提取符号表达式的分子或分母。
期一般调用格式为[n,d]=numden函数来提取符号表达式该函数提取的符号表达式s的分子和分母,分别将它们存放在n和d中。