【数值分析】区间折半法,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
相关推荐
曹勖之1 天前
UE 5 和simulink联合仿真,如果先在UE5这一端结束Play,过一段时间以后**Unreal Engine 5** 中会出现显存不足错误
matlab·ue5·机器人
曹勖之2 天前
simulink有无现成模块可以实现将三个分开的输入合并为一个[1*3]的行向量输出?
matlab
机器学习之心2 天前
Transformer-BiGRU多变量时序预测(Matlab完整源码和数据)
深度学习·matlab·transformer·bigru
slandarer2 天前
MATLAB | 绘图复刻(十九)| 轻松拿捏 Nature Communications 绘图
开发语言·matlab
【杨(_> <_)】3 天前
信号处理分析工具——时频分析(一)
算法·matlab·信号处理
曹勖之3 天前
在MATLAB中使用自定义的ROS2消息
开发语言·matlab·机器人·ros·simulink·ros2
我爱C编程3 天前
基于QPSK调制解调+Polar编译码(SCL译码)的matlab性能仿真,并对比BPSK
matlab·qpsk·polar编译码·scl译码
bubiyoushang8884 天前
matlab实现高斯烟羽模型算法
开发语言·算法·matlab
tyatyatya4 天前
MATLAB 中调整超参数的系统性方法
开发语言·matlab
Expecto04 天前
Matlab数值计算
matlab·数值计算