Getting only one root for a quadratic function with mutiple variables
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentar
John D'Errico
am 10 Jul. 2019
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.
Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!