Getting only one root for a quadratic function with mutiple variables

16 ビュー (過去 30 日間)
Zee
Zee 2019 年 7 月 10 日
コメント済み: John D'Errico 2019 年 7 月 10 日
I am facing an issue finding the parameter ‘a’ that gives the least square difference (LSD) between two function:
f(x,y,n,g,a)= ((1-exp(-g*(x*y^n))) / (1-exp(-g)))
q(x,y,n,g,a)= ((a+1-sqrt((1+a)^2-(4*a*(((1-exp(-g*(x))) / (1-exp(-g))))*( ((1-exp(-g*(y^v))) / (1-exp(-g)))))))/(2*a))
LSD(x,y,n,g,a) = (f(x,y,n,g,a)-q(x,y,n,g,a))^2
However, when I do the differentiation and set it to 0, I do not get two values of the parameter ‘a’ even that the function is quadratic. Anyone knows how to solve this issue?
The code I used:
>> syms x y n g a
f(x,y,n,g,a)= ((1-exp(-g*(x*y^n))) / (1-exp(-g)))
q(x,y,n,g,a)= ((a+1-sqrt((1+a)^2-(4*a*(((1-exp(-g*(x))) / (1-exp(-g))))*( ((1-exp(-g*(y^v))) / (1-exp(-g)))))))/(2*a))
LSD(x,y,n,g,a) = (f(x,y,n,g,a)-q(x,y,n,g,a))^2
D=diff(LSD,a)
Parameter=solve(D,a)
f(x, y, n, g, a) =
(exp(-g*x*y^n) - 1)/(exp(-g) - 1)
q(x, y, n, g, a) =
(a - ((a + 1)^2 - (4*a*(exp(-g*x) - 1)*(exp(-g*y^v) - 1))/(exp(-g) - 1)^2)^(1/2) + 1)/(2*a)
LSD(x, y, n, g, a) =
((exp(-g*x*y^n) - 1)/(exp(-g) - 1) - (a - ((a + 1)^2 - (4*a*(exp(-g*x) - 1)*(exp(-g*y^v) - 1))/(exp(-g) - 1)^2)^(1/2) + 1)/(2*a))^2
D(x, y, n, g, a) =
2*(((2*a - (4*(exp(-g*x) - 1)*(exp(-g*y^v) - 1))/(exp(-g) - 1)^2 + 2)/(2*((a + 1)^2 - (4*a*(exp(-g*x) - 1)*(exp(-g*y^v) - 1))/(exp(-g) - 1)^2)^(1/2)) - 1)/(2*a) + (a - ((a + 1)^2 - (4*a*(exp(-g*x) - 1)*(exp(-g*y^v) - 1))/(exp(-g) - 1)^2)^(1/2) + 1)/(2*a^2))*((exp(-g*x*y^n) - 1)/(exp(-g) - 1) - (a - ((a + 1)^2 - (4*a*(exp(-g*x) - 1)*(exp(-g*y^v) - 1))/(exp(-g) - 1)^2)^(1/2) + 1)/(2*a))
Warning: The solutions are valid under the following conditions: exp(g) ~= 1 & ((0 < real(n) | n == 0) & (0 < real(v) | v == 0)
| y ~= 0) & exp(g)*exp(2*g*x*y^n) + exp(g*y^v)*exp(g*x)*exp(2*g*x*y^n) + exp(g*y^v)*exp(g*x)*exp(g)*exp(g*x*y^n) ~=
exp(g*y^v)*exp(g*x)*exp(g*x*y^n) + exp(g*y^v)*exp(g)*exp(2*g*x*y^n) + exp(g*x)*exp(g)*exp(2*g*x*y^n) & (4*(exp(-g*x) -
1)*(exp(-g*y^v) - 1)*(exp(g)*exp(2*g*x*y^n) - exp(g*y^v)*exp(g*x)*exp(g*x*y^n) + exp(g*y^v)*exp(g*x)*exp(2*g*x*y^n) -
exp(g*y^v)*exp(g)*exp(2*g*x*y^n) - exp(g*x)*exp(g)*exp(2*g*x*y^n) + exp(g*y^v)*exp(g*x)*exp(g)*exp(g*x*y^n)) + (exp(-g) -
1)^2*((exp(g)*exp(2*g*x*y^n) - exp(g*y^v)*exp(g*x)*exp(g*x*y^n) + exp(g*y^v)*exp(g*x)*exp(2*g*x*y^n) -
exp(g*y^v)*exp(g)*exp(2*g*x*y^n) - exp(g*x)*exp(g)*exp(2*g*x*y^n) +
exp(g*y^v)*exp(g*x)*exp(g)*exp(g*x*y^n))/(exp(g*y^v)*exp(g*x)*exp(g) - exp(g*y^v)*exp(g*x)*exp(g*x*y^n) +
exp(g*y^v)*exp(g*x)*exp(2*g*x*y^n) - exp(g*y^v)*exp(g*x)*exp(g)*exp(g*x*y^n)) - 1)^2*(exp(g*y^v)*exp(g*x)*exp(g) -
exp(g*y^v)*exp(g*x)*exp(g*x*y^n) + exp(g*y^v)*exp(g*x)*exp(2*g*x*y^n) - exp(g*y^v)*exp(g*x)*exp(g)*exp(g*x*y^n)) ~= 0 | exp(g) +
exp(2*g*x*y^n) == exp(g*x*y^n) + exp(g)*exp(g*x*y^n)).
To include parameters and conditions in the solution, specify the 'ReturnConditions' option.
> In solve>warnIfParams (line 508)
In solve (line 357)
Parameter =
-(exp(g)*exp(2*g*x*y^n) - exp(g*y^v)*exp(g*x)*exp(g*x*y^n) + exp(g*y^v)*exp(g*x)*exp(2*g*x*y^n) - exp(g*y^v)*exp(g)*exp(2*g*x*y^n) - exp(g*x)*exp(g)*exp(2*g*x*y^n) + exp(g*y^v)*exp(g*x)*exp(g)*exp(g*x*y^n))/(exp(g*y^v)*exp(g*x)*exp(g) - exp(g*y^v)*exp(g*x)*exp(g*x*y^n) + exp(g*y^v)*exp(g*x)*exp(2*g*x*y^n) - exp(g*y^v)*exp(g*x)*exp(g)*exp(g*x*y^n))
  1 件のコメント
John D'Errico
John D'Errico 2019 年 7 月 10 日
A quadratic is of the form:
a1*x^2 + a2*x + a3
What you have written has square roots of functions of a in it, you divde by a.
In what mathematics is what you have written quadratic? Just because you call something a quadratic does not make it so.

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangePhysics についてさらに検索

タグ

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by