MATLAB符号计算

1.  建立符号对象

建立符号变量和符号常量
MATLAB提供了两个建立符号对象的函数:sym和syms,两个函数的用法不同。
  (1) sym函数
  sym函数用来建立单个符号量,一般调用格式为:
符号量名=sym('符号字符串')
该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。
应用sym函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。下面的命令用于比较符号常量与数值常量在代数运算时的差别。

  (2) syms函数
  函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为:
syms  符号变量名1 符号变量名2 … 符号变量名n
用这种格式定义符号变量时不要在变量名上加字符串分界符(‘),变量间用空格而不要用逗号分隔。

2. 符号表达式运算

  1 符号表达式的四则运算
  符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和symdiv来实现,幂运算可以由sympow来实现。
  2 符号表达式的提取分子和分母运算
  如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为:
  [n,d]=numden(s)
  该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。

  3 符号表达式的因式分解与展开
  MATLAB提供了符号表达式的因式分解与展开的函数,函数的调用格式为:
  factor(s):对符号表达式s分解因式。
  expand(s):对符号表达式s进行展开。
  collect(s):对符号表达式s合并同类项。
  collect(s,v):对符号表达式s按变量v合并同类项。

  4 符号表达式的化简
  MATLAB提供的对符号表达式化简的函数有:
  simplify(s):应用函数规则对s进行化简。
  simple(s):调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。

  5 符号表达式与数值表达式之间的转换
  利用函数sym可以将数值表达式变换成它的符号表达式。
  函数numeric或eval可以将符号表达式变换成数值表达式。

3 . 符号表达式中变量的确定

  MATLAB中的符号可以表示符号变量和符号常量。findsym可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为:
  findsym(s,n),函数返回符号表达式s中的n个符号变量,若没有指定n,则返回s中的全部符号变量。

4. 符号矩阵

  符号矩阵也是一种符号表达式,所以前面介绍的符号表达式运算都可以在矩阵意义下进行。但应注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。
由于符号矩阵是一个矩阵,所以符号矩阵还能进行有关矩阵的运算。MATLAB还有一些专用于符号矩阵的函数,这些函数作用于单个的数据无意义。例如
transpose(s):返回s矩阵的转置矩阵。
determ(s):返回s矩阵的行列式值。
其实,曾介绍过的许多应用于数值矩阵的函数,如diag、triu、tril、inv、det、rank、eig等,也可直接应用于符号矩阵。

5 . 符号微积分

   1 符号极限

limit函数的调用格式为:
(1) limit(f,x,a):求符号函数f(x)的极限值。即计算当变量x趋近于常数a时,f(x)函数的极限值。
(2) limit(f,a):求符号函数f(x)的极限值。由于没有指定符号函数f(x)的自变量,则使用该格式时,符号函数f(x)的变量为函数findsym(f)确定的默认自变量,即变量x趋近于a。

(3) limit(f):求符号函数f(x)的极限值。符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。
(4) limit(f,x,a,'right'):求符号函数f的极限值。'right'表示变量x从右边趋近于a。
(5) limit(f,x,a,‘left’):求符号函数f的极限值。‘left’表示变量x从左边趋近于a。

 1 %限1:
 2 syms a m x;
 3 f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(x+a);
 4 limit(f,x,a)
 5 ans =
 6 (1/2*a*exp(sin(a))+1/2*a-exp(tan(a))+1)/a
 7 %限2:
 8 syms x t;
 9 limit((1+2*t/x)^(3*x),x,inf)
10 ans =
11 exp(6*t)

  2  符号导数

diff函数用于对符号表达式求导数。该函数的一般调用格式为:
diff(s):没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。
diff(s,'v'):以v为自变量,对符号表达式s求一阶导数。
diff(s,n):按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。
diff(s,'v',n):以v为自变量,对符号表达式s求n阶导数。

  3  符号积分

符号积分由函数int来实现。该函数的一般调用格式为:
int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。
int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分。
int(s,v,a,b):求定积分运算。a,b分别表示定积分的下限和上限。该函数求被积函数在区间[a,b]上的定积分。a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。当函数f关于变量x在闭区间[a,b]上可积时,函数返回一个定积分结果。当a,b中有一个是inf时,函数返回一个广义积分。当a,b中有一个符号表达式时,函数返回一个符号函数。

  4  积分变换

  常见的积分变换有傅立叶变换、拉普拉斯变换和Z变换。

    1.傅立叶(Fourier)变换
    在MATLAB中,进行傅立叶变换的函数是:
    fourier(f,x,t):求函数f(x)的傅立叶像函数F(t)。
    ifourier(F,t,x):求傅立叶像函数F(t)的原函数f(x)。

    2.拉普拉斯(Laplace)变换
    在MATLAB中,进行拉普拉斯变换的函数是:
    laplace(fx,x,t):求函数f(x)的拉普拉斯像函数F(t)。
    ilaplace(Fw,t,x):求拉普拉斯像函数F(t)的原函数f(x)。

    3.Z变换
    当函数f(x)呈现为一个离散的数列f(n)时,对数列f(n)进行z变换的MATLAB函数是:
    ztrans(fn,n,z):求fn的Z变换像函数F(z)。
    iztrans(Fz,z,n):求Fz的z变换原函数f(n)。

6.  级  数

  1   级数符号求和

  求无穷级数的和需要符号表达式求和函数symsum,其调用格式为:
  symsum(s,v,n,m)
  其中s表示一个级数的通项,是一个符号表达式。v是求和变量,v省略时使用系统的默认变量。n和m是求和的开始项和末项。

  2  函数的泰勒级数
  MATLAB提供了taylor函数将函数展开为幂级数,其调用格式为:
  taylor(f,v,n,a)
  该函数将函数f按变量v展开为泰勒级数,展开到第n项(即变量v的n-1次幂)为止,n的缺省值为6。v的缺省值与diff函数相同。参数a指定将函数f在自变量v=a处展开,a的缺省值是0。

 

  

 

 

 

