⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zuixiao2.m

📁 用matlab解决一些数值分析中常用的算法
💻 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 + -