【数值分析】区间折半法,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
相关推荐
rit84324998 小时前
MATLAB对组合巴克码抗干扰仿真的实现方案
开发语言·matlab
suoge22310 小时前
六面体传热单元Matlab有限元编程:三大类边界条件(上篇)| 固定温度边界条件 | 表面热通量边界条件 | 热对流边界条件)
matlab·有限元编程·传热有限元·热传导有限元·六面体热单元·边界条件·对流换热
Evand J13 小时前
【MATLAB例程,附代码下载链接】基于累积概率的三维轨迹,概率计算与定位,由轨迹匹配和滤波带来高精度位置,带测试结果演示
开发语言·算法·matlab·csdn·轨迹匹配·候选轨迹·完整代码
suoge22314 小时前
六面体传热单元(热通量边界条件)有限元MATLAB程序【理论文本+代码】|热传导有限元|纽曼边界条件|有限元传热分析
matlab·有限元·有限元编程·传热有限元·稳态传热·热传导有限元·热固耦合
suoge22314 小时前
六面体传热单元(固定温度边界条件)有限元MATLAB程序【理论文本+代码】|热传导有限元|狄利克雷边界|有限元传热分析
matlab·有限元·热传导·传热有限元·迪利克雷边界条件·有限元法·稳态传热
foundbug99914 小时前
基于MATLAB的TDMP-LDPC译码器模型构建、仿真验证及定点实现
开发语言·matlab
Evand J14 小时前
【MATLAB代码介绍】基于累积概率的三维轨迹匹配与定位,由轨迹匹配和卡尔曼滤波形成算法,带测试结果演示
算法·matlab·滤波·定位·导航·轨迹匹配
wuk99815 小时前
梁非线性动力学方程MATLAB编程实现
前端·javascript·matlab
一个与程序bug抗争的程序员15 小时前
Matlab App Designer设计人机交互界面并打包成exe——加法计算器
matlab·人机交互
kaikaile199516 小时前
matlab计算流场
人工智能·算法·matlab