matlab编写自适应抛物线函数

img


这样一个题目,有大哥知道怎么弄吗

你好,为你解忧,有帮助望采纳哟

f = @(x) sqrt(x); % 被积函数
x = [0,1]; % 初始区间
err = 1; % 初始误差
s0 = 0; % 初始积分值
h = 2*diff(x); % 初始h
while (err>1e-4)
    xmid = (x(1:end-1) + x(2:end))*0.5; % 取中点值
    s1 = 0;
    h = h / 2; % 积分段长减半
    for i = 1:numel(xmid)
        s1 = s1 + h/6*(f(x(i))+4*f(xmid(i))+f(x(i+1))); % 外推
    end
    x0 = zeros(1, numel(xmid)+numel(x));
    x0(1:2:end) = x;
    x0(2:2:end) = xmid;
    x = x0; % 更新x的值
    err = abs(s1-s0);
    s0 = s1;
end
fprintf('积分值:%f\n',s0)

结果:

积分值:0.666647

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632