# symfun

Create symbolic functions

## Description

example

f(inputs) = formula creates the symbolic function f. For example, f(x,y) = x + y. The symbolic variables in inputs are the input arguments. The symbolic expression formula is the body of the function f.

f = symfun(formula,inputs) is the formal way to create a symbolic function.

## Examples

collapse all

Define the symbolic function f(x,y) = x + y. First, create the function by using syms. Then define the function.

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

Find the value of f at x = 1 and y = 2.

f(1,2)
ans = $3$

Define the function again by using the formal way.

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

Return the body of a symbolic function by using formula. You can use the body for operations such as indexing into the function. Return the arguments of a symbolic function by using argnames.

Index into the symbolic function [x^2, y^4]. Since a symbolic function is a scalar, you cannot directly index into the function. Instead, index into the body of the function.

syms f(x,y)
f(x,y) = [x^2, y^4];
fbody = formula(f);
fbody(1)
ans = ${x}^{2}$
fbody(2)
ans = ${y}^{4}$

Return the arguments of the function.

fvars = argnames(f)
fvars = $\left(\begin{array}{cc}x& y\end{array}\right)$

Create two symbolic functions.

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

Combine the two symbolic functions into another symbolic function $h\left(x\right)$ with the data type symfun.

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

$\left(\begin{array}{c}2 {x}^{2}-x\\ 3 {x}^{2}+2 x\end{array}\right)$

Evaluate the function $h\left(x\right)$ at $x=1$ and $x=2$.

h(1)
ans =

$\left(\begin{array}{c}1\\ 5\end{array}\right)$

h(2)
ans =

$\left(\begin{array}{c}6\\ 16\end{array}\right)$

You can also combine the two functions into an array of symbolic expressions with the data type sym.

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

$\left(\begin{array}{c}2 {x}^{2}-x\\ 3 {x}^{2}+2 x\end{array}\right)$

Index into h_expr to access the first and the second symbolic expressions.

h_expr(1)
ans = $2 {x}^{2}-x$
h_expr(2)
ans = $3 {x}^{2}+2 x$

## Input Arguments

collapse all

Function body, specified as a symbolic expression, vector of symbolic expressions, or matrix of symbolic expressions that can be converted to sym data type

Example: x + y

Input argument or arguments of a function, specified as a symbolic variable or an array of symbolic variables, respectively.

Example: [x,y]

Data Types: sym

## Output Arguments

collapse all

Symbolic function, returned as a symfun object.

While the data type of the function f is symfun, the data type of the evaluated function, such as f(1,2), is sym.

## Version History

Introduced in R2012a