How to use solve function
Mostrar comentarios más antiguos
Hi
I am trying to make a manual calculation of least square errors. This procedure involves a symbolic variable "n".
Here is my code:
syms n;
f = 0;
for i=1:length(distanceVal)
estimateCoeff = (meanVal(1,1) - 10*log10((distanceVal(1,i)+2)/2));
f = (f + sqrt((estimateCoeff*n - meanVal(1,i))^2));
end
f
dMSE = diff(f,n);
result = solve(dMSE,n)
Where meanVal is the mean of my measured values, distanceVal is the distance corresponding to each meanVal and estimateCoeff is the estimated coefficient for each estimated value (estimated value = n*estimatedCoeff = n*10*log(d/d_ref))
However the output of result = solve(dMSE,n) is: "Empty sym: 0-by-1" What does that mean? I expect result for n=[2,4] ...
4 comentarios
Torsten
el 29 de Jun. de 2017
Are you sure the "sqrt" is at the right place ?
You want to do L1-minimization and not L2-minimization ?
Best wishes
Torsten.
Tompak
el 29 de Jun. de 2017
Torsten
el 29 de Jun. de 2017
You can check the result of the L2 minimization since it has an analytical solution:
n = sum_{i=1}^{N} ((a_i)*(b_i)) / sum_{i=1}^{N} ((a_i)^2)
with
N = length(distanceVal)
a_i = meanVal(1,1) - 10*log10((distanceVal(1,i)+2)/2)
b_i = meanVal(1,i)
Best wishes
Torsten.
Richard Marveldoss
el 7 de Jul. de 2017
Could you help me in understanding your code as it doesn't seem like the typical least square errors? Can you explain more about the different variables used and maybe give a sample input dataset for the above code.
Respuestas (0)
Categorías
Más información sobre Assumptions en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!