bijin.asv
来自「课程设计:编写连续函数最佳平方逼近的算法程序(以函数形式)。并用此程序进行数值实」· ASV 代码 · 共 29 行
ASV
29 行
function s=BiJin(h,a,b,n)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
g=poly2sym([eval('(b-a)/2') eval('(b+a)/2')]) %生成坐标转换的公式(b-a)/2*x+(b+a)/2
f=compose(h,g,'x'); %将被逼近函数的区间[a,b]变换到区间[-1,1]之间
A=ones(1,n+1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for k=0:1:n %%%
m=inline(poly2sym(Lengendre(k))*f); %%%
A(k+1)=Gauss(m,-1,1,X,W); %%%
end %%%求解拟合系数,数组B中放置得到的拟合系数
B=A; %%%
for k=0:1:n %%%
B(k+1)=((2*k+1)/2)*A(k+1); %%%
end %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp('输出拟合系数'); %输出拟合系数
C=num2str(B,5); %num2str 把非整数数组B转换为串数组 % %
disp(C); %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
T=B(1)*Lengendre(0); %%%
for k=1:1:n %%%
T=mmpadd(T,B(k+1)*Lengendre(k)); %%%利用不同阶矩阵求和函数mmpadd,求得逼近函数多项式系数行向量T
end %%%
s=simple(poly2sym(T)); %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
g=poly2sym([eval('2/(b-a)') eval('-(b+a)/(b-a)')]);%%%坐标变换公式:t=(2*x-b-a)/(b-a)
s=expand(compose(s,g,'x')); %%%将区间[-1,1]的逼近函数变换为区间[a,b]上的最佳平方逼近多项式
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?