MATLAB基础教程(9)——高级积分运算、二重积分

目录

复习定积分(单变量)

二重积分

今日小结


复习定积分(单变量)

在之前,先复习一下之前学习的内容。使用matlab求解定积分的步骤大概如下:

  1. 定义符号变量(syms关键字)
  2. 定义内联函数(inline函数)
  3. 使用matlab内置函数进行计算定积分或者不定积分(使用int函数,具体求解定积分还是不定积分,根据参数的数量决定)

我们都知道:定积分是求解一个图形与坐标轴围成的面积。而今天我们需要深入理解一下:定积分是求解两条曲线之间围成的面积,如果只有一个公式,比如x,我们可以理解成 x-0,y=x 这个函数减去了 y=0这个常数函数,或者说,上面函数与x轴围成的面积减去了下面函数与x轴围成的面积(并且这个面积在x轴上方是正的,下方是负的),这样我们就可以推广,假设我们现在有两条曲线,一个是sinx,一个是e^x ,我们求在0-pi的范围内,两个图形围成的面积,容易知道,两个图形大概是这样围起来的:

PS: 上图的代码和讲解如下

%% 目标图像clc;clear all; % 清除原先的东西x = 0:0.01:pi; % x的范围是0-pi,以0.01为一个小分割点细分出一个范围y1 = sin(x); % sinxy2 = exp(x); % e^xfigure; % 弄一个figure的框体hold on; % 保持这个窗体,保证后面的内容都画在了上面,hold off解除subplot(221); % 开辟子窗体,221:共2行2列,里面的第一个fill(x,y1,'r'); % 画图并填充颜色,变量是x,函数是y1,颜色是r,红色title('y=sinx');% 设置标题,必需先fill,才能添加标题,否则会失败subplot(222); % 开辟子窗体,222,共2行2列,里面第二个fill(x,y2,'b'); % b 蓝色title('y=e^x');subplot(223); % 开辟子窗体,223,共2行2列,里面第三个fill([x, fliplr(x)],[y1,fliplr(y2)],'g');% 两个函数直接填充颜色,每一个方括号代表一个函数的内容title('两个函数中间的部分');hold off;

OK,那么我们就可以很容易的使用int()函数算出这样一个定积分,代码如下:

%% 对上面的函数进行计算定积分syms x;f = 'exp(x) - sin(x)';res_int = int(f, x, 0, pi);disp(res_int);

上面左边是我手算结果,右边是matlab计算结果,可见我算的还是很准的哈哈哈哈哈哈哈。


二重积分

上面复习了定积分的计算和一般概念,下面我们看二重积分,先了解下二重积分是什么吧:

二重积分的一个概念是求体积(还有其他的,比如薄片质量等,在这里先不谈,先说体积的问题),那么明确概念其实就不难了,定积分求面积、二重积分求体积,那么这个体积是哪里的体积呢?

如图,粉红色的是z=f(x,y)的函数图像,下面是地面的阴影部分,红色的是边界,这个体积就是粉色的顶部与底面阴影之间的一个曲顶柱体的体积,那这个体积怎么求呢?

在定积分中,我们把整个面积分成了无数个小面积,计算后累加,同样的,在二重积分中,我们也采取同样的方法,我们把这个柱体切成一个一个的小柱体,就像图中的那个黄色柱体一样,假设我们把整个底面分成了无数份,每一份的底面积都无限接近于0,假设这个底面积是d\sigma ,那么这个地方的高就是f(x,y),所以这个小柱体的体积就是 f(x,y)d\sigma ,我们只需要将这些小体积全部加起来,就能得到整个曲顶柱体的体积公式了:

dV = f(x, y)d\sigma => V = \iint f(x,y)d\sigma => V = \int_{a}^{b}dx\int_{\varphi(x1)}^{\varphi(x2)} f(x,y)dy <=> V = \int_{c}^{d}dy\int_{\varphi(y1)}^{\varphi(y2)} f(x,y)dx  

并且我们很容易发现,积分的区间其实就是底面,被积函数是曲面的公式。公式中各个符号在下图中体现:

现在,计算一个例子给大家看,假设底面如图所示(灰色阴影部分):

先积分x(Y型)时区域可表示为:Dx = {(x,y)|0<=y<=1, y<=x<=1}。

先积分y(X型)时区域可表示为:Dy = {(x,y)|0<=y<=x, 0<=x<=1}。

下面我们以X型为例,使用matlab计算曲面为 f(x,y) = xcos(y)的曲顶柱体的体积:

详细的代码以及注释见下方:

