Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-06-19, 23:33   #1
hy85220
初级会员
 
注册日期: 2008-03-27
年龄: 40
帖子: 5
声望力: 0
hy85220 正向着好的方向发展
默认 [求助]拟合数据点

遇到个问题,请各位大侠赐教。
需要拟合32个数据点,用了polyfit,但是无论选择阶次为多少得到的拟合曲线都不好,最后两个数据点间曲线暴走。不知道为什么?想改用其它方法拟合,比如用折线连接数据点,用什么方法呢?有没有什么方便的函数?最后需要由任意给定的I通过曲线求得对应的L值。
数据如下:
I=[1.1955 1.5042 1.8062 2.1067 2.4072 2.7075 3.0073 3.3070
3.6070 3.9080 4.2097 4.5118 4.8136 5.1151 5.4167 5.7193
6.0237 6.3306 6.6413 6.9578 7.2815 7.6104 7.9388 8.2633
8.5922 8.9447 9.3339 9.7604 10.5013 11.4869 12.8993 15.6161];

L=[1.3383 1.3296 1.3288 1.3291 1.3293 1.3296 1.3301 1.3305
1.3307 1.3306 1.3303 1.3298 1.3296 1.3294 1.3292 1.3288
1.3281 1.3269 1.3250 1.3223 1.3184 1.3140 1.3100 1.3070
1.3035 1.2969 1.2856 1.2704 1.2341 1.1840 1.1163 0.9734]
hy85220 当前离线   回复时引用此帖
旧 2008-06-20, 01:18   #2
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认

yhat=b(1)*exp(b(2)*x+b(3)*x.^2)./(1+b(4)*x+b(5)*x.^2);

b=[1.35694961, -.108516533, .438971621e-2, -.919315083e-1, .485352136e-2]
RSS =.3148843759e-3
RMSe = 1.2111e-005
R^2 =.998221
slgu 当前离线   回复时引用此帖
旧 2008-06-24, 01:33   #3
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认

求助者对此结果没有反应,可能对此结果所表示的含义不太了解。所拟合的曲线可用下列语句显示:

clear,clc
x=[1.1955, 3.6070, 6.0237, 8.5922, 1.5042, 3.9080, 6.3306, 8.9447, 1.8062, 4.2097, 6.6413, 9.3339, 2.1067, 4.5118, 6.9578, 9.7604, 2.4072, 4.8136, 7.2815, 10.501, 2.7075, 5.1151, 7.6104, 11.487, 3.0073, 5.4167, 7.9388, 12.899, 3.3070, 5.7193, 8.2633, 15.616];
y=[1.3383, 1.3307, 1.3281, 1.3035, 1.3296, 1.3306, 1.3269, 1.2969, 1.3288, 1.3303, 1.3250, 1.2856, 1.3291, 1.3298, 1.3223, 1.2704, 1.3293, 1.3296, 1.3184, 1.2341, 1.3296, 1.3294, 1.3140, 1.1840, 1.3301, 1.3292, 1.3100, 1.1163, 1.3305, 1.3288, 1.3070, .97340];
fy='1.35694961*exp(-.108516533*x+.438971621e-2*x.^2)./(1-.919315083e-1*x+.485352136e-2*x.^2)';
plot(x,y,'o')
hold on
fplot(fy,[1,16])

对于曲线与曲面拟合,第一个难点是选用合适的非线性方程;二是参数的全局最优估计;第三是进行合理的测验。第三个问题有赖于获取统计数的标准误,对于此题,每个统计数的误差(SEb)分别为:[.494388e-2, .477700e-2, .342370e-3, .255175e-2, .202511e-3]。希能对求助者和其他应用者有用。
slgu 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
VC++6使用MATLAB7 DLL问题 acli1978 MATLAB论坛 1 2008-09-09 09:18
[求助]simulink里有没有归一化模块??? xyc_独自等待 MATLAB论坛 1 2008-05-06 11:12
【求助】如何建立自定义simulink动态模型 christina MATLAB论坛 1 2008-03-30 15:15
【资料】matlab常用函数 wind_vip MATLAB论坛 35 2008-01-05 21:04
【求助】如何计算离散曲线的曲率半径 sophiemarceau MATLAB论坛 0 2007-08-22 19:40


所有时间均为北京时间。现在的时间是 14:15


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.