在MATLAB中计算函数的逆

时间:2013-09-29 20:44:18

标签: matlab

如何在MATLAB中计算函数的逆?假设你想计算f(x)= e ^ x的倒数,那么代码是什么?

3 个答案:

答案 0 :(得分:6)

如果分析方法失败(尽可能优先),请使用数值方法:

给出y并猜测反向的x0

x = fzero( @(x)(f(x)-y), x0 ); 
当x的范围以xmin为界时,

或低精度但更快的方法... xmax

xx = linspace( xmin, xmax, N );
yy = f(xx);
x = interp1(yy, xx, y);

当然,必须根据所需的准确度选择N.

答案 1 :(得分:2)

你可以使用符号数学工具箱http://www.mathworks.com/help/symbolic/finverse.html中的finverse 但是对于你的例子,你可以做ln()?

答案 2 :(得分:0)

单调函数的数值逆: 令v为单调递增的数字数组(表示v = sort(v))。 然后你可以非常简单地导出逆(vinv):

VINV = cumsum(HIST(V,长度(V)));

在此之后你可以通过一些缩放来美化结果,但基本上 cumsum of hist -thingi就可以了。

您可以测试以下内容:

x=randn(1,1000);
v=sort(x);
plot(v);
vinv=cumsum(hist(v,1000));
figure(2);
plot(vinv);