数据如下
x= 1.096
2.193
3.289
4.385
5.481
6.577
7.673
8.769
9.865
10.961
12.057
13.153
14.249
15.345
16.441
17.537
18.633
19.729
20.825
21.921
23.017
24.113
25.209
26.305
27.401
28.497
29.593
30.689
31.785
32.881
33.977
35.073
36.169
37.265
38.361
39.457
y=
2.15
2.27
2.49
2.73
3.02
3.3
3.57
3.88
4.22
4.57
4.88
5.2
5.48
5.75
5.97
6.17
6.27
6.32
6.27
6.17
6
5.77
5.5
5.23
4.9
4.58
4.27
3.95
3.62
3.32
2.98
2.7
2.48
2.3
2.17
2.13
ä½ å¥½ï¼ä»¥ä¸æ¯æå代ç åæåç»æï¼
clc;clear all大ç¥è¯·æ¶ä¸æçèç
用MATLAB拟合一组数据,得到函数的表达式我的数据是
x=(9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39)
y=(9,12,18,21,12,26,29,36,50,101,192,245,233,117,28,9)
至于具体怎么得到x与y的函数关系,在MATLAB上的具体操作,可能性太多,这组数据可以拟合出无数多种函数结果。
如果什么函数形式都不给出的话,下面以11次多项式举例来拟合你的数据:
1.用多项式拟合
x=(9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39)
y=(9,12,18,21,12,26,29,36,50,101,192,245,233,117,28,9)
p=polyfit(x,y,11)
xx=linspace(9,39,100)
yy=polyval(p,xx)
plot(x,y,'o');hold on
plot(xx,yy,'r');hold off
legend('数据','拟合','location','northwest');
title(poly2str(p,'x'));
2.如果是正态分布
x=(9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39)
y=(9,12,18,21,12,26,29,36,50,101,192,245,233,117,28,9)
fun=@(p,x) p(1)*exp(-(x-p(2)).^2./2/p(3)^2);
p=nlinfit(x,y,fun,[250 32 10]);
xx=linspace(9,39,100);
yy=fun(p,xx);
plot(x,y,'o');hold on
plot(xx,yy,'r');hold off
legend('数据','拟合','location','northwest');
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
本回答被网友采纳多项式拟合
追答那你看楼下的吧,基本就是他那个代码。主要命令就是 ployfit 和 polyval。如果你要更深入了解这两个命令,使用下面的命令看用法即可。
doc polyfit;