24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1607  |  回复: 9

zyj8119

木虫 (著名写手)


[交流] 【求助】polyfit的拟合效果不好,应该怎么修改?【已解决】

CODE:
function dpolydengyaxuanzexing(n)
clc;
x=[238,258,278,298,318,338,358];
y1=[2.409,4.219,5.553,9.241,23.425,23.75,25.142];
y2=[3.060,5.270,9.421,13.423,25.909,31.125,31.833];
y3=[3.393,5.452,9.077,11.5,25.454,29.315,29.333];
y4=[3.803,5.381,7.078,9.667,25.3,28.5,28.666];
plot(x,y1,'gx')
hold on
plot(x,y2,'b*')
hold on
plot(x,y3,'r+')
hold on
plot(x,y4,'mo')
xlabel('temperature(K)');ylabel('adsorption capacity(mmol/g)');
p1=polyfit(x,y1,n);
p2=polyfit(x,y2,n);
p3=polyfit(x,y3,n);
p4=polyfit(x,y4,n);
y1=polyval(p1,x);
y2=polyval(p2,x);
y3=polyval(p3,x);
y4=polyval(p4,x);
plot(x,y1,'g-');
hold on
plot(x,y2,'b-')
hold on
plot(x,y3,'r-')
hold on
plot(x,y4,'m-')
legend('100kpa in MCM-41 without APTS','100kpa in MCM-41 with 15APTS',...
    '100kpa in MCM-41 with 30APTS','100kpa in MCM-41 with 45APTS');
hold off
end

得到的图画是这样的:


[ Last edited by nono2009 on 2010-12-1 at 08:19 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

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

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by zyj8119 at 2010-11-29 12:38:24:
[code]function dpolydengyaxuanzexing(n)
clc;
x=[238,258,278,298,318,338,358];
y1=[2.409,4.219,5.553,9.241,23.425,23.75,25.142];
y2=[3.060,5.270,9.421,13.423,25.909,31.125,31.833];
y3=[3.393,5. ...

绿色曲线开始的部分效果很差。。。。粉红色的也是的。。。。
2楼2010-11-29 12:40:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

筱晴

铜虫 (初入文坛)



zyj8119(金币+1):谢谢参与
zyj8119(金币+5):这个貌似根本就没啥拟合啊。 2010-11-30 13:04:20

这个是n为6 的时候的拟合结果
3楼2010-11-30 13:01:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

筱晴

铜虫 (初入文坛)


zyj8119(金币+5):6的拟合效果跟不拟合都差别不大,呵呵。 2010-11-30 13:38:59
我就是把你程序中的n设置为6,出来的图像就是这样的
4楼2010-11-30 13:37:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)



zyj8119(金币+1):谢谢参与
N的值越大出现的龙格现象越严重,你只是显示了原数据点的图,并没有显示全区间的曲线。下面的就是n=6时的拟合图形

5楼2010-11-30 16:02:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by change0618 at 2010-11-30 16:02:30:
N的值越大出现的龙格现象越严重,你只是显示了原数据点的图,并没有显示全区间的曲线。下面的就是n=6时的拟合图形


怎么上面的那个人n=6的时候,拟合与不拟合差别很小?
6楼2010-11-30 16:08:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)


★ ★
nono2009(金币+2):鼓励应助 2010-12-01 08:18:59
因为他只画了六个拟合值的折线图,n=6时,拟合值跟数据点基本重合,但是非数据点就不怎么好了。数值分析课本上说过多项式拟合N值越大,龙格现象越严重,所以采用三次分段插值拟合。

[ Last edited by change0618 on 2010-11-30 at 16:19 ]
7楼2010-11-30 16:15:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by change0618 at 2010-11-30 16:15:56:
因为他只画了六个拟合值的折线图,n=6时,拟合值跟数据点基本重合,但是非数据点就不怎么好了

我在cfttools里面,用GUI中样条函数拟合了,效果还行,但是不知道怎么把格式搞成与plot一样的legend里面多余的那几条线的标识不知道怎么去掉。。。
8楼2010-11-30 16:20:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)


zyj8119(金币+4):谢谢提示。。。 2010-11-30 16:23:44
可以分别试试 interp1   spline  csaps  spap2  spaps 等函数
9楼2010-11-30 16:22:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)


zyj8119(金币+4):非常感谢,此贴结贴。。。 2010-11-30 16:59:48
cftool用的是fit函数,'smoothingspline‘选项


function dpolydengyaxuanzexing
clc;
x=[238,258,278,298,318,338,358];
y1=[2.409,4.219,5.553,9.241,23.425,23.75,25.142];
y2=[3.060,5.270,9.421,13.423,25.909,31.125,31.833];
y3=[3.393,5.452,9.077,11.5,25.454,29.315,29.333];
y4=[3.803,5.381,7.078,9.667,25.3,28.5,28.666];
plot(x,y1,'gx')
hold on
plot(x,y2,'b*')
hold on
plot(x,y3,'r+')
hold on
plot(x,y4,'mo')
xlabel('temperature(K)');ylabel('adsorption capacity(mmol/g)');
yy1=fit(x',y1','smoothingspline');
yy2=fit(x',y2','smoothingspline');
yy3=fit(x',y3','smoothingspline');
yy4=fit(x',y4','smoothingspline');
plot(yy1,'g-');
hold on
plot(yy2,'b-')
hold on
plot(yy3,'r-')
hold on
plot(yy4,'m-')
legend('100kpa in MCM-41 without APTS','100kpa in MCM-41 with 15APTS',...
    '100kpa in MCM-41 with 30APTS','100kpa in MCM-41 with 45APTS');
hold off
end
10楼2010-11-30 16:55:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见