复合函数实现:compose
COMPOSE(f,g)
returns f(g(y)) where f = f(x) and g = g(y).
Here x is the symbolic variable of f as defined by SYMVAR and
y is the symbolic variable of g as defined by SYMVAR.
COMPOSE(f,g,z)
returns f(g(z)) where f = f(x), g = g(y), and
x and y are the symbolic variables of f and g as defined by
SYMVAR.
COMPOSE(f,g,x,z)
returns f(g(z)) and makes x the independent
variable for f. That is, if f = cos(x/t), then COMPOSE(f,g,x,z)
returns cos(g(z)/t) whereas COMPOSE(f,g,t,z) returns cos(x/g(z)).
COMPOSE(f,g,x,y,z)
returns f(g(z)) and makes x the independent
variable for f and y the independent variable for g. For
f = cos(x/t) and g = sin(y/u), COMPOSE(f,g,x,y,z) returns
cos(sin(z/u)/t) whereas COMPOSE(f,g,x,u,z) returns cos(sin(y/z)/t).
syms x y z t u;
f = 1/(1 + x^2); g = sin(y); h = x^t; p = exp(-y/u);
compose(f,g)
returns 1/(sin(y)^2 + 1)
compose(f,g,t)
returns 1/(sin(t)^2 + 1)
compose(h,g,x,z)
returns sin(z)^t
compose(h,g,t,z)
returns x^sin(z)
compose(h,p,x,y,z)
returns (1/exp(z/u))^t
compose(h,p,t,u,z)
returns x^(1/exp(y/z))
将函数显示为书面形式:pretty
subs
参考Matlab subs函数的用法
matlab中subs()是符号计算函数,详细用法可以在Matlab的Command Windows输入:help subs。subs()函数表示将符号表达式中的某些符号变量替换为指定的新的变量,常用调用方式为:
R = subs(S, new) 利用new的值代替符号表达式S中的默认符号。
R = subs(S) 用由调用函数或Matlab工作空间中获取的值替代了在符号表达式S中的所有当前的变量。
R = subs(S, old, new) 利用new的值代替符号表达式中old的值。old为符号变量或是字符串变量名。new是一个符号货数值变量或表达式。也就是说R = subs(S,old,new)在old=new的条件下重新计算了表达式S。这种替换第一次作为Matlab表达式被尝试,如果所有在new中的数值是双精度的,计算是以双精度算术运算进行的。讲new值转化为符号可以验证符号货变量的运算精度。
如果old和new是大小和类型相同的向量或是元包数组,每一个old的元素都将被相应新的元素替换。
如果S和old是标量,new是数组或元包数组,则扩展标量去计算一个数组结果。
如果new是个数值矩阵元包数组,替换讲运行为/智能元素/(i.e., subs(x*y,{x,y},{A,B}) returns A.*B when A and B are numeric)。
如果subs(s,old,new) 没有改变S,则将会试行subs(s,new,old)。这将为前面的版本提供向前的兼容性,消除记忆参数顺序。subs(s,old,new,0)不改变参数,如果S没有改变。
下面具体演示4种不同形式的OLD和NEW的调用效果:
f=@(x)acos(x)表示什么意思?其中@代表什么?
表示f为函数句柄,@是定义句柄的运算符。f=@(x)acos(x) 相当于建立了一个函数文件:
% f.m
function y=f(x)
y=acos(x);