如何在MATLAB中计算函数的逆?假设你想计算f(x)= e ^ x的倒数,那么代码是什么?
答案 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);