matlab复合梯形法,matlab实现复合梯形法则
复合梯形法则:
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实现复合梯形法则相关推荐
- 复合梯形的matlab求解,复合梯形和复合辛普森MATLAB程序
<复合梯形和复合辛普森MATLAB程序>由会员分享,可在线阅读,更多相关<复合梯形和复合辛普森MATLAB程序(10页珍藏版)>请在人人文库网上搜索. 1.实 验 报 告课程名 ...
- 梯形求积公式 和 复合梯形求积公式 Matlab 实现
梯形求积公式 和 复合梯形求积公式 Matlab 实现 梯形求积公式 仅使用区间两点 x1,f(x1),x2,f(x2) x_1,f(x_1),x_2,f(x_2) 组成的梯形面积S代替 ∫x2x1f ...
- C++ 复合梯形法、复合辛普森法求解定积分
复合梯形法 将区间[a,b]划分为n等份,分点=a+kh,h=,k=0,1,2,...n,在每个子区间上采用梯形公式,得 复合辛普森法 以下为C++实现:(均以为例) //复合梯形法 #include ...
- Matlab:序列分析法MATLAB代码
Matlab:序列分析法MATLAB代码 目录 输出结果 设计代码 输出结果 更新-- 设计代码 ###下面所有带代码中的n值需要以自己输入的数据为准###1.简单一次滑动平均法预测MATLAB程序代 ...
- 目标层准则层MATLAB,层次分析法-MATLAB
层次分析法-MATLAB 第八章 层次分析法 层次分析法(Analytic Hierarchy Process,简称AHP)是对一些较为复杂.较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全 ...
- MATLAB牛拉法,MATLAB潮流程序(IEEE14直角坐标牛拉法).doc
MATLAB潮流程序(IEEE14直角坐标牛拉法) MATLAB潮流程序(IEEE14 直角坐标 牛拉法) clear baseMVA=100; %功率基值 %%读Data1中数据 load Data ...
- matlab用梯形法计算河床断面积,Matlab课计算题.doc
Matlab课计算题 PAGE \* MERGEFORMAT PAGE \* MERGEFORMAT 1Matlab计算题:1,农夫老李有一个半径为10m的圆形牛栏,里面长满了草,老李要将家里的一头牛 ...
- 核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]; ...
- 比例导引 matlab,比例导引法Matlab仿真.docx
%三维制导模型,比例导引法求解%源代码作者不详,注释人:lylogn%Modified by lylogn,2012年4月17日clear all;close all;clc?dt=0.1;%仿真时间 ...
- matlab求双线性变换法,[Matlab]双线性变换法设计数字低通滤波器
测试代码: %%****bin_lp.m*******************%% %% 使用双线性变换法设计低通滤波器 %% 2018年6月13日 14:27:37 %% author:Alimy ...
最新文章
- linux中编译C语言程序
- http请求头状态码
- Python学习笔记(基础知识点二)开更了~
- os.walk() 遍历目录下的文件夹和文件
- python免费课程400节-宿州编程少儿课程
- 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_4 Mybatis中使用Dao实现类的执行过程分析-查询方法...
- [NOIP2017 普及组] 成绩
- matlab 陈学松,基于强化学习的空调系统运行优化OPTIMIZATIONOF-同济大学.PDF
- excel单元格内容拆分_Excel技巧:帮你把单元格内容颠倒顺序显示
- python np arange_python – 为什么np.arccos(1.0)在np.arange的情况下给出nan?
- LCD液晶屏的通讯模式
- hosts文件的作用说明
- 无锡梅里旅游策划方案——中国第一锡宫!
- 杭州亲历重要时间点记录
- Xutils上传图片(2)
- 我的2013----默默的积累
- django 静态 html页面,Django模板:HTML静态模板的继承
- 使用echarts将Excel的数据可视化
- 2022-06-23 JVM学习
- CorelDRAW2023最新版矢量设计软件