%% 计算二重积分clear all;f = @(x,y)x.*cos(y); % 定义一个函数句柄,两个变量分别是x,y% 这样定义函数句柄时,需要在所有的运算前加一个.(表示对应元素各自计算,不按照矩阵的规则)ymax = @(x) x; % 根据0<=y<=x处,右方的y=x反解出y,res = integral2(f,0,1,0,ymax);% 计算二重积分的函数% integral2(fun, xmin, xmax, ymin, ymax)disp(res);

最后,让我们欣赏一下这个曲面的形状吧:

代码如下:

%% 看一看这个曲面吧[x,y] = meshgrid(0:0.001:1, 0:0.001:1);% 设置x和y的区间,以及细分程度z = (x.*cos(y)); % 使用一个z来代表这个函数mesh(x,y,z) % 画出二维曲面图像title('x*cos(y)')

那么,今天就先到这里吧,三重积分留到下次在讲解,谢谢观看!


今日小结

今天我们学到了如下的知识:

  1. 复习了之前学习的定积分、不定积分的内容
  2. 学习了二重积分的概念,以及应用的大概场景:求曲顶柱体体积,平面薄片质量(底面换位薄片,被积函数即薄片面密度的函数)等。
  3. 学会了如何在一个figure里面绘制多个图像
  4. 学会了如何在matlab中绘制图像、对目标区域填充颜色并命名标题
  5. 学会了怎么使用matlab的integral2计算二重积分
  6. 学会了怎么在matlab中声明(定义)一个函数句柄,或者说创建一个多元函数,以及怎么反解一个函数中某个变量(y = @(x) x  ,此处函数是y=x),其实说白了,反解函数就是定义函数句柄。
  7. 学会了怎么在matlab中绘制二维曲面的图像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器怎么存储文件节省空间,超大空间云服务器文件存储

超大空间云服务器文件存储 内容精选换一换本节操作指导您完成Windows操作系统云服务器磁盘空间清理。弹性云服务器匀出一部分磁盘空间来充当内存使用&#xff0c;当内存耗尽时&#xff0c;云服务器可以使用虚拟内存来缓解内存的紧张。但当内存使用率已经非常高时&#xff0c;频…

C语言变量和数据类型

从数据在内存中的存储方式中可以得知 计算机要处理的数据&#xff08;诸如数字、文字、符号、图形、音频、视频等&#xff09;是以二进制的形式存放在内存中的&#xff1b;我们将8个比特&#xff08;Bit&#xff09;称为一个字节&#xff08;Byte&#xff09;&#xff0c;并将字…

MATLAB基础教程(10)——二维中的数据可视化

目录 MATLAB数据可视化 绘图 在同一个figure里面绘制多个图形 本期小结 MATLAB数据可视化 绘图 绘制图形&#xff08;二维&#xff09;一般使用plot函数&#xff0c;这个函数一般能满足很多画图的功能了&#xff0c;比如我们能绘制一个函数图像&#xff1a; 代码如下&…

没有bug队——加贝——Python 练习实例 29,30

目录 29.题目&#xff1a; 30.题目&#xff1a; 彩蛋&#xff1a; 扩展资料 29.题目&#xff1a; 给一个不多于5位的正整数&#xff0c;要求&#xff1a;一、求它是几位数&#xff0c;二、逆序打印出各位数字。 程序分析&#xff1a;学会分解出每一位数。 注&#xff1a;…

没有bug队——加贝——Python 练习实例 31,32

31.题目&#xff1a; 请输入星期几的第一个字母来判断一下是星期几&#xff0c;如果第一个字母一样&#xff0c;则继续判断第二个字母。 程序分析&#xff1a;用情况语句比较好&#xff0c;如果第一个字母一样&#xff0c;则判断用情况语句或if语句判断第二个字母。用 if 语句…

MATLAB基础教程(11)——二维中的数据可视化(续)

目录 今天目标&#xff1a; 画一个图像并且给图像加上标题 子图绘制 一些小知识 grid 设置框线 box 设置边框 polar() 绘图 今天小结 今天目标&#xff1a; 画一个图像并且给图像加上标题 首先我们画一张很简单的图形&#xff0c;比如就画一个y cos x 的图像吧。 代码…

没有bug队——加贝——Python 练习实例 33,34

目录 33.题目&#xff1a; 小知识&#xff1a; 参数 返回值 我们换种写法&#xff1a; 34.题目&#xff1a; 我们也换种写法&#xff1a; 33.题目&#xff1a; 按逗号分隔列表。 小知识&#xff1a; join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串…

没有bug队——加贝——Python 练习实例 35,36

目录 35.题目&#xff1a;文本颜色设置。 小知识&#xff1a; 36.题目&#xff1a;求100之内的素数。 何为素数&#xff1f; 35.题目&#xff1a;文本颜色设置。 class bcolors:HEADER \033[95mOKBLUE \033[94mOKGREEN \033[92mWARNING \033[93mFAIL \033[91mENDC …

