Hi all, could you please help me to solve this equation either numerically of symbolically.
Show older comments
I tried to solve this equation by using following code but could not.
eq = '(y*(lo-y))*((1-v)+((1-v^2)*(rc^2-y^2)/(rc^2+y^2)))*(((1/(lo*(lo-y)))-((1/lo^2)*log((lo-y)/y)))-((1/(lo*(lo-b)))-((1/lo^2)*log((lo-b)/b))))-(kw)==0';
[y] = solve (eq,y)
Warning: Explicit solution could not be found.
> In solve at 169
In sy1 at 15
y =
[ empty sym ]
In that equation everything is known except y.
Could you please help to solve this equation .
regards Nic
Answers (2)
Ahmed A. Selman
on 17 Apr 2013
If all variables other than (y) are known, then let's write some notes here:
1) Try to first define the variables, namely: kw, lo, rc, v, and b. This might ease up the syms solution a lot.
2) Reduce the number of symbols used, since there are few terms that can be replaced with constants as: (v^2-1), ln(-(b-lo)/b), 1/(lo*(b-lo)).
3) use the function pretty to show your equation (eq) more clearly - check it with what you originally want to solve, and apologies for the large space it'll take, so:
pretty(eq)
/ 2 2 2 \
| (v - 1) (rc - y ) |
- kw - y (lo - y) | v + ------------------- - 1 |
| 2 2 |
\ rc + y /
/ / b - lo \ / lo - y \ \
| ln| - ------ | ln| ------ | |
| 1 1 \ b / \ y / |
| ----------- + ----------- + -------------- - ------------ |
| lo (b - lo) lo (lo - y) 2 2 |
\ lo lo /
and this looks like:
eq = F(y)*G(y)-kw = 0
a special case when kw = 0, then
F(y)*G(y) = H(y) = 0
in such case, solutions of either
F(y) = 0 or
G(y) = 0
are also, solutions of H(y).
I've honestly tried to solve it with some numeric assumptions (to achieve #1 above), and it took a long time.. so I thought to pass my ideas here since they might help you, or others willing to help.. :)
Walter Roberson
on 17 Apr 2013
0 votes
You are asking to solve the equation for the variable "x", but there is no "x" in the equation.
On the other hand, the warning message you show apparently has an assignment to "y", and that assignment does not occur in your code.
3 Comments
Walter Roberson
on 17 Apr 2013
If we assume that the solve() is really with respect to y, then there are no analytic roots, and you will need to solve numerically.
If you could give some sample parameter values, we could do a bit of testing. With the random parameter values I dropped in, there were no real roots, but it is likely I did not happen to explore plausible areas. Especially if some of the parameters are negative: that might allow for real roots.
Nic
on 19 Apr 2013
Edited: Walter Roberson
on 19 Apr 2013
Walter Roberson
on 19 Apr 2013
Your equation has "log*" in it instead of log(something)
Categories
Find more on Numeric Solvers in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!