主要内容

symfun

创建符号函数

说明

f(inputs) = formula 创建符号函数 f。例如,f(x,y) = x + yinputs 中的符号变量是输入参量。符号表达式 formula 是函数 f 的主体。

示例

f = symfun(formula,inputs) 是创建符号函数的形式语法方式。

示例

f = symfun(fM)symfunmatrix 类型的符号矩阵函数 fM 转换为 symfun 类型的符号函数 f (自 R2024b 起)

示例

示例

全部折叠

定义符号函数 f(x,y) = x + y。首先,使用 syms 创建该函数。然后定义该函数。

syms f(x,y)
f(x,y) = x + y
f(x, y) = x+y

x = 1y = 2f 的值。

f(1,2)
ans = 3

使用形式语法再次定义该函数。

syms x y
f = symfun(x+y,[x y])
f(x, y) = x+y

使用 formula 返回符号函数的主体。您可以使用该主体执行操作,例如对该函数进行索引。使用 argnames 返回符号函数的参量。

对符号函数 [x^2, y^4] 进行索引。由于符号函数是标量,因此您无法直接对该函数进行索引,而是对该函数的主体进行索引。

syms f(x,y)
f(x,y) = [x^2, y^4];
fbody = formula(f);
fbody(1)
ans = x2
fbody(2)
ans = y4

返回该函数的参量。

fvars = argnames(f)
fvars = (xy)

创建两个符号函数。

syms f(x) g(x)
f(x) = 2*x^2 - x;
g(x) = 3*x^2 + 2*x;

将这两个符号函数组合成数据类型为 symfun 的另一个符号函数 h(x)

h(x) = [f(x); g(x)]
h(x) = 

(2x2-x3x2+2x)

计算 x=1x=2 时函数 h(x) 的值。

h(1)
ans = 

(15)

h(2)
ans = 

(616)

您还可以将这两个函数组合成由数据类型为 sym 的符号表达式组成的数组。

h_expr = [f(x); g(x)]
h_expr = 

(2x2-x3x2+2x)

h_expr 进行索引以访问第一个和第二个符号表达式。

h_expr(1)
ans = 2x2-x
h_expr(2)
ans = 3x2+2x

自 R2024b 起

创建 2×12×2 符号矩阵变量来表示矩阵 XA

syms X [2 1] matrix
syms A [2 2] matrix

创建两个符号矩阵函数来表示函数 F(X,A)F(X,A)/XT。创建符号矩阵函数时,在工作区中保留符号矩阵变量 XA 的现有定义。符号矩阵函数需要大小与 XA 相同的矩阵作为其输入参量。

syms F(X,A) [1 1] matrix keepargs
syms dF(X,A) [2 1] matrix keepargs

定义函数 F(X,A)=XT A X 并求其导数 F(X,A)/XT。所得到的符号矩阵函数用 XA 的矩阵表示法表示。

F(X,A) = X.'*A*X
F(X, A) = XTAX
dF(X,A) = diff(F,X.')
dF(X, A) = AX+ATX

将符号矩阵函数的数据类型从 symfunmatrix 转换为 symfun。所得到的符号函数用 XA 的矩阵元素的标量表示法表示。这些函数接受变量作为其输入参量。

Fsymfun = symfun(F)
Fsymfun(X1, X2, A1_1, A1_2, A2_1, A2_2) = X1A1,1X1+A1,2X2+X2A2,1X1+A2,2X2
dFsymfun = symfun(dF)
dFsymfun(X1, X2, A1_1, A1_2, A2_1, A2_2) = 

(2A1,1X1+A1,2X2+A2,1X2A1,2X1+A2,1X1+2A2,2X2)

输入参数

全部折叠

函数体,指定为符号表达式、符号表达式向量或可转换为由 sym 数据类型的符号表达式组成的矩阵。

示例: x + y

输入参量或函数的参量,分别指定为符号变量或由符号变量组成的数组。

示例: [x,y]

数据类型: sym

自 R2024b 起

要转换的符号矩阵函数,指定为符号矩阵函数。

或者,您可以使用 symfunmatrix2symfun 将符号矩阵函数转换为符号函数。

数据类型: symfunmatrix

输出参量

全部折叠

符号函数,以 symfun 对象形式返回。

虽然函数 f 的数据类型为 symfun,但计算函数(例如 f(1,2))的数据类型为 sym

版本历史记录

在 R2012a 中推出

全部展开