注册 登录
编程论坛 Matlab

弱弱问一句:谁能帮我把这几个数据弄成曲线拟合呀??

maize 发布于 2008-08-09 16:52, 1109 次点击
x1=[-21.807,-20.838,-19.1,-17.8,-16.86,-16.525,-16.067,-14.8];
y1=[1.79e-3,6.14e-4,2.888e-5,9.732e-7,2.286e-8,4.574e-9,3.6558e-10,3.146e-14];
plot(x1,log10(y1),'s-')
x2=[-22.84,-19.83,-18.86,-15.85,-15.6,-14.39,-13.81,-13.3,-12.84,-12.44];
y2=[9.522e-3,1.815e-3,7.06e-4,6.56e-6,9.5537e-7,1.2855e-7,1.5872e-8,1.7972e-9,1.874e-10,1.8129e-11];
plot(x1,log10(y2),'*-');

怎么让这个出来的这两条曲线不是按每个点连起来的曲线,
而是取这些点的相近值,而且最后得出的拟合线是一条直线.

小女子感激不尽~~
3 回复
#2
hyw06632008-08-10 09:46
可以用p=polyfit(x, y, n),n是你要拟合的阶数,例如你现在要拟合一直线,那么n=1,运行得到p就是你的直线方程的系数。
#3
maize2008-08-11 09:49
[bo][un]hyw0663[/un] 在 2008-8-10 09:46 的发言:[/bo]

可以用p=polyfit(x, y, n),n是你要拟合的阶数,例如你现在要拟合一直线,那么n=1,运行得到p就是你的直线方程的系数。



按你这样说,p=polyfit(x,y,1)之后,就直接得到y=p.*x这条直线啦???

我怎么没有结果呢?
#4
shenlong1hao2008-08-19 14:07
你要看你想拟合成几阶的函数
你可以自己编一个拟合成几次的函数
1