2013-03-04 34 views
0

我做了物理實驗,並得到了如下的數據:最小二乘插值在八度

R=[2.91 2.19 1.76 1.43 1.20 1.01 0.88 0.77 0.67 0.6 0.52 0.46 0.41 0.37]; 
t=[35:5:100]; 
T=t+273.15; 

現在我需要對式LN R = F(1/T)做最小二乘插值。我嘗試了幾種來自網絡的方法,但是沒有一個能夠工作。

+0

你可以發佈你嘗試過什麼,爲什麼他們沒有給你想要的結果呢? – 2013-03-04 20:43:40

+0

http://pastebin.com/7y8Y1kQT – 2013-03-04 20:45:47

回答

1

顯然,您正在使用線性租賃平方插值。這個問題存在於計算係數的代碼中。

此操作

A \ y 

作品時的Ay行大小匹配列大小。

但在你的代碼,以xones(n,1)橫向拼接在聲明中

A = [x ones(n,1)] 

沒有被允許的,因爲x大小爲1 * 14和的ones(n,1)爲14 * 1。顯然,你會得到一個尺寸不匹配的錯誤。

這裏是一個工作代碼:

R=[2.91 2.19 1.76 1.43 1.20 1.01 0.88 0.77 0.67 0.6 0.52 0.46 0.41 0.37]; 
t=[35:5:100]; 
T=t+273.15; 


function coeff = least_square (x,y) 
    n = length(x); 
    A = [ones(n,1) x]; 
    coeff = A \ y; 
    plot(x,y,'x'); 
    hold on 
    interv = [min(x) max(x)]; 
    plot(interv,coeff(1)*interv+coeff(2)); 
end 


least_square(R', T');