私は物理実験を行い、次のデータを取得しました。
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)に対して最小二乗補間を行う必要があります。Webからいくつかの方法を試しましたが、どれも機能しませんでした。
私は物理実験を行い、次のデータを取得しました。
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)に対して最小二乗補間を行う必要があります。Webからいくつかの方法を試しましたが、どれも機能しませんでした。
どうやら、あなたは線形リース二乗補間を使用しています。問題は、係数を計算するためのコードにあります。
この操作
A \ y
A
の列サイズがの行サイズと一致する場合に機能しますy
。
しかし、あなたのコードでは、ステートメント内のones(n,1)
withの水平連結x
A = [x ones(n,1)]
x
のサイズが1*14で、のサイズが14 * 1であるため、は許可されていませんones(n,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');