7.5 符号函数的操作
MATLAB具有对符号表达式执行更高级运算的功能。MATLAB提供了把两个符号函数复合成一个符号函数的功能函数,同时也提供了对符号函数求函数表达式的逆功能函数等。
本节讲解符号函数的操作,主要包含符号函数的复合运算及符号函数的求逆运算。复合运算的功能函数为compose,求逆运算的功能函数为finverse。
7.5.1 复合函数操作
在MATLAB中,符号表达式的复合函数运算主要是通过compose函数来实现的,该函数的调用格式如下。
● compose(f,g):返回复合函数f(g(y)),此处,f=f(x),g=g(y)。其中,x是findsym定义的f函数的符号变量,y是findsym定义的g函数的符号变量。
● compose(f,g,x,z):返回自变量为z的复合函数f(g(z)),并且使x成为f函数的独立变量。
例7-23:compose复合函数示例。
在命令行窗口中输入:
syms x y; f = sym(x + x^-1) g = sym(sin(x)) h = sym(1 + y^2) compose(f, g)
输出结果:
f = x + 1/x g = sin(x) h = y^2 + 1 ans = sin(x) + 1/sin(x)
在命令行窗口中输入:
compose(g, f)
输出结果:
ans = sin(x + 1/x)
在命令行窗口中输入:
compose(f, h, 'x', 't')
输出结果:
ans = 1/(t^2 + 1) + t^2 + 1
7.5.2 反函数操作
在MATLAB中,符号表达式的反函数运算主要是通过函数finverse来实现的。finverse函数的调用格式如下。
● g=flnverse(f):返回符号函数f的反函数g。其中,f是一个符号函数表达式,其变量为x。求得的反函数g是一个满足g(f(x))=x的符号函数。
● g=flnverse(f,v):返回自变量为v的符号函数f的反函数。求得的反函数g是一个满足g(f(v))=v的符号函数。当f包含不止一个符号变量时,往往使用这种求反函数的调用格式。
例7-24:finverse反函数示例。
在命令行窗口中输入:
syms x y; f1 = sym(1 / (sin(x) + cos(x))) finverse(f1)
输出结果:
f1 = 1/(cos(x) + sin(x)) ans = -log((2^(1/2)*(- x^2*2i + 1i)^(1/2) + 1 + 1i)/(2*x))*1i
在命令行窗口中输入:
f2 = sym(x^2 + 2 * x * y + y^2) finverse(f2, y)
输出结果:
f2 = x^2 + 2*x*y + y^2 ans = y^(1/2) - x