There is a problem I’m trying to solve, and these are the facts:
We have f(x) = 2x + 3x^(1.2) + 4.1x^(2.3) . The function g is inverse of f while for y>0 , g(y) has a unique value of z and f(z)=y. Also, there is no close form for function g. So, for each y, g(y) will be the solution of the following optimization problem:
g(y) = min_z( z ): f(z) <= y
Now how to write a cvx function to implement g(y)? (It said that input is a constant value of y . for example y=5 ).
To solve this, I defined function f in a separate script named f:
function f = f(x)
f = 2*x + 3*x^(1.2) + 4.1 *x^(2.3);
and then in a new script:
cvx_begin
variables z x y
y>=0
f(z)<=y
maximize(z)
cvx_end
It gives me an optimal value of z but how can I implement g(y)? Tried the finverse(f(x),y) but like what has been said, g does not have a close form. I appreciate it if someone helps me in this.