姜姜姜姜_Z 2021-10-24 14:29 采纳率: 80%
浏览 86
已结题

有人会吗,用matlab实现,画出图像,把所有结果画在一个图上。

img


用matlab绘制图像代码,这是我写的部分代码


```c#

function v = Interp2021(x,y,u)
n=length(x);
v=zeros(size(u));
    for k=1:n
    w=ones(size(u));
        for j=[1:k-1 k+1:n]
        w=(u-x(j))./(x(k)-x(j)).*w;
        end
        v=v+w*y(k);
    end
 plot(x,y,'o',u,v,'-');   
end


```

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-10-24 15:44
    关注

    你好同学,只需要调用你的函数就行啊:
    你的函数:

    function v = Interp2021(x,y,u)
    n = length(x);
    v = zeros(size(u));
    for k=1:n
        w=ones(size(u));
        for j=[1:k-1 k+1:n]
            w=(u-x(j))./(x(k)-x(j)).*w;
        end
        v=v+w*y(k);
    end
    end
    
    

    我给出的主函数:

    clc;clear
    x = [4,9,16,25,36,49,64,81,100];
    y = [2,3,4,5,6,7,8,9,10];
    % 第(1)题
    u = 1:1:100; 
    for i = 2:9
        subplot(2,4,i-1)
        plot(x,y,'ro'); hold on
        v = Interp2021(x(1:i),y(1:i),u);
        plot(u,v,'b-');
        title([num2str(i-1),'阶Lagrange'])
    end
    % 第(2)题
    clear u;
    u = 10:10:200;
    vn = arrayfun(@(i)['n=',num2str(i-1)],2:9,'uniform',0);
    rn = arrayfun(@(i)['x=',num2str(u(i))],1:numel(u),'uniform',0);
    T = table('Size',[numel(u),8],'VariableTypes',repmat("double",1,8),'variablenames',vn,'rownames',rn);
    format short
    for i = 2:9
        v = Interp2021(x(1:i),y(1:i),u);
        T{:,i-1} = v(:);
    end
    T
    

    最后画图结果:

    img

    最后输出各阶插值在x=10,20,30,……,200 的插值

    T =
    
      20×8 table
    
                 n=1       n=2       n=3        n=4       n=5        n=6       n=7        n=8  
                 ____    _______    ______    _______    ______    _______    ______    _______
    
        x=10      3.2     3.1714    3.1667      3.165    3.1643     3.1639    3.1636     3.1634
        x=20      5.2     4.3619     4.455     4.4656    4.4686     4.4699    4.4705     4.4709
        x=30      7.2        4.6    5.6111     5.4962    5.4838     5.4805    5.4792     5.4785
        x=40      9.2     3.8857    7.4286     6.2208    6.3075     6.3186    6.3217     6.3229
        x=50     11.2      2.219    10.701     5.8817    7.0927     7.0754    7.0726     7.0718
        x=60     13.2       -0.4    16.222          3    8.6957     7.8007    7.7593     7.7511
        x=70     15.2    -3.9714    24.786     -4.625    13.323     7.9387    8.3119      8.351
        x=80     17.2    -8.4952    37.185    -19.915    25.179     5.2089    8.9009      8.936
        x=90     19.2    -13.971    54.214    -46.515    51.115    -6.0681    11.111     9.6416
        x=100    21.2      -20.4    76.667    -88.788    101.27      -37.2      20.4         10
        x=110    23.2    -27.781    105.34    -151.82    189.74    -107.91    50.294     6.6963
        x=120    25.2    -36.114    141.02    -241.42    335.18    -249.66    128.76    -11.486
        x=130    27.2      -45.4     184.5    -364.12     561.5    -509.58    307.23    -73.111
        x=140    29.2    -55.638    236.58    -527.18     898.5    -954.88    672.67    -239.85
        x=150    31.2    -66.829    298.06    -738.55    1382.5    -1677.9    1363.2    -630.83
        x=160    33.2    -78.971    369.71    -1006.9      2057    -2801.5    2587.8    -1458.1
        x=170    35.2    -92.067    452.35    -1341.8    2973.3    -4485.6      4650    -3076.5
        x=180    37.2    -106.11    546.76    -1753.1    4191.2    -6933.2    7977.3    -6050.4
        x=190    39.2    -121.11    653.74      -2252    5779.7     -10398     13155     -11242
        x=200    41.2    -137.07    774.07    -2849.8    7817.4     -15193     20966     -19925
    
    

    可见高阶拉格朗日插值虽然前面精度很高,但是到了后面基本上都是误差极大。
    有帮助还望题主给个采纳支持一下答主呢,谢谢啦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件