Hi all, could you please help me to solve this equation either numerically of symbolically.
Mostra commenti meno recenti
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
Risposte (2)
Ahmed A. Selman
il 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.. :)
1 Commento
Nic
il 18 Apr 2013
Walter Roberson
il 17 Apr 2013
0 voti
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 Commenti
Walter Roberson
il 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
il 19 Apr 2013
Modificato: Walter Roberson
il 19 Apr 2013
Walter Roberson
il 19 Apr 2013
Your equation has "log*" in it instead of log(something)
Categorie
Scopri di più su Numeric Solvers in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!