24小时热门版块排行榜    

查看: 7924  |  回复: 2

d-touch

木虫 (著名写手)

[求助] 用MATLAB做线性拟合,如何固定截距? 已有2人参与

RT.用polyfit好像不能控制截距啊,有大神知道什么办法吗?
回复此楼

» 收录本帖的淘帖专辑推荐

程序

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FMStation

至尊木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
一元线性回归  
      用y=a*x+b来拟合一组数据{{x1,y1},{x2,y2}…{xn,yn}}  
matlab中使用polyfit  
      x=data(:,1);  
      y=data(:,2);  
      p=polyfit(x,y,1);  
p(1)为斜率a,p(2)为截距b  

http://www.it610.com/article/2646218.htm
2楼2016-08-25 22:55:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
d-touch: 金币+30, ★★★★★最佳答案, 谢谢您的解答! 2016-08-26 09:53:51
你这种情况属于过定点拟合,例如拟合曲线一定过(0,2)这个点,这样截距不就是可以控制为2了。
具体方法是先自己构造函数形式,然后用非线性拟合的办法去计算
下面是非线性指数拟合的举例代码,你也可以改成其他函数形式
t=[0.27 0.6 1.0 1.7 2 3 4 6];
c=[19.27 18.25 16.34 14.30 12.43 9.42 6.45 5.37];
f2 = @(b,t)b(1)*exp(-b(2)*t);
b0 = [0,0];
k = lsqcurvefit(f2,b0,t,c);
f2是构造你要拟合曲线的函数形式,b0是初始值,初始值给的越接近真实值,计算结果越好
k 就是最后计算得到的拟合系数
没有极限,只有超越!
3楼2016-08-26 09:27:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 d-touch 的主题更新
信息提示
请填处理意见