时间: 2024-09-20 09:32:59

MATLAB符号计算的相关文章

《MATLAB R2012a超级学习手册》一导读

前言 MATLAB R2012a超级学习手册 MathWorks公司在1984年推出了一套高性能的数值计算和可视化软件--MATLAB.MATLAB全称"矩阵实验室"(Matrix Laboratory),是由著名的线性代数软件包LINPACK和特征值计算软件包EISPACK中的子程序为基础发展而成的一种开放式程序设计语言. MATLAB集数值计算.矩阵运算和可视化图形于一体,可方便地应用于算法开发.数据采集.数学建模.系统仿真.数据分析.科学和工程绘图.应用软件开发等方面.MATLA

MATLAB的符号计算

所谓符号计算是指在运算时,无须事先对变量赋值,而将所得到结果以标准的符号形式来表示.例如,在符号变量运算过程中pi就用pi表示,而不是具体的近似数值3.14或3.14159.使用符号变量进行运算能最大限度减少运算过程中因舍入造成的误差.符号变量也便于进行运算过程的演示. 一.符号计算基础 (一) 定义符号变量参与符号运算的对象可以是符号变量.符号表达式或符号矩阵.符号变量要先定义,后引用.可以用sym函数.syms函数将运算量定义为符号型数据.引用符号运算函数时,用户可以指定函数执行过程中的变量

MATLAB 数据分析方法(第2版)1.2 MATLAB基础概述

1.2 MATLAB基础概述   1.2.1 MATLAB的影响   MATLAB源于Matrix Laboratory,即矩阵实验室,是由美国Mathworks公司发布的主要面对科学计算.数据可视化.系统仿真以及交互式程序设计的高科技计算环境.自1984年该软件推向市场以来,历经30多年的发展与竞争,现已成为适合多学科.多种工作平台的功能强大的大型软件.MATLAB应用广泛,其中包括信号处理和通信.图像和视频处理.控制系统.测试和测量.计算金融学及计算生物学等众多应用领域.在国际学术界,MAT

《MATLAB/Simulink系统仿真超级学习手册》——1.2 MATLAB简介

1.2 MATLAB简介 MATLAB/Simulink系统仿真超级学习手册 MATLAB是MATRIX LABORATORY的简称,它是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分. 1.2.1 MATLAB发展史 20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB. 1.正式走向市场

MATLAB 数据分析方法(第2版)1.3 MATLAB基本语法

1.3 MATLAB基本语法   1.3.1 数据类型   MATLAB中的基本数据类型有15种,主要是整型.浮点.逻辑.字符.日期和时间.结构数组.单元格数组以及函数句柄等.不论数据是怎样的类型,在计算机程序中总是以常量与变量的形式出现.   1.常量   在程序执行过程中,其值不能被改变的量为常量.MATLAB中的常量也称为数值量,简单地可理解为具体的数值.例如:   1)整型常量:如12.78.109.   2)实数(浮点)型常量:如5.+5.-5.55.0.0056.6.5e-5.100

《MATLAB R2012a超级学习手册》一1.1 MATLAB介绍

1.1 MATLAB介绍 MATLAB R2012a超级学习手册 MATLAB是一种高效的工程计算语言,它将计算.可视化和编程等功能集于一个易于使用的环境. 1.1.1 MATLAB的产品构架 MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算.控制系统.信息处理等领域的分析.仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞

《MATLAB神经网络超级学习手册》——1.2 MATLAB的特点及应用领域

1.2 MATLAB的特点及应用领域 MATLAB神经网络超级学习手册 MATLAB有两种基本的数据运算量:数组和矩阵,二者单从形式上不好区分.每一个变量可能被当作数组,也可能被当作矩阵,这要依靠所采用的运算法则或运算函数来定. 在MATLAB中,数组与矩阵的运算法则和运算函数是有区别的.但不论是MATLAB的数组还是MATLAB的矩阵,都已经改变了一般高级语言中使用数组的方式和解决矩阵问题的方法. 在MATLAB中,矩阵运算是把矩阵视为一个整体来进行,基本上与线性代数的处理方法一致.矩阵的加减

初学者怎么选择神经网络环境?对比MATLAB、Torch和TensorFlow

初学者在学习神经网络的时候往往会有不知道从何处入手的困难,甚至可能不知道选择什么工具入手才合适.近日,来自意大利的四位研究者发布了一篇题为<神经网络初学者:在 MATLAB.Torch 和 TensorFlow 中的快速实现(Neural Networks for Beginners A fast implementation in Matlab, Torch, TensorFlow)>的论文,对 MATLAB.Torch 和 TensorFlow 这三种神经网络工具进行了介绍和比较.机器之心

《MATLAB 7.0从入门到精通(修订版)》——导读

前 言 MATLAB是Mathworks公司于1984年推出的一套高性能的数值计算的可视化软件,它集数值分析.矩阵运算.信号处理和图形显示于一体,可方便地应用于数学计算.算法开发.数据采集.系统建模和仿真.数据分析和可视化.科学和工程绘图.应用软件开发等方面.MATLAB之所以能够被广泛应用,是因为它将科研工作者从乏味的Fortran.C编程中解放出来,使他们真正把精力放在科研和设计的核心问题上,从而大大提高了工作效率.在MATLAB环境中描述问题及编制求解问题的程序时,用户可以按照符合人们的科