我做了一个物理实验,得到了以下数据:
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) 进行最小二乘插值。我从网上尝试了几种方法,但都无法使它们起作用。
我做了一个物理实验,得到了以下数据:
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) 进行最小二乘插值。我从网上尝试了几种方法,但都无法使它们起作用。
显然,您正在使用线性租赁平方插值。问题存在于计算系数的代码中。
这个操作
A \ y
当 的列大小A
与 的行大小匹配时有效y
。
但是在您的代码中,语句中的ones(n,1)
with水平连接x
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');