Getting only one root for a quadratic function with mutiple variables

22 次查看(过去 30 天)
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 CenterFile Exchange 中查找有关 Physics 的更多信息

标签

产品


版本

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by