solving a complex equation
1 回表示 (過去 30 日間)
古いコメントを表示
I want to solve this equation to find a formula that computes "p" in terms of "q". Said differently, the variable is "p" and the parameter is "q".
the equation is " p.^2 .*(1-q).*(2.*q.*(1-p.^2)).^(2.*p) -2.*(1-p).*(1-q.*(1-p)).*(p+q.*(1-p))"
and there is a constraint for "p" and "q" since they are probabilities between 0 to 1
I will be so pleased if some one kindly let me know how to do it?
Thanks in advance
0 件のコメント
採用された回答
Matt J
2013 年 9 月 20 日
編集済み: Matt J
2013 年 9 月 20 日
I doubt a closed form expression exists. You could solve numerically, using fzero
fun=@(p) p.^2 .*(1-q).*(2.*q.*(1-p.^2)).^(2.*p) -2.*(1-p).*(1-q.*(1-p)).*(p+q.*(1-p));
p=fzero(fun,[0,1]);
However, it is unclear to me whether multiple solutions for p might exist for a given q, even when both are constrained to [0,1]. If so, fzero will find only one of them.
5 件のコメント
Matt J
2013 年 9 月 20 日
編集済み: Matt J
2013 年 9 月 20 日
No, I don't think a closed form expression is possible. If you didn't have the '^2*p' in there, it would be a 4th order polynomial in p. Closed form expressions do exist in that case for all the roots. They would be fairly ugly expressions and you would have to analyze which root(s) lay in [0,1].
With the power of 2*p, though, it looks rather unlikely you'd find something closed form. But, if you have the Symbolic Math Toolbox, you could try the SOLVE command, to see what it gives you.
その他の回答 (1 件)
Walter Roberson
2013 年 9 月 20 日
If the overall expression is to equal 0 (rather than it being of the form y = .... and needing to solve for given y and p), then the expression given has two solution families:
p = 0, q = 1
p = 1, q = anything in [0 to 1]
2 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!