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

📄 复件 lagrange.m

📁 进行快速拉格朗日插值
💻 M
字号:
function  [y,yy]=lagrange(a,b)%the proms doesn't work steady,no reason found yet
%拉格朗日插值
[m,n]=size(a);
[m1,n1]=size(b);
if m==m1 && n==n1
x=sym('x'); 
s=cell(1,n);
for i=1:n
    s{1,i}=1;
end
   %构造L(x)
for i=1:n
    for j=1:n
        if (i>j)||(i<j)
            c=x-a(1,j);
            s{1,i}=s{1,i}.*c./(a(1,i)-a(1,j));
        end
    end
    l(1,i)=b(1,i).*s{1,i};
end
y=simplify(sum(l));
else
    error('dimension of matrix mismatch');
end
%画图
alpha=min(a)-abs(min(a)).*0.5;
beta=max(a)+abs(max(a)).*0.5;
xx=alpha:(beta-alpha)./50:beta;
yy=(subs(y,x,xx));
plot(b,a,'marker','o','color','r');
hold on;
plot(xx,yy,'linestyle',':','color','blue');
axis square
%是曲线尽可能以适当比例显示
%xalpha=alpha-abs(alpha).*0.5;
%xbeta=beta+abs(beta).*0.5;
%yalpha=min(yy);
%ybeta=max(yy);
%r=ybeta./xbeta;
%ybetaa=ybeta./r;
%set(gca,'dataaspectratio',[1,1,1],'xlim',[xalpha,xbeta],'ylim',[-ybetaa,ybetaa]);

%怎样使syms x中的变量x可以赋值给矩阵

⌨️ 快捷键说明

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