C语言各种类型数据的输出显示

之前我们使用 puts 来输出字符串。puts 是 output string 的缩写&#xff0c;只能用来输出字符串&#xff0c;不能输出整数、小数、字符等&#xff0c;我们需要用另外一个函数&#xff0c;那就是 printf。 printf 比 puts 更加强大&#xff0c;不仅可以输出字符串&#xff0c;…

没有bug队——加贝——Python 练习实例 37,38

目录 37.题目&#xff1a;对10个数进行排序。 Python sort()方法 语法 参数 返回值 Python sorted函数及用法 语法 返回值 38.题目&#xff1a;求一个3*3矩阵主对角线元素之和。 37.题目&#xff1a;对10个数进行排序。 程序分析&#xff1a;可以利用选择法&#xff…

C语言中的整数

整数是编程中常用的一种数据&#xff0c;C语言通常使用int来定义整数&#xff08;int 是 integer 的简写&#xff09;。 现代操作系统中&#xff0c;int 一般占用 4 个字节&#xff08;Byte&#xff09;的内存&#xff0c;共计 32 位&#xff08;Bit&#xff09;。如果不考虑正…

没有bug队——加贝——Python 39,40

目录 39.题目&#xff1a;有一个已经排好序的数组。现输入一个数&#xff0c;要求按原来的规律将它插入数组中。 40.题目&#xff1a;将一个数组逆序输出。 39.题目&#xff1a;有一个已经排好序的数组。现输入一个数&#xff0c;要求按原来的规律将它插入数组中。 程序分析…

C语言中的二进制、八进制和十六进制的表示

二进制数、八进制数和十六进制数的表示 一个数字默认就是十进制的&#xff0c;表示一个十进制数字不需要任何特殊的格式。但是&#xff0c;表示一个二进制、八进制或者十六进制数字就不一样了&#xff0c;为了和十进制数字区分开来&#xff0c;必须采用某种特殊的写法&#xf…

没有bug队——加贝——Python 41,42

41.题目&#xff1a;模仿静态变量的用法。 python中是不支持静态变量的&#xff0c;所以可以通过以下的方法来实现静态变量的功能&#xff1a; 代码1&#xff1a; class CTest(object):#python静态变量实现方法i__initNonedef __new__(cls,value):if cls.i__init is None:cl…

C语言中的正负数及其输出

在数学中&#xff0c;数字有正负之分。在C语言中也是一样&#xff0c;short、int、long 都可以带上正负号&#xff0c;示例 //负数 short a1 -10; short a2 -0x2dc9; //十六进制 //正数 int b1 10; int b2 0174; //八进制 int b3 22910; //负数和正数相加 long c (-9)…

没有bug队——加贝——Python 43,44

目录 43.题目&#xff1a;模仿静态变量(static)另一案例。 44 - Python 两个矩阵相加 43.题目&#xff1a;模仿静态变量(static)另一案例。 程序分析&#xff1a;演示一个python作用域使用方法 #43 class Num:nNum 1def inc(self):self.nNum 1print (nNum %d % self.nN…

数学建模学习笔记(一)——层次分析模型

1.模型简介 层次分析模型主要应用于综合评价类问题&#xff0c;例如&#xff1a;怎样购买最划算、怎样养殖才能获得最大经济效益等等。 2.下面使用一道例题来说明这个问题 问题&#xff1a;你想要购置一台个人电脑&#xff0c;考虑价格、性能等因素&#xff0c;如何做出决策…

没有bug队——加贝——Python 45,46

目录 45.题目&#xff1a;统计 1 到 100 之和。 46.题目&#xff1a;求输入数字的平方&#xff0c;如果平方运算后小于 50 则退出。 实现1 实现2 Python While 循环语句 跳过循环 无限循环 循环使用 else 语句 45.题目&#xff1a;统计 1 到 100 之和。 #45 tmp 0 for…

没有bug队——加贝——Python 47,48

目录 47.题目&#xff1a;两个变量值互换。 实现1 实现2 48.题目&#xff1a;数字比较。 47.题目&#xff1a;两个变量值互换。 实现1 a 10 b 20 print(x ,a ,y ,b) a,b b,a print(x ,a ,y ,b) 输出&#xff1a; 实现2 #47 def exchange(a,b):a,b b,areturn (a,…

Latex笔记(一)—— 复杂表格的制作

引言 表格是论文写作中的重要一环&#xff0c;尤其是较为复杂的三线表的制作。 在网上寻找了很久发现没有比较综合的解释方法&#xff0c;因此将查阅的关于复杂三线表的制作的资料总结成了一篇笔记。 由于笔记是用Latex写作的&#xff0c;因此这里只放上Latex生成的pdf的截图&…