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

📄 yangtiaofinal.m

📁 用样条拟和函数
💻 M
字号:
%姓名:汪建强 学号:1050729035 班级:B0507291
clear
A=ones(1,21);
B=ones(1,21);
X=sym('X');
J=1;F=0;
%--------------------------------------------------------------------------
for K=2:0.1:4 %---求解拟合前函数的值
    A(J)=K;
    B(J)=log(K);
    J=J+1;
end
%------------------------------------------------------------------------
for I=1:21
    C(I)=sym('1');  N=1;%---定义‘X’位符号变量---
    for J=1:21
            if(N<22)&(N~=I)   %----在N不等于I的范围内求解出系数--
                C(I)=C(I)*(X-A(N))/(A(I)-A(N));
                N=N+1;
            else if (N==I)&(N<21)
              N=N+1;%----当I=N时N调向下一位
            else
                    break;
                end
            end
      end
end
%-----------------------------------------------------------------------
for I=1:21  %---求解拟合函数的总的表达式
   F=F+C(I)*B(I);
   if I==21
       F=F
   end
end
%---------------------------------样条拟合
U=eye(21,21);
V=ones(21,1);
Z=ones(21,1);
for I=2:20
   U(I,I-1)=(A(I)-A(I-1))/6;
   U(I,I)=(A(I+1)-A(I-1))/3;
   U(I,I+1)=(A(I+1)-A(I))/6;
   Z(I)=(B(I+1)-B(I))/(A(I+1)-A(I))-(B(I)-B(I-1))/(A(I)-A(I-1));
end
Z(1,1)=0;Z(21,1)=0;
V=inv(U)*Z;  %将U求解其逆矩阵后与R相乘。
for I=2:20
    %S(I)=sym('1');
   S(I)=V(I)*[(A(I+1)-X)^3]/(A(I+1)-A(I))/6+V(I+1)*[(X-A(I))^3]/(A(I+1)-A(I))/6+[B(I+1)-[V(I+1)*(A(I+1)-A(I))^2]/6]*(X-A(I))/(A(I+1)-A(I))+[B(I)-[V(I)*(A(I+1)-A(I))^2]/6]*(A(I+1)-X)/(A(I+1)-A(I));
end
%----------------------------------
Y='log(x)';
fplot(Y,[2,4],'r');%---拟合前函数的图像
hold on
%-------------------样条拟合曲线
for I=1:20
   ezplot(S(I),[A(I),A(I+1)]);
end
ezplot(F,[2,4]);%---拟合后函数的图像  
title('函数ln(x)的Lagrangian以及三次样条拟合图像');
axis([2,4,0,2]);

⌨️ 快捷键说明

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