参考书籍:MATLAB高效编程技巧与应用:25个案例分析 91页

知道肯定有网友需要就贴上来了

function f = nIntergrate(fun,low,up)
% f,返回值,n重积分积分结果
% fun,是被积函数字符串形式;
% low 存储从外到内各重积分的积分下限函数;
% up 存储从外到内各重积分的积分上限函数(都是字符串形式)
% 为了保证函数正常运行,low和up内的函数遵循如下原则:设积分重数为m,最内层
% 到最外层积分变量依次以xm,...x2,x1来表示(规定只能以这样的顺序而且只能字母x代表变量)
% 最内层的变量积分范围不管是否和x(m-1)相关都要求出现x(m-1),不是的可以在积分范围
% 后加上‘+0*x(m-1)’等形式的字符串,依次类推,次内层要求x(m-2)出现,一直到最
% 外层,最外层才是常数
%
% 参考书籍:MATLAB高效编程技巧与应用:25个案例分析 91页N = length(low);
fun = vectorize(fun);
if verLessThan('MATLAB','7.8')expr = GenerateExpr_quadl(N);
elseif mod(N,2) == 0expr = GenerateExpr_quad2d(N);elseexpr = ['quadl(@(x1) arrayfun(@(x1)',GenerateExpr_quad2d(N-1),',x1),',low{1},',',up{1},')'];end
end%============================================================
% 主要利用quadl函数递归构造求解表达式,适用于R2009a以前的版本
%============================================================function expr = GenerateExpr_quadl(n)if n == 1expr = ['quadl(@x',num2str(N),')',fun,',',low{N},',',up{N},')'];elseexpr = ['quadl(@(x',num2str(N-n+1),') arrayfun(@(x',num2str(N-n+1),')',GenerateExpr_quadl(n-1),',x',num2str(N-n+1),'),',low{N-n+1},',',up{N-n+1},')'];endend%============================================================
% 主要利用quad2d函数递归构造求解表达式,适用于R2009a以及以后的版本
%============================================================function expr = GenerateExpr_quad2d(n)if n == 2expr = ['quad2d(@(x',num2str(N-1),',x',num2str(N),')',fun,',',low{N-1},',',up{N-1},',@(x',num2str(N-1),')',low{N},',@(x',num2str(N-1),')',up{N},')'];elseexpr = ['quad2d(@(x',num2str(N-n+1),',x',num2str(N-n+2),')','arrayfun(@(x',num2str(N-n+1),',x',num2str(N-n+2),')',GenerateExpr_quad2d(n-2),',x',num2str(N-n+1),',x',num2str(N-n+2),'),',low{N-n+1},',',up{N-n+1},',@(x',num2str(N-n+1),')',low{N-n+2},',@(x',num2str(N-n+1),')',up{N-n+2},')'];endend
f = eval(expr);
end

例如如下的积分

应当写成

clear all;clc;
format longfun = 'exp(x1*x2*x3*x4)';
up = {'1','0*x1+1','0*x2+1','0*x3+1'};
low = {'0','0*x1','0*x2','0*x3'};f = nIntergrate(fun,low,up)

即可得到结果

1.069397608859771

注意积分范围up和low本来是数字,但是按nIntergrate的要求,积分范围一定要包含次外层变量,故在表达式中加上了

‘0*x1’,‘0*x2’之类的字符串,使用时注意low和up的积分次序依次是x1,x2,x3...xm,不要写错积分次序。

