【问题标题】:It Matlab, how do you mathematically get a quadratic line of best fit?它是 Matlab,您如何在数学上获得最佳拟合的二次线?
【发布时间】:2013-12-04 10:45:22
【问题描述】:

我无法在 Matlab 中获得最佳拟合的二次线。我们不会大声使用内置的最佳拟合函数行,而是必须计算它。这就是我所拥有的:

dat = load('co2.dat');
x = dat(:,1);
y= dat(:,2);
X=[ones(size(x)),x.^2];
z = X'*y;
S = X'*X;
U = chol(S);
w = U'\z;
c = U\w
axis tight;
plot(x,y,'o') 
q = 1959:2:2012; 
fit = c(1)+c(2)*q; 
hold on
plot(q,fit,'r');

这只是在 -1000 处绘制一条水平线。如果我去掉第 4 行中的 .^2 ,它会完美地进行线性拟合。也许我的问题更多地在于我缺乏最小二乘知识而不是 Matlab,但是,无论哪种方式,我都很难过(建议是否应该将其移至数学论坛)。有什么建议吗?

【问题讨论】:

    标签: matlab least-squares


    【解决方案1】:

    我改变了你的两行:

    X=[ones(size(x)), x, x.^2];
    

    和,

    fit = c(1)+c(2)*q+c(3)*q.^2;
    

    请试一试,谢谢。

    【讨论】:

    • 完美...谢谢。我没有建立必须扩展矩阵的连接。
    猜你喜欢
    • 2015-08-14
    • 1970-01-01
    • 2013-08-24
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 2012-10-01
    • 1970-01-01
    相关资源
    最近更新 更多