📄 zuixiao2.m
字号:
%最小二乘法插值
%用法:
% 1.将该文件放在work文件夹下
% 2.在matlab输入命令zuixiao(n); (n为逼近精度,n>0整数)
function zuixiao(N)
format long;
X=[3 4 5 6 7 8 9]; %插值数据x坐标,x内有k个元素,N的最大值为k
F=[2.01 2.98 3.50 5.02 5.47 6.02 7.05]; %插值数据y坐标
syms x;
% Aa=B;
A=zeros(N);
B=zeros(N,1);
a=zeros(N,1);
for i=1:1:N %构成逼近基函数1 x x^2...
R{i}=x^(i-1);
end
for k=1:1:N %构成逼近基函数1 x x^2...方程系数矩阵A
for j=1:1:N
for i=1:1:length(X)
x=X(i);
A(k,j)=A(k,j)+eval(R{k}*R{j});
end
end
end
for k=1:1:N %构成系数矩阵B
for i=1:1:length(X)
x=X(i);
B(k)=B(k)+F(i)*eval(R{k});
end
end
a=inv(A)*B;%求解逼近基函数1 x x^2...的系数a;
syms x;
fun=0;
for k=1:1:N%获得最小二乘法插值函数fun
fun=fun+a(k)*R{k};
end
fun %输出获得最小二乘法插值函数fun
plot(X,F,'o');%画出插值节点
hold on
%画出最小二乘法插值函数fun
i=linspace(X(1),X(length(X)),100);
for k=1:1:length(i)
x=i(k);
y_fun(k)=eval(fun);
end
plot(i,y_fun);
hold on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -