实验条件
实验用例
x | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 |
---|---|---|---|---|---|---|---|---|---|---|
y | 68 | 67.1 | 66.4 | 65.6 | 64.6 | 61.8 | 61.0 | 60.8 | 60.4 | 60 |
实验要求
利用曲线拟合的线性最小二乘法求被逼近函数f(x)在点x=55处的近似值,并画出实验数据和直线。
代码实现
X=[0,10,20,30,40,50,60,70,80,90];
Y=[68,67.1,66.4,65.6,64.6,61.8,61.0,60.8,60.4,60];
n=length(X);%10组数据
disp(n);
syms t;
a1=0;a2=0;a3=0;a4=0;
s=0;
for j=1:na1=a1+X(j)*X(j);a2=a2+Y(j);a3=a3+X(j);a4=a4+X(j)*Y(j);
end
b=(a1*a2-a3*a4)/(n*a1-a3*a3);
a=(n*a4-a2*a3)/(n*a1-a3*a3);
s=a*t+b;
disp('s是');
disp(s);
s2=eval(subs(s,'t',55));
disp('x的值为55时,表达式的值为');
disp(s2);
t=0:0.001:90;
S=eval(s);
figure
plot(t,S,'r');
grid on;
xlabel('x');
ylabel('function');
for k=1:ntext(X(k),Y(k),'*','color','g');%图像上标记某一个点
end
text(55,s2,'*','color','k');