matlab实现四重积分和多重积分相关推荐

  1. 运用数学软件matlab求无穷积分,matlab积分的计算及其简单应用论文.doc

    积分的计算及其简单应用 摘要:本文简要的概述了MATLAB 在高等数学中积分的计算及应用:利用MATLAB 中符号积分和数值积分的命令,计算定积分和不定积分.同时,也可以通过这些命令来解决一些实际问题 ...

  2. 基于MATLAB的特殊函数积分

    目录 前言 (一)振荡函数的积分 (二)反常(广义)积分 1. 无界函数的反常积分 2. 无穷区间上的反常积分 一. quadgk()函数在MATLAB中的运用 二. 基于MATLAB的特殊函数积分 ...

  3. matlab 积分函数曲线,Matlab之函数积分 | 学步园

    Matlab之函数积分 一元函数(一重)积分: 求一元函数积分有quad函数,quadl函数,int函数: quad和quadl: quad和quadl两个函数,他们使用不同的 例:求 的积分: f= ...

  4. matlab 微分命令 求导,Matlab微分和积分

    第六讲 Matlab 微分和积分 理论介绍:微分.有限差分.积分.离散求和 软件求解:函数及常见注意事项 一.一元函数导数与微分 Matlab 由命令函数diff 来完成求导运算,调用格式为:diff ...

  5. 普朗克公式matlab,用MATLAB实现普朗克函数积分的快捷计算.pdf

    用MATLAB实现普朗克函数积分的快捷计算 维普资讯 ≮ 曩≯ : 一 l2 量 ii!iiiiiiliii! 文章编号: 1672-8785(2008)04-0012-03 用MATLAB实现普朗克 ...

  6. MATLAB高斯-勒让德积分求解

    MATLAB高斯-勒让德积分求解 积分函数 function [ y ] = CalcuFunctionValue( x ) y=exp(-x^2);%积分函数 end 求积分算法函数 functio ...

  7. 基于MATLAB的曲面积分

    目录 前言 一. 第一类曲面积分 例题1 例题2 二. 第二类曲面积分 例题3 前言 此篇将介绍两种曲面积分:对面积的曲面积分和对坐标的曲面积分.同时借助例题,利用MATLAB进行代码仿真. 一. 第 ...

  8. 使用scipy.integrate模块中的quad和dblquad方法分别进行单重积分和多重积分

    一.单重积分     一般而言,使用求解微积分可以分为两大类:符号积分(即求出解析解)和数值积分(即求出数值解).在计算机的处理当中,数值解往往更有意义.     quadquadquad函数是 sc ...

  9. matlab一维矩形积分,玩转matlab之一维 gauss 数值积分公式及matlab源代码

    在数值分析中,尤其是有限元刚度矩阵.质量矩阵等的计算中,必然要求如下定积分: $$ I=\int_a^b f(x)dx $$学好gauss积分也是学好有限元的重要基础,学过高等数学的都知道,手动积分能 ...

最新文章

  1. NoSQL 数据库系统对比
  2. BC之链式块状结构:区块链之链式块状结构——链式块状结构、内容相关配图
  3. blender下载_下载此Blender Hotkey备忘单
  4. 蓝牙 MultipeerConnectivity
  5. 用 JAVA 开发游戏连连看(之四)添加更多的功能
  6. eclipse配置文件
  7. 5G NR PUSCH non-codebook SRS/DMRS
  8. 滤芯怎么换 石头机器人_拆开看个究竟,石头扫拖一体机器人T6到底如何?
  9. C语言坐标打飞机,C语言实现打飞机小游戏
  10. Hadoop Web应用程序代理服务器 | Hadoop Web Application Proxy
  11. 移动磁盘数据错误循环冗余检查,要怎样恢复数据
  12. mysql partition赋权_Mysql的赋权
  13. 超级表格企业版收费即将进行政策调整
  14. split,splice,slice 三者的用法
  15. Mind Manager 13 值得购买吗?一次糟糕的购物体验
  16. linux nuc 吗 支持_当NUC遇上本地衍生版Linux
  17. linux系统四个组成部分,Linux系统由哪几部分组成?系统详解(干货)
  18. mapping.xml POJO的映射文件
  19. GGDH模型计算浮升力生成项
  20. CentOS7.2系统上搭建JDKTomcat详细步骤

热门文章

  1. 边坡裂缝拉绳位移计的原理及怎样进行长期健康监测
  2. 卸载微软的拼音输入法
  3. 计算机用word做海报,如何用Word文档做出一张简单的海报!
  4. adb的问题“No command ‘adb’ found, did you mean:”
  5. Excel 斜线表头制作方法
  6. Inside Lucene/超人气搜索引擎学习(2.0)-读取索引
  7. PostgreSQL 时序数据案例 - 时间流逝, 自动压缩, 同比\环比
  8. 【ssh连接】解决网络突然断线进程执行中止问题
  9. UVa 1645 - Count
  10. nginx的全局配置和HTTP相关配置