复合梯形法则:

function int_f = CompoundEchelon( f, a, b, m )

% input : f : function handler

% a : the lower limit of integral

% b : the upper limit of integral

% m : cut integral area into m peace

% output : int_f : the answer of the integral

h = (b - a) / m;

int_f = 0;

if m >= 2

for i = 1 : m-1

int_f = int_f + 2 * f(a + h * i);

end

end

int_f = int_f + f(a) + f(b);

int_f = int_f * h / 2;

end

例子:

clear all

format long

clc

%% (a)

fprintf(' (a) \n')

f = @(x) x./((x.^2+9).^0.5);

int1_16 = CompoundEchelon(f, 0, 4, 16);

int1_32 = CompoundEchelon(f, 0, 4, 32);

correct_int1 = quadgk(f, 0, 4);

error1_16 = abs(correct_int1 - int1_16);

error1_32 = abs(correct_int1 - int1_32);

fprintf('int1_16 = %g\n', int1_16);

fprintf('int1_32 = %g\n', int1_32);

fprintf('correct_int1 = %g\n', correct_int1);

fprintf('error1_16 = %g\n', error1_16);

fprintf('error1_32 = %g\n', error1_32);

%% (b)

fprintf(' (b) \n')

f = @(x) (x.^3)./(x.^2+1);

int2_16 = CompoundEchelon(f, 0, 1, 16);

int2_32 = CompoundEchelon(f, 0, 1, 32);

correct_int2 = quadgk(f, 0, 1);

error2_16 = abs(correct_int2 - int2_16);

error2_32 = abs(correct_int2 - int2_32);

fprintf('int2_16 = %g\n', int2_16);

fprintf('int2_32 = %g\n', int2_32);

fprintf('correct_int2 = %g\n', correct_int2);

fprintf('error2_16 = %g\n', error2_16);

fprintf('error2_32 = %g\n', error2_32);

%% (c)

fprintf(' (c) \n')

f = @(x) x.*exp(x);

int3_16 = CompoundEchelon(f, 0, 1, 16);

int3_32 = CompoundEchelon(f, 0, 1, 32);

correct_int3 = quadgk(f, 0, 1);

error3_16 = abs(correct_int3 - int3_16);

error3_32 = abs(correct_int3 - int3_32);

fprintf('int3_16 = %g\n', int3_16);

fprintf('int3_32 = %g\n', int3_32);

fprintf('correct_int3 = %g\n', correct_int3);

fprintf('error3_16 = %g\n', error3_16);

fprintf('error3_32 = %g\n', error3_32);

%% (d)

fprintf(' (d) \n')

f = @(x) (x.^2).*(log(x));

int4_16 = CompoundEchelon(f, 1, 3, 16);

int4_32 = CompoundEchelon(f, 1, 3, 32);

correct_int4 = quadgk(f, 1, 3);

error4_16 = abs(correct_int4 - int4_16);

error4_32 = abs(correct_int4 - int4_32);

fprintf('int4_16 = %g\n', int4_16);

fprintf('int4_32 = %g\n', int4_32);

fprintf('correct_int4 = %g\n', correct_int4);

fprintf('error4_16 = %g\n', error4_16);

fprintf('error4_32 = %g\n', error4_32);

%% (e)

fprintf(' (e) \n')

f = @(x) (x.^2).*(sin(x));

int5_16 = CompoundEchelon(f, 0, pi, 16);

int5_32 = CompoundEchelon(f, 0, pi, 32);

correct_int5 = quadgk(f, 0, pi);

error5_16 = abs(correct_int5 - int5_16);

error5_32 = abs(correct_int5 - int5_32);

fprintf('int5_16 = %g\n', int5_16);

fprintf('int5_32 = %g\n', int5_32);

fprintf('correct_int5 = %g\n', correct_int5);

fprintf('error5_16 = %g\n', error5_16);

fprintf('error5_32 = %g\n', error5_32);

%% (f)

fprintf(' (f) \n')

f = @(x) (x.^3)./((x.^4-1).^0.5);

int6_16 = CompoundEchelon(f, 2, 3, 16);

int6_32 = CompoundEchelon(f, 2, 3, 32);

correct_int6 = quadgk(f, 2, 3);

error6_16 = abs(correct_int6 - int6_16);

error6_32 = abs(correct_int6 - int6_32);

fprintf('int6_16 = %g\n', int6_16);

fprintf('int6_32 = %g\n', int6_32);

fprintf('correct_int6 = %g\n', correct_int6);

fprintf('error6_16 = %g\n', error6_16);

fprintf('error6_32 = %g\n', error6_32);

%% (g)

fprintf(' (g) \n')

f = @(x) 1./((x.^2+4).^0.5);

int7_16 = CompoundEchelon(f, 0, 2*3^0.5, 16);

int7_32 = CompoundEchelon(f, 0, 2*3^0.5, 32);

correct_int7 = quadgk(f, 0, 2*3^0.5);

error7_16 = abs(correct_int7 - int7_16);

error7_32 = abs(correct_int7 - int7_32);

fprintf('int7_16 = %g\n', int7_16);

fprintf('int7_32 = %g\n', int7_32);

fprintf('correct_int7 = %g\n', correct_int7);

fprintf('error7_16 = %g\n', error7_16);

fprintf('error7_32 = %g\n', error7_32);

%% (h)

fprintf(' (h) \n')

f = @(x) x./((x.^4+1).^0.5);

