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

📄 sanciyangtiao.m

📁 利用牛顿、拉格朗日、三次样条及线性插值方法拟合数据
💻 M
字号:
function S =Sanciyangtiao(x)
X=0:10;
X=-5+X;
y=0:10;S=0;
M=0:10;
N=0:10;S=0;
a=0:10;
b=0:10;
syms m
r=1/(1+m^2);
for i=1:11
    y(i)=subs(r,'m',X(i));
end
if x>=X(1)&&x<=X(2)
    a(1)=(1+2*(x-X(1))/(X(2)-X(1)))*(((x-X(2))/(X(1)-X(2)))^2);
    b(1)=(x-X(1))*(((x-X(2))/(X(1)-X(2)))^2);
else
    a(1)=0;
    b(1)=0;
end
for i=2:10
    if x>=X(i-1)&&x<=X(i)
       a(i)=(1+2*(x-X(i))/(X(i-1)-X(i)))*(((x-X(i-1))/(X(i)-X(i-1)))^2);
       b(i)=(x-X(i))*(((x-X(i-1))/(X(i)-X(i-1)))^2);
    elseif x>=X(i)&&x<=X(i+1)
       a(i)=(1+2*(x-X(i))/(X(i+1)-X(i)))*(((x-X(i+1))/(X(i)-X(i+1)))^2);
       b(i)=(x-X(i))*(((x-X(i+1))/(X(i)-X(i+1)))^2);
    else
        a(i)=0;
        b(i)=0;
    end
end
if x>=X(10)&&x<=X(11)
   a(11)=(1+2*(x-X(11))/(X(10)-X(11)))*(((x-X(10))/(X(11)-X(10)))^2);
   b(11)=(x-X(11))*(((x-X(10))/(X(11)-X(10)))^2);
else
   a(11)=0;
   b(11)=0;
end
A=zeros(11);
for i=2:10
    A(i,i)=2;
    A(i-1,i)=0.5;
    A(i,i-1)=0.5;
    M(i)=1.5*(y(i+1)-y(i-1));
end
A(1,1)=2;
A(11,11)=2;A(11,10)=0.5;
M(1)=3*(y(2)-y(1));
M(11)=3*(y(11)-y(10));
N=inv(A)*M';
for i=1:11
    S=S+(y(i)*a(i)+N(i)*b(i));
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -