How can I iteratively solve an algebraic equation?

Hi guys, How can I iteratively solve this equation z=(4.25*x+17)*y^(0.045*x-0.782) so that I end up with x=...? I was told my best chance would be to use Matlab...However, being a complete newbie to the software I think this is beyond my plane of existence! I tried to use the solve function solve('(4.25*x+17)*y^(0.045*x-0.782)-z,x'), but I keep getting an empty sym. Any help would be amazing! Thanks!

 Accepted Answer

My primitive version of ‘solve’ gives a non-iterative solution for x in terms of the “lambertw” function:
x = -200/9*(9/50*log(y)-lambertw(9/850*y^(481/500)*z*log(y)))/log(y)

1 Comment

Used your equation and it is working really well! Thank you so much!

Sign in to comment.

More Answers (1)

Using solve, with symbolic (unknown) values for y and z, will never succeed. It is quite easy to formulate a problem with no analytical solution. This is one of them. It is also why solve failed to return an answer. There is no magic here.
If you have fixed, numeric values for y and z, then you can search for a numerical solution. vpasolve will suffice, or use fzero. Again though, there is NO functional form that you can write down for x as a function of y and z.

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!