关于MATLAB 拟合曲线的问题x=[-1\x05-1.096910013\x05-1.22184875\x05-1.397940009\x05-1.698970004\x05-2\x05-2.096910013\x05-2.22184875\x05-2.397940009\x05-2.698970004\x05-3\x05-3.096910013\x05-3.22184875\x05-3.397940009\x05-3.698970004\x05-4\x05
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 11:22:08
关于MATLAB 拟合曲线的问题x=[-1\x05-1.096910013\x05-1.22184875\x05-1.397940009\x05-1.698970004\x05-2\x05-2.096910013\x05-2.22184875\x05-2.397940009\x05-2.698970004\x05-3\x05-3.096910013\x05-3.22184875\x05-3.397940009\x05-3.698970004\x05-4\x05
关于MATLAB 拟合曲线的问题
x=[-1\x05-1.096910013\x05-1.22184875\x05-1.397940009\x05-1.698970004\x05-2\x05-2.096910013\x05-2.22184875\x05-2.397940009\x05-2.698970004\x05-3\x05-3.096910013\x05-3.22184875\x05-3.397940009\x05-3.698970004\x05-4\x05-4.096910013\x05-4.22184875\x05-4.397940009\x05-4.698970004\x05-5\x05-5.301029996\x05-6\x05-6.301029996\x05-7
];
y1=[0.19722\x050.17862421\x050.15608793\x050.13293769\x050.1262108\x050.12085\x050.1184635\x050.116076995\x050.113690493\x050.11130399\x050.0982\x050.09403087\x050.08873442\x050.08153087\x050.07016301\x050.0625\x050.05738433\x050.05392818\x050.04949164\x050.04303786\x050.03787\x050.03376065\x050.02725677\x050.02546905\x050.02186244
];
p1=polyfit(x,y1,3);
h=-1:-0.01:-7;
z1=polyval(p1,h);
y2=[0.2815\x050.27974245\x050.27635973\x050.26820598\x050.2460479\x050.20732\x050.17869929\x050.15616055\x050.1329555\x050.13102242\x050.13076\x050.13018517\x050.12809778\x050.12306309\x050.11125676\x050.09817\x050.09400649\x050.08871889\x050.08152006\x050.07016167\x050.0602538\x050.05187606\x050.03787023\x050.03375421\x050.02725338
];
p2=polyfit(x,y2,3);
h=-1:-0.01:-7;
z2=polyval(p2,h);
y3=[0.28583\x050.28575487\x050.28562528\x050.28534304\x050.28421633\x050.2815\x050.27974598\x050.27636409\x050.26820945\x050.24605527\x050.19733\x050.17870843\x050.15616779\x050.13995745\x050.131648725\x050.13034\x050.130117\x050.12809132\x050.12305629\x050.11125212\x050.0981659\x050.085437\x050.0625454\x050.05187651\x050.03786978
];
p3=polyfit(x,y3,3);
h=-1:-0.01:-7;
z3=polyval(p3,h);
y4=[0.28607\x050.28606594\x050.28605545\x050.28603422\x050.28596864\x050.28583\x050.28575498\x050.28562539\x050.28534318\x050.28431653\x050.2815\x050.27974633\x050.27636453\x050.26820983\x050.24605601\x050.19733\x050.17870934\x050.15616849\x050.13295766\x050.12611316\x050.12010505\x050.10609243\x050.09816557\x050.08543691\x050.06025461
];
p4=polyfit(x,y4,3);
h=-1:-0.01:-7;
z4=polyval(p4,h);
y5=[0.28609\x050.28609389\x050.28609287\x050.28609082\x050.28608464\x050.28607\x050.28606594\x050.28605546\x050.28603423\x050.28596886\x050.2818\x050.28575498\x050.2856254\x050.28534319\x050.28431655\x050.2815\x050.27974636\x050.27636456\x050.26820985\x050.24605607\x050.1973317\x050.14411221\x050.12367008\x050.10609236\x050.08916554
];
p5=polyfit(x,y5,3);
h=-1:-0.01:-7;
z5=polyval(p5,h);
y6=[0.2862\x050.28609666\x050.28609655\x050.2860635\x050.28609574\x050.286094\x050.28609389\x050.28609286\x050.28609082\x050.28608465\x050.28603\x050.28606594\x050.28605546\x050.28603423\x050.285968685\x050.28583\x050.28575499\x050.2855491\x050.28534319\x050.28431656\x050.281502\x050.27329758\x050.19733173\x050.14411222\x050.13075043
];
p6=polyfit(x,y6,3);
h=-1:-0.01:-7;
z6=polyval(p6,h);
hold on,plot(x,y1,'*',h,z1),plot(x,y2,'o',h,z2),plot(x,y3,'.',h,z3),plot(x,y4,'o',h,z4),plot(x,y5,'o',h,z5),hold off
这个是我自己做的,但是感觉偏差太大,顺便再给出任意一条曲线的拟合公式吧~
关于MATLAB 拟合曲线的问题x=[-1\x05-1.096910013\x05-1.22184875\x05-1.397940009\x05-1.698970004\x05-2\x05-2.096910013\x05-2.22184875\x05-2.397940009\x05-2.698970004\x05-3\x05-3.096910013\x05-3.22184875\x05-3.397940009\x05-3.698970004\x05-4\x05
楼主你的数据来源是什么,有物理或数学背景吗,通过分析你的数据我发现这几组数据前两组用多项式拟合效果还可以,后面几组的多项式拟合效果实在是不怎么样.
我用曲线拟合工具箱cftool拟合,从里面挑了好几种拟合方式来拟合,最终发现用fourier(傅里叶级数)这种方式来拟合的效果还是很理想的,你可以试一下.
实际上拟合前都是对拟合函数有一个预估的,不一定说非要越精确越好,那样很容易发生过拟合,过拟合虽然说从表面上精度很高,但可能没有任何意义,可能会失去你所关心的信息.
一般拟合也是在一定的物理或数学背景下进行的,所以拟合要综合考虑合理性与精确性,现在的疑问是你的数据到底有没有什么背景或条件.