Solving misfit using both L1 and L2 norm

7 次查看(过去 30 天)
Hi,
I have observed data and a vector "Pmodel ", which I am calculating following one equation. Now I need to have L1 norm and L2-norm solution of the difference between the observed and calculated parameter. Below, I followed the logic. Am I correct in this sense, kindly suggest.
----------------------------------------------
for i=1:length(s)
for j=1:length(h)
P_Model=C-(2.*v.*m_h(j))-(m_s(i).*log(v)); %Model
P_Obs=data(:,1);
Error(i,j)=sqrt(sum( sum( ((P_Model-P_Obs)).^2 ) )) %misfit calculation with L2 norm
Error(i,j)=sum(abs(P_Model-P_Obs)) %misfit calculation with L1 norm
end
end
------------------------------------------------------------------------------------------------------------------
Answer will be highly appreciated. Kindly suggest alternative if this is not correct apporach.
Thanking you in anticipation.
  6 个评论
Rock Interpreter
Rock Interpreter 2022-6-21
I am computing the residual (error) between the modeled and observed value, which I need to minimize using L1 and L2norm solution. This is an inverse problem. 's' and 'h' are two paramters that we want to get finally through this minimization. The values of s and h for which we will get minimum of the error will be the solution of the problem (Please refer to the figure attached; here x axis is 's' and y axis is P_Model / P_Obs). The loop is for having various possible values of 's' and 'h' to fit the data. Hope this clears your doubt. Please sugest whether my approach is correct or not.
Thank you.
Torsten
Torsten 2022-6-21
Instead of searching for optimal s and h in a loop, use lsqcurvefit to fit your parameters (and minimize the error).

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surrogate Optimization 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by