![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/255811/image.png)
Solving a non linear least square of a sum function with two unknowns
1 view (last 30 days)
Show older comments
Hello,
i have a Chi-Square merit function with two unknown k1 and k2. Unfortunately, I don't know exactly which syntax to use to minimize this function in order to determine k1 and k2.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/255673/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/255674/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/255675/image.png)
Unfortunately, I am also relatively new with Matlab. I would be very happy about a step by step explanation. I have already found out that lsqnonlin can be used as a solver.
I appreciate your help. Thank you.
2 Comments
Star Strider
on 18 Dec 2019
Note that lsqnonlin fits a function to data.
Do you have a matching vector for
?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/255811/image.png)
Accepted Answer
Matt J
on 18 Dec 2019
Edited: Matt J
on 19 Dec 2019
It would look like this,
kInitial = __________; %initial guess of k
kOptimal = lsqnonlin(@(k) residual(k,am,bm,cm,g,ch,bh,ah) , kInitial); %do the optimization
function r=residual(k,am,bm,cm,g,ch,bh,ah)
k1=k(1); %extract k(i) into separate variables, for convenience
k2=k(2);
numerator=cm+bm*k2+am*k1; %calculate numerator expression for all m
denominator=ch+bh*k2+ah*k1; %calculate demonator expression for all m
r=numerator./denominator - g; %calculate the vector of residuals, for all m
end
3 Comments
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!