一个程序彻底搞懂Matlab的数值积分、符号积分问题。

  1. 数值积分问题,给定被积分函数和积分上下限,使用 integral 函数得到积分值;
  2. 符号积分问题,通常结果是解析解,即需要知道被积分函数的原函数表达式;如果原函数未知或者表达形式过于复杂(同样没有明确的表达式),可以自定义一个积分函数(给定一个积分区间,返回一个积分值)来简短表达;
  3. 一重积分问题本质上得到的是面积,当然可以用积分定义来计算总积分。
function IntegralDemo()
clear; clc;
%% 数值积分
% sample 1
fun1 = @(x) sin(x);
result = integral(fun1, 0, pi);
disp(result);                         % 2.0000
% sample 2
fun2 = @(x) sin(x) ./ x;              % 注意运算符 ./
result = integral(fun2, 0, 1);
disp(result);                         % 0.9461
%% 解析解
syms x t
% sample 3
y1 = sin(x);
f1 = int(y1, x, 0, t);
disp(f1);                             % 1 - cos(t)
% sample 4
y2 = sin(x) / x;
f2 = int(y2, x, 0, t);
disp(f2);                             % sinint(t)
disp(double(subs(f2, t, 1)));         % 0.9461,相当于 sample 2 的结果;
disp(MyIntegral1(fun2, 0, 1, 10000)); % 0.9461, 用自定义的积分方法
disp(MyIntegral2(fun2, 0, 1));        % 0.9461, 用自定义的积分方法
% f2 和 MyIntegral1(fun, 0, t, 10000) 或者 MyIntegral2(fun, 0, t) 等价
% 情况复杂一点,被积分函数没有原函数或者没有明确的表达式,可以采用自定义函数这种方法 function result = MyIntegral1(fun, minX, maxX, intervalCount)
% fun: 函数句柄
% minX: 积分下限
% maxX: 积分上限
% intervalCount: 积分区间份数
% 利用积分的定义来求面积
result = 0;
h = (maxX - minX) / intervalCount;   % 步长
for i = 1 : intervalCountresult = result + h * fun(minX + (i - 0.5) * h);    % 采用简单矩形公式:面积 = 底 × 高
endfunction result = MyIntegral2(fun, minX, maxX)
% fun: 函数句柄
% minX: 积分下限
% maxX: 积分上限
% 调用 integral 函数
result = integral(fun, minX, maxX); 

【Matlab学习手记】Matlab积分问题相关推荐

  1. 【Matlab学习手记】标签显示在刻度之间

    问题:Matlab标签和刻度线默认是对齐的,如何将标签设置到刻度线之间? 三个实例. plot类型 clear; clc; x = 0:0.1:2*pi; y = sin(x); plot(x, y) ...

  2. Matlab学习手记——制作GIF动图

    目的:利用Matlab制作GIF动图. 结果图 测试代码 clear;clc; filename = '页岩碎屑.gif'; % 保存文件名 Iters = [1:9 10*(1:9) 100*(1: ...

  3. 【Matlab学习手记】sym8小波滤波

    提供sym8小波,四层全局软阈值滤波源代码,采用Matlab语言编写,可移植性强. 源代码 clear;clc; load leleccum; indx = 1:3450; noisez = lele ...

  4. sym8 matlab,【Matlab学习手记】sym8小波滤波

    提供sym8小波,四层全局软阈值滤波源代码,采用Matlab语言编写,可移植性强. 源代码 clear;clc; load leleccum; indx = 1:3450; noisez = lele ...

  5. 【Matlab学习手记】椭圆拟合

    熟悉 Matlab 函数 nlinfit 使用. 椭圆拟合方程: 结果图: 程序: clear; clc; F = @(p, x) p(1) * x(:, 1) .^ 2 + p(2) * x(:, ...

  6. 【Matlab学习手记】二维码

    目的:二维码的识别和生成. 代码 function varargout = QRcode(varargin) % QRCODE MATLAB code for QRcode.fig % QRCODE, ...

  7. 【Matlab学习手记】二次多项式曲面拟合

    二次多项式曲面公式 总共有6个系数. 绘制曲面图形时,一般给定x和y的取值(一维数组),然后对x和y网格化成二维数组X和Y,将X和Y代入公式,即可得到曲面的数值,最后用surf函数显示. 实例 给定一 ...

  8. matlab如何制作和保存gif动图,Matlab学习手记——制作GIF动图

    的:利用Matlab制作GIF动图. 结果图 测试代码 clear;clc; filename = '页岩碎屑.gif'; % 保存文件名 Iters = [1:9 10*(1:9) 100*(1:9 ...

  9. 【Matlab学习手记】了解Matlab界面布局

    下图是我的Matlab软件布局,包含四部分:当前文件夹(Current Folder).工作区(Workspace).编辑器(Editor)和命令行窗口(Command Window). 当前文件夹是 ...

最新文章

  1. JSON数据序列化与反序列化实战
  2. Spring @Resource、@Autowired、@Qualifier区别
  3. 11个顶级 JavaScript 日历插件
  4. DataWorks 如何撑起阿里99%的数据开发?
  5. java常用的正则表达式
  6. Android2.0以后读取通讯录中电话号码的改变
  7. 车辆颜色分类网络—BeerNet
  8. 软件开发常见的开发方向
  9. 自动驾驶开源平台整理
  10. 从外包测试到阿里巴巴,一位三本女生逆袭之路
  11. call和apply详解-利用借充电宝模拟用法
  12. 2021-基于深度学习的人脸检测综述文献-摘要
  13. 浅析PC机串口通讯流控制
  14. 搭建自己的技术博客系列(六)酷炫主题icarus常用配置整合版,快速搞定博客首页
  15. 电脑显示器不亮的三种原因和解决方法
  16. 吻吻更健康!揭晓接吻的11大优点
  17. IDEA安装插件提示was not installed: Cannot download解决办法
  18. 基于使用方的火控系统的测试平台研究
  19. C语言程序翻译环境详解
  20. tkinter-grid布局详解

热门文章

  1. 驱动开发:Win10枚举完整SSDT地址表
  2. 教你用PS制作gif动态图
  3. 函数,类模板全特化,偏特化
  4. 一文读懂自动驾驶传感器之激光雷达、毫米波雷达、超声波雷达及摄像头
  5. 腾讯地图 周边 poi 搜索及参数配置
  6. cuda中pinned memory(page-locked memory)
  7. python量化策略——改进的美林时钟代码(代码版)
  8. 12306泄露数据分析(二)
  9. python信用评分卡建模(附代码)
  10. 腾讯企业邮箱api java,企业邮箱丰富的开放接口_腾讯企业邮箱服务中心