我来晚了,下面是解答,复制代码直接去运行,答案打印在命令窗口里
============================================
clc;clear;
%% 问题1
x=[6,3,1.5,4/3,2/3];
y=[0.43,1.18,1.67,0.93,0.38];
% 这里有个含糊的地方,你所说的多项式插值,要几阶?
n=3; % 这是多项式阶数,根据你需求自己改,最大只能是4
p=polyfit(x,y,n); % 这就是多项式插值了,获取多项式系数
% 下面根据系数计算 5:1, 4:1 , 1:1 时的值
fprintf(1,'第一题答案:\n');
for xx=[5,4,1]
yy=0;
for i=1:n+1
yy=yy+p(i)*xx^(n+1-i);
end
fprintf(1,[num2str(xx) ':1 的值: %f\n'],yy);
end
%% 问题2
x=[ 0 20 40 60 80 100];
b=[ 0 1.5 2.801 4.001 5.108 5.81];
x=x';
b=b';
A(:,1)=x;
A(:,2)=1;
c=A\b;
fprintf(1,'\n第二题答案:\n');
fprintf(1,['最小二乘线性拟合表达式:y=' num2str(c(1)) '*x+' num2str(c(2)) '\n']);
% 稳健死归法真没听说过
%% 问题3
x=[ 0 0.3 0.8 1.1 1.6 2.3];
y=[ 0.82 0.72 0.63 0.60 0.55 0.50];
x=x';
y=y';
A(:,1)=1;
A(:,2)=exp(-x);
c=A\y;
fprintf(1,'\n第三题答案:\n');
fprintf(1,['c1=' num2str(c(1)) ',c2=' num2str(c(2)) '\n']);
================================
下面是运行结果
第一题答案:
5:1 的值: 0.020582
4:1 的值: 0.483272
1:1 的值: 0.885164
第二题答案:
最小二乘线性拟合表达式:y=0.058677*x+0.26948
第三题答案:
c1=0.47595,c2=0.34132