【数值分析】区间折半法,matlab实现

区间折半法

从梯形公式出发,上一步步长为 h {h} h ,则有步长折半后的积分
T 2 n = 1 2 T n + h 2 ∑ i = 0 n − 1 f ( x i + 0.5 ) T_{2n}= \frac{1}{2}T_n+ \frac{h}{2} \sum_{i=0}^{ n-1}f(x_{i+0.5}) T2n=21Tn+2hi=0∑n−1f(xi+0.5)

matlab实现

matlab 复制代码
%% 区间折半法例子
format long
[I i] = halfStep(@f,0,1,1e-7,10)

function r = f(x)
    if x == 0
        r = 1;
    else
        r = sin(x)./x;
    end
end

%% 区间折半法
% 输入函数,范围,精度,最大迭代次数
% 输出积分值,迭代次数
function [I,i] = halfStep(f,a,b,eps,max_iter)
    h = b-a;
    T0 = h/2*(f(a)+f(b))
    for i = 1:max_iter
        x_n = a+h/2:h:b-h/2;
        T1 = 0.5*T0+0.5*h*sum(f(x_n))
        if abs(T1-T0)<eps
            I = T1;
            break
        end
        T0 = T1;
        h = h/2;
    end
end
相关推荐
吃好睡好便好2 天前
查找函数的使用
学习·算法·matlab·生活·查找函数
chhttty2 天前
Design Verifier检查:整型数溢出检查与修复
matlab·simulink
吃好睡好便好2 天前
判断函数的使用
学习·算法·matlab·生活·判断函数
hu9245195592 天前
Matlab保护源代码—P文件和exe文件详细解析
开发语言·matlab
史上最甜的躯2 天前
控制系统——基础、导论;以直流电机控制系统为例详解微分方程模型、拉普拉斯变换、传递函数模型的理论、推导及仿真
matlab·simulink·传递函数·控制系统·拉普拉斯·电机模型
lingchen19063 天前
用MATLAB r2010b和r2016b求解微分方程组
开发语言·算法·matlab
可编程芯片开发3 天前
基于李雅普诺夫算法的四旋翼无人机姿态跟踪控制系统simulink建模与仿真
matlab·无人机·制造·四旋翼无人机·李雅普诺夫·姿态跟踪控制
matlab代码5 天前
基于matlab的玉米种子计数设计(GUI界面)【源码58期】
开发语言·matlab
吃好睡好便好5 天前
转换函数的使用
学习·matlab·生活·转换函数
吃好睡好便好6 天前
取整函数的使用
学习·matlab·生活·取整函数