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

📄 main.m

📁 此程序包为用最小二乘法求函数逼近的M文件集合,在Matlab平台下使用
💻 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 + -