MATLAB中的波长与吸光度图

时间:2014-11-07 22:42:42

标签: matlab

我有许多波长及其相应的吸光度。

首先我输入了x和y值

x = [400 425 450 475 500 505 510 525];
y = [.24 .382 .486 .574 .608 .608 .602 .508];

绘制点

  
    

情节(x,y,' o')

  

然后我想要拟合数据。 我不确定选择多大程度的多项式,但由于它是波长与吸收的关系图,所以不存在数学公式吗?就像你怎么知道动能与速度的关系将是2级,因为KE = 1 / 2mv ^ 2?

1 个答案:

答案 0 :(得分:0)

好的,所以这里有一个适用于你的数据的解决方案,使用polyfit和polyval来评估通过你的数据点的多项式。

在polyfit(here)的文档中,它声明了

  

通常,对于n个点,可以拟合n-1度的多项式   完全通过点。

由于您有8个数据点,我们可以尝试使用7度多项式并查看它给出的数据点

clear
clc

x = [400 425 450 475 500 505 510 525];
y = [.24 .382 .486 .574 .608 .608 .602 .508];

%// Get polynomial coefficients to fit the data
p = polyfit(x,y,7)

%// Create polynomial to plot
fFit = polyval(p,x);

plot(x,y,'o')
hold on
plot(x,fFit,'r--')
hold off

axis([400 525 0 .7]);

legend({'Data points' 'Fitted curve'},'Location','NorthWest')

给出了这个:

enter image description here

所以看起来效果很好!如果我们看一下polyfit给出的系数:

p =

   1.0e+05 *

  Columns 1 through 6

    0.0000   -0.0000    0.0000   -0.0000    0.0000   -0.0003

  Columns 7 through 8

    0.0401   -2.7206

也许7度有点矫枉过正,因为前5个系数是0(或大约0),但无论如何它非常适合!

希望有所帮助!