How to use solve function
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
Torsten
2017-6-29
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
2017-7-7
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.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Assumptions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!