一元函数定积分的数学表示为

在被积函数f(x)理论上不可积时,即无法求出该积分的解析解,所以往往要采用数值方法来求解。求解定积分的数值方法是多种多样的,如简单的梯形法、Simpson 法、Romberg 法等算法都是数值分析课程中经常介绍的方法。它们的基本思想都是将整个积分空间[a, b]分割成若干个子空间。

,其中
,这样整个积分问题就分解为下面的求和形式。
粗区间划分
细区间划分
% 语法:
% 版本9.6.0.1072779 (R2019a) on PCWIN64
% shi z.y. (155****@qq.com), 2019-09-14 12:36
%-------------------------------------------------------------------------clear variable;close all
clc;format compact
%% -------------------------------------------------------------------------
a= 0;
b = pi;
n =50;
x = linspace(a,b,n);
y = x.^2;
plot(x,y,'r-')
hold on
for i = 1:length(x)-1plot([x(i) x(i) x(i+1)],[0 y(i) y(i)],'b-')hold on
end
title('y=x^2,n=50')

梯形求积

而在每一个小的子空间上都可以近似地求解出来,当然最简单的求每-一个小的子空间的积分方法是采用梯形近似的方法。梯形方法还可以应用于已知数据样本点的数值积分问题求解。假设在实验中测得一组数据(x1,y1), (x2,y2), (x3,y3), ... (xN,yN),且x为严格单调递增的数值,直接求取这些点对应曲线的数值积分最直观的方法就是用梯形方法.

matlab积分实现

%例: 试用梯形法求出x∈(0,π)区间内,函数sin x的定积分值。x = linspace(0,pi,1000);
y= sin(x);
S= sum((2*y(1:end-1)+diff(y)).*(diff(x)))/2

辛普森算法求积

单变量函数的数值积分还可以采用一般数值分析中介绍的其他算法进行求解。例如,可以采用下面给出的Simpson方法求解出

上的积分的近似值为
y = quad(fun,a,b)

其中,Fun为描述被积函数的字符串变量,可以是一个Fun.m函数文件名,该函数的一般格式为y=Fun(x),还可以用inline()函数和匿名函数直接定义。a, b分别为定积分的上限和下限.

多重积分

使用MATLAB提供的dblquad()函数就可以直接求出上述双重定积分的数值解。该函数的调用格式为

y=db1quad (Fun ,Xm,IM , Ym ,YM)%矩形区域的双重积分
y=dblquad(Fun,xm,TM,Ym,YM,E) % 限定精度的双重积分

注意,本函数不能返回被积函数调用次数,故用户可以自已在被积函数中设置一个计数器,从而测出调用次数。

蒙特卡洛积分

Monte Carlo法是通过大量实验来求取随机变量近似值的一种常用的方法,在现代科学研究中经常用来求解一些建模困难的问题。

考虑图3中给出的示意图。假设正方形的边长为1,可见,四分之一圆的面积是π/4,其面积和正方形面积的比是

,换句话说,如果产生一个均匀分布的随机数,它落到四分之一圆的概率为
。生成N组随机数x和y,使其均为区间[0,1]内均匀分布的随机数。这样记满足
概率为Ni,则对大量的实验数据,有Ni/N≈π/4,.如果N足够大,则可以通过下面的式子近似求出π的值。
% 语法:
% 版本9.6.0.1072779 (R2019a) on PCWIN64
% shi z.y. (155****@qq.com), 2019-09-14 12:51
%-------------------------------------------------------------------------clear variable;close all
clc;format compact
%% -------------------------------------------------------------------------
N=1e5;
x= rand(N,1);
y = rand(N,1);
i = (x.^2+y.^2)<1;
p = sum(i)/N*4
p =3.1387
>>

echo on
% 语法:
% 版本9.6.0.1072779 (R2019a) on PCWIN64
% shi z.y. (155****@qq.com), 2019-09-14 12:51
%-------------------------------------------------------------------------clear variable;close all
clc;format compact
%% -------------------------------------------------------------------------
N=1e3;
x= rand(N,1);
y = rand(N,1);
i = (x.^2+y.^2)<1;
j = (x.^2+y.^2)>=1;
p = sum(i)/N*4
p =3.0440
r =1;
theta=0:0.01:pi/2;
x1 = r*cos(theta);
y1 =r*sin(theta);
plot(x1,y1,'r-','linewidth',2)
axis equal
axis([0 1 0 1])
box on
grid on
hold on
scatter(x(i),y(i),'b')scatter(x(j),y(j),'g')
>> 

