is there something similar to Excel Solver in Matlab?
17 次查看(过去 30 天)
显示 更早的评论
Hi, I have a similar problem. To simplify assume a linear equation y=mx+c. I have values for the independent variable x, the actual y and want to solve for coefficients m and c. Using Excel Solver I would use random initial values for m and c in my equation, and get a fitted y, say y_fit. Then work the sum of squared residuals between y and y_fit [RSS = sum((y-yfit)^2)]. Then tell Solver to give me a solution for m and c which minimises RSS. Is this possible in Matlab? Can I make use of the Optimisation tool box to do this?
0 个评论
采纳的回答
Titus Edelhofer
2011-8-10
Hi,
take a look at lsqcurvefit http://www.mathworks.com/help/toolbox/optim/ug/lsqcurvefit.html from Optimization Toolbox. It should do what you are looking for ...
Titus
2 个评论
John C L Mayson II
2018-5-2
Hi Andrew, I am a beginner in MATLAB and currently struggling with the same problem. I visited the link uploaded by Titus but still couldn't figure it out. I have a set of equations which obtains a variable "b". In one of those equations, I assumed a constant value for a variable "a". Now I want to set variable "b" to 0.01 by changing variable "a". Can you please help if you have the time?
更多回答(1 个)
Fangjun Jiang
2011-8-10
From help robustfit.
x = (1:10)';
y = 10 - 2*x + randn(10,1); y(10) = 0;
bls = regress(y,[ones(10,1) x])
brob = robustfit(x,y)
scatter(x,y)
hold on
plot(x,brob(1)+brob(2)*x,'r-', x,bls(1)+bls(2)*x,'m:')
2 个评论
Fangjun Jiang
2011-8-10
I am not following. If you assume y=m*x+c, it means linear and the result from regress() is the result of minimizing RSS. If you want to do for example, y=n*x^2+m*x+c, then you can use regress(y,[ones(10,1) x x.^2]). There is no need to do iteration.
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!