📄 main.m
字号:
%程序用到main.m f.m fi.m addD.m addG.m remain.m
%图形窗口中蓝色的曲线表示原函数即(1/1+25*x^2)
%红色的曲线表示逼近的函数曲线
format compact
clear; %清空内存变量
x=linspace(-1,1,50); %从-1到1取50个点
ok1=0; %标记r=0.1的已经计算过
n=0; %从0次开始
m=50; %共50个点
r0=0.1;r1=0.01; %分别计算两种情况
while(1) %循环至算完两种情况结束
addD; %添加法方程d的第n行
addG; %添加矩阵G的第n行和第n列
a=g\d; %方程求解
a=a'; %转置并反序
a=a(n+1:-1:1);
r=remain(x,a,m); %求误差r
n %输出第n阶的误差r
r
if(r<r0 && ok1==0) %r0为0.1
n
syms t;
poly1=creatu(a,t);
pretty(poly1)
xx=linspace(-1,1,100); %画多项式图像,x轴取100点
yy=polyval(a,xx);
subplot(1,2,1); %r=0.1的图像,红色
plot(xx,yy,'r');
hold on;
fplot('f',[-1 1],100); %原函数图像
title('r=0.1');
xlabel('x');
ylabel('y');
ok1=1;
end
if(r<r1 && ok1==1)%r为0.01
n
poly2=creatu(a,t);
pretty(poly2)
yy=polyval(a,xx);
subplot(1,2,2);
plot(xx,yy,'r'); %多项式图像
hold on;
fplot('f',[-1 1],100);
title('r=0.01');
xlabel('x');
ylabel('y');
return
end
n=n+1; %阶数加1
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -