在定义域内单调的函数,为什么无法得到其反函数的解析解
原函数如下:
y=3*x/(2+x^3)
此函数在区间[0,1]内是单调的,我希望知道这个函数在这个区间的反函数的表达式。
利用MATLAB计算得到的结果:
((1 - 1/y^3)^(1/2) - 1)^(1/3) + 1/(y*((1 - 1/y^3)^(1/2) - 1)^(1/3))
但这个结果返回去对应不上。
例如:原函数x=0.1时,y=0.1499; 把y=0.1499 代入反函数,结果却为虚数1.3680 + 0.0000i。因为1 - 1/y^3是个负数,但却对它开二次方。
这是什么原因造成的呢?有没有大神能解释下或者支个招应该如何求解? 返回小木虫查看更多
今日热帖
Matlab解出来的是:
>> solve(f,'x')
ans =
[ 1/y*((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3)+1/((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3)]
[ -1/2/y*((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3)-1/2/((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3)+1/2*i*3^(1/2)*(1/y*((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3)-1/((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3))]
[ -1/2/y*((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3)-1/2/((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3)-1/2*i*3^(1/2)*(1/y*((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3)-1/((-y+((-1+y^3)/y)^(1/2))*y^2)^(1/3))]
你取第一个不合适吧!
可以考虑用牛顿迭代法,
函数是单调寒酸,其反函数不一定是单调函数。就楼主这个问题,可借助一元三次方程求根公式得到解析解。而在复数域里对应于一个y的值可能有三个x的根相对应。
举一个很简单的例子,y=e^x+lnx这个函数在定义域上单调递增,显然它的反函数的解析表达式不存在。
反函数存在和反函数的解析表达式存在是两回事。
反函数存在性与能否为显函数,这根本不是一回事,单调性保证了反函数存在,但不能保证能表达为显函数。