matlab逆变换法产生随机数_matlab数值积分方法(一)相关推荐

  1. matlab逆变换法产生随机数_matlab 产生随机数的方法

    首先注意: (1)用计算机产生的是"伪随机数".用投色子计数的方法产生真正的随机数 , 但电脑若也这样做 , 将会占用大量内存 ; 用噪声发生器或放射性物质也可产生真正的随机数 , ...

  2. matlab逆变换法产生随机数_matlab中产生随机数的程序

    1. 由 U ( 0,1 )分布的随机数产生 U ( a,b )的随机数 r=rand(1,20); s=a+(b-a)*r; 例: r=rand(1,20); s=2+(10-2)*r s = Co ...

  3. matlab逆变换法产生随机数_信号处理——生成给定分布随机数

    作者:桂. 时间:2017-03-12  19:31:55 前言 本文是曲线拟合与分布拟合一文的插曲,进行分布拟合时,碰到一个问题是,如何指定分布的随机数呢?本文主要包括: 1)连续型随机数: 2)离 ...

  4. R语言:逆变换法生成随机数

    逆变换法生成随机数: 一.概念解释 1.PDF 2.PMF 3.CDF 二.连续型情况举例 三.离散型情况举例 一.概念解释 1.PDF probability density function 概率 ...

  5. matlab周期图法,周期图谱估计及其改进方法的Matlab仿真

    1引言对信号与系统的研究处理主要有时域.频域两种方法.对确定性信号,可以进行傅里叶变换,从而进行频域分析,但对随机信号,由于其傅里叶变换不存在,通常是求其功率谱来进行频谱分析,因为功率谱反映了随机信号 ...

  6. matlab 三角分解法 解线性方程组的直接方法

    %MtriangleDecomposition %带列主元法的三角分解 %直接三角分解法triangle decomposition%function Tresult=eliminationM(inp ...

  7. 【转】CT图像重构方法详解——傅里叶逆变换法、直接反投影法、滤波反投影法

    转自:​​​​​​CT图像重构方法详解--傅里叶逆变换法.直接反投影法.滤波反投影法_Absolute Zero-CSDN博客_反投影法 绪 在做CT图像处理的时候遇到很多问题,对于滤波反变换有许多细 ...

  8. 数值积分方法之2——梯形法与外推法求近似积分

    数值积分方法之2--梯形法与外推法求近似积分 说明 要求 Matlab实现 运行结果 梯形法与外推法对比 说明 Matlab的版本为Matlab R2019b:这篇笔记的全部内容是基于上课时老师布置的 ...

  9. CT图像重构方法详解——傅里叶逆变换法、直接反投影法、滤波反投影法

    绪 在做CT图像处理的时候遇到很多问题,对于滤波反变换有许多细节存在疑问,经过多天查找资料和利用MATLAB程序一步步实现后终于豁然开朗,于是想要总结成文,作为笔记方便今后查看.文中若有错误欢迎指出! ...

最新文章

  1. leetcode674. 最长连续递增序列
  2. 怎么保证读取最新数据_Kafka怎么保证数据不丢失?
  3. 好的PPT——准备工作
  4. “被枪指头,中国教授用功夫击退美国劫匪”,他的身份不简单
  5. [设计模式] javascript 之 策略模式
  6. 宕机日志怎么看 thread detail_如何快速过滤出一次请求的所有日志?
  7. minigui大号字体的实现,即ttf库的使用【转】
  8. 睡眠排序法-objective C版的代码
  9. 不愿做「奴隶」的程序员们组建了一个王国
  10. 使用 RIP、OSPF 发布默认路由
  11. eclipse无法启动的各种解决方法
  12. 他用代码卖手机,卖出年流水上亿
  13. 用C++程序理解汉字的机内码表示
  14. 汇编in和out介绍
  15. docker 之镜像制作dockerfile
  16. C语言课程设计之火车订票系统实现
  17. ASPF与NAT ALG的工作原理与应用
  18. Elasticsearch Guide[7.15]翻译 Aliases
  19. 仿朋友圈图片查看功能
  20. 星特朗望远镜怎么样_星特朗天文望远镜怎么样|使用体验

热门文章

  1. 如何在 ABAP Development Tool 创建新的 ABAP Cloud 项目
  2. 如何在 Cypress 测试代码中屏蔽(Suppress)来自应用代码报出的错误消息
  3. 如何下载SAP Cloud for Customer UI技术模型的XML源代码到本地
  4. SAP Cloud for Customer前台发送到后台的HTTP请求,遇到错误该怎么分析
  5. 使用Angular的property binding给HTML DOM元素的class动态赋值
  6. 如何在Chrome开发者工具console里手动调用focus方法给元素设置focus
  7. Angular Shadow Root DOM的一些API
  8. how is view embedded via component usage being initialized
  9. SAP CRM WebClient UI上以html格式显示note的问题讨论
  10. 在SAP WebIDE Database Explorer里操作hdi实例