int8_16 = CompoundEchelon(f, 0, 1, 16);

int8_32 = CompoundEchelon(f, 0, 1, 32);

correct_int8 = quadgk(f, 0, 1);

error8_16 = abs(correct_int8 - int8_16);

error8_32 = abs(correct_int8 - int8_32);

fprintf('int8_16 = %g\n', int8_16);

fprintf('int8_32 = %g\n', int8_32);

fprintf('correct_int8 = %g\n', correct_int8);

fprintf('error8_16 = %g\n', error8_16);

fprintf('error8_32 = %g\n', error8_32);

matlab复合梯形法,matlab实现复合梯形法则相关推荐

  1. 复合梯形的matlab求解,复合梯形和复合辛普森MATLAB程序

    <复合梯形和复合辛普森MATLAB程序>由会员分享,可在线阅读,更多相关<复合梯形和复合辛普森MATLAB程序(10页珍藏版)>请在人人文库网上搜索. 1.实 验 报 告课程名 ...

  2. 梯形求积公式 和 复合梯形求积公式 Matlab 实现

    梯形求积公式 和 复合梯形求积公式 Matlab 实现 梯形求积公式 仅使用区间两点 x1,f(x1),x2,f(x2) x_1,f(x_1),x_2,f(x_2) 组成的梯形面积S代替 ∫x2x1f ...

  3. C++ 复合梯形法、复合辛普森法求解定积分

    复合梯形法 将区间[a,b]划分为n等份,分点=a+kh,h=,k=0,1,2,...n,在每个子区间上采用梯形公式,得 复合辛普森法 以下为C++实现:(均以为例) //复合梯形法 #include ...

  4. Matlab:序列分析法MATLAB代码

    Matlab:序列分析法MATLAB代码 目录 输出结果 设计代码 输出结果 更新-- 设计代码 ###下面所有带代码中的n值需要以自己输入的数据为准###1.简单一次滑动平均法预测MATLAB程序代 ...

  5. 目标层准则层MATLAB,层次分析法-MATLAB

    层次分析法-MATLAB 第八章 层次分析法 层次分析法(Analytic Hierarchy Process,简称AHP)是对一些较为复杂.较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全 ...

  6. MATLAB牛拉法,MATLAB潮流程序(IEEE14直角坐标牛拉法).doc

    MATLAB潮流程序(IEEE14直角坐标牛拉法) MATLAB潮流程序(IEEE14 直角坐标 牛拉法) clear baseMVA=100; %功率基值 %%读Data1中数据 load Data ...

  7. matlab用梯形法计算河床断面积,Matlab课计算题.doc

    Matlab课计算题 PAGE \* MERGEFORMAT PAGE \* MERGEFORMAT 1Matlab计算题:1,农夫老李有一个半径为10m的圆形牛栏,里面长满了草,老李要将家里的一头牛 ...

  8. 核fisher matlab,使用Fisher法matlab结合P值?

    我不认为这是建立在MATLAB费舍尔的组合概率测试,但它不应该是很难实现: P = [0.43 0.12 0.0021 0.05 0.017 0.001 0.025 0.038 0.35 0.29]; ...

  9. 比例导引 matlab,比例导引法Matlab仿真.docx

    %三维制导模型,比例导引法求解%源代码作者不详,注释人:lylogn%Modified by lylogn,2012年4月17日clear all;close all;clc?dt=0.1;%仿真时间 ...

  10. matlab求双线性变换法,[Matlab]双线性变换法设计数字低通滤波器

    测试代码: %%****bin_lp.m*******************%% %% 使用双线性变换法设计低通滤波器 %% 2018年6月13日 14:27:37 %% author:Alimy ...

最新文章

  1. linux中编译C语言程序
  2. http请求头状态码
  3. Python学习笔记(基础知识点二)开更了~
  4. os.walk() 遍历目录下的文件夹和文件
  5. python免费课程400节-宿州编程少儿课程
  6. 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_4 Mybatis中使用Dao实现类的执行过程分析-查询方法...
  7. [NOIP2017 普及组] 成绩
  8. matlab 陈学松,基于强化学习的空调系统运行优化OPTIMIZATIONOF-同济大学.PDF
  9. excel单元格内容拆分_Excel技巧:帮你把单元格内容颠倒顺序显示
  10. python np arange_python – 为什么np.arccos(1.0)在np.arange的情况下给出nan?
  11. LCD液晶屏的通讯模式
  12. hosts文件的作用说明
  13. 无锡梅里旅游策划方案——中国第一锡宫!
  14. 杭州亲历重要时间点记录
  15. Xutils上传图片(2)
  16. 我的2013----默默的积累
  17. django 静态 html页面,Django模板:HTML静态模板的继承
  18. 使用echarts将Excel的数据可视化
  19. 2022-06-23 JVM学习
  20. CorelDRAW2023最新版矢量设计软件

热门文章

  1. 日志技术之JUL入门
  2. 一篇文章学会ICP许可证如何年检
  3. Freemarker 输出 $ 特殊符号
  4. layui控制文本框只能填写数字
  5. 2012年09月12日-13日
  6. JAVA面向对象学习——java面向对象概念———接口
  7. 【※taskmgr.exe进程知识详解※电脑知识】
  8. tasklist、taskkill、taskmgr
  9. java ee与j2ee_JavaEE/J2EE与J2SE/JDK版本的相关性
  10. 仓库实现降本增效的秘密法宝,WMS智能仓储系统