您的位置:首页 > 编程语言 > MATLAB

MATLAB的符号计算

2015-08-10 18:02 393 查看
所谓符号计算是指在运算时,无须事先对变量赋值,而将所得到结果以标准的符号形式来表示。

例如,在符号变量运算过程中pi就用pi表示,而不是具体的近似数值3.14或3.14159。使用符号变量进行运算能最大限度减少运算过程中因舍入造成的误差。符号变量也便于进行运算过程的演示。

一、符号计算基础

(一) 定义符号变量

参与符号运算的对象可以是符号变量、符号表达式或符号矩阵。符号变量要先定义,后引用。可以用sym函数、syms函数将运算量定义为符号型数据。引用符号运算函数时,用户可以指定函数执行过程中的变量参数;若用户没有指定变量参数,则使用默认的变量作为函数的变量参数。

1、sym函数

sym函数的主要功能是创建符号变量,以便进行符号运算,也可以用于创建符号表达式或符号矩阵。用sym函数创建符号变量的一般格式为:

x = sym(‘x’)

其目的是将’x’创建为符号变量,以x作为输出变量名。每次调用该函数,可以定义一个符号变量。

(一) 定义符号变量

【例2】已知一复数表达式 z=x+i*y, 试求其共轭复数,并求该表达式与其共轭复数乘积的多项式。

为了使乘积表达式x^2+y^2非负,这里,把变量x和y定义为实数。

x=sym(‘x’,’real’);

y=sym(‘y’,’real’);

z=x+i*y; %定义复数表达式

conj(z); %求共轭复数

expand(z*conj(z)) %求表达式与其共轭复数乘积的

多项式

ans =

x^2+y^2

若要去掉’x’的属性,可以使用下面语句

x = sym(‘x’,’unreal’)

将’x’创建为纯格式的符号变量。

2、syms函数

syms函数的功能与sym函数类似。syms函数可以在一个语句中同时定义多个符号变量,其一般格式为:

syms arg1 arg2 …argN

用于将rg1, arg2,…,argN等符号创建为符号型数据。

(二)默认符号变量

在数学表达式中,一般习惯于使用排在字母表中前面的字母作为变量的系数,而用排在后面的字母表示变量。例如:

f=ax2+bx+c

表达式中的a,b,c通常被认为是常数,用作变量的系数;而将x看作自变量。

例如,数学表达式

f=xn

g=sin(at+b)

根据数学式中表示自变量的习惯,默认a,b,c为符号常数,x为符号变量。

若在MATLAB中表示上述表达式,首先用syms 函数定义a,b,n,t,x为符号对象。在进行导数运算时,由于没有指定符号变量,则系统采用数学习惯来确定表达式中的自变量,默认a,b,c为符号常数,x,t为符号变量。

即 : 对函数f求导为:df/dx

对函数g求导为:dg/dt



(四) 生成符号函数

将表达式中的自变量定义为符号变量后,赋值给符号函数名,即可生成符号函数。例如有一数学表达式:

其用符号表达式生成符号函数fxy的过程为:

syms a b c x y %定义符号运算量

fxy=(a*x^2+b*y^2)/c^2 %生成符号函数

生成符号函数fxy后,即可用于微积分等符号计算。

(五)标准代数运算

很多标准的代数运算可以在符号表达式上执行,函数symadd、symsub、symmul和symdiv为加、减、乘、除两个表达式,sympow将一个表达式上升为另一个表达式的幂次。

f= ' 2*x^2+3*x-5 ' % define the symbolic expression

>>f=

2*x^2+3*x-5

>> g= ' x^2-x+7 '

g=

x^2-x+7

>> symadd(f,g) % find an expression for f+g

ans= 3*x^2+2*x+2

>> symsub(f,g) % find an expression for f-g

ans= x^2+4*x-12

>> symmul(f,g) % find an expression for f*g

ans= (2*x^2+3*x-5)*(x^2-x+7)

>> symdiv(f,g) % find an expression for f/g

ans= (2*x^2+3*x-5)/(x^2-x+7)

>> sympow(f, ' 3*x ' ) % the same as sym(A)^sym(B)

ans= (2*x^2+3*x-5)^3*x
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: