How to use solve function
Afficher commentaires plus anciens
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 commentaires
Torsten
le 29 Juin 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
le 29 Juin 2017
Torsten
le 29 Juin 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
le 7 Juil 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.
Réponses (0)
Catégories
En savoir plus sur Assumptions dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!