(MATLAB)第十二章-数列与极限

 

目录

12.1 数列

 12.1.1 数列求和

1. 累计求和函数sum()

2. 忽略NaN累计求和函数 nansum()

3. 求此元素位置之前的元素和函数cumsum()

4. 求梯形累计和函数cumtrapz()

12.1.2 数列求积

1. 元素连续相乘函数 prod()

2. 求累计积函数 cumprod()

3. 阶乘函数 f=factorial(n) n!,n为非负整数值

4. 伽马函数 gamma()

12.2 极限和导数

12.2.1 极限

12.2.2 导数

 12.3 级数求和

12.3.1 有限项级数求和

12.3.2 无穷级数求和

参考资料:


12.1 数列

 12.1.1 数列求和

1. 累计求和函数sum()

调用格式

说明

S=sum(A)

1A为向量,返回所有元素和,结果是一个数值;

2A为矩阵,返回每一列所有元素和,结果为数值个数等于列数的行向量;

3An维阵列,相当于n个矩阵,则返回n个矩阵累和(按列)

S=sum(A,dim)

1)对于向量求和运算:dim=1,不求和,返回原数列;dim=2,求和;

2)对于矩阵求和运算:dim=1,对列求和,结果组成行向量;dim=2,对行求和,结果则称列向量

S=sum(A,vecdim)

根据向量vecdim中指定的维度对A的元素进行求和

S=sum(A,’all’)

计算A的所有元素的值,包括行列与维度的和,结果是单个数值

S=sum(…,outtype)

可以设置特殊格式的累计和值,输出类型outtype包含’defalult’’double’’native’

S=sum(…,nanflag)

若向量或矩阵中包含NaN,在此格式下nanflag可以设置是否计算NaNnanflag参数设置为’includenan’表示计算,设置为’omitnan’表示忽略

2. 忽略NaN累计求和函数 nansum()

调用格式

说明

S=nansum(A)

累计和中不包括NaN

        nansum(A)sum(A,omitnan)可以通用,前者步骤更简洁

3. 求此元素位置之前的元素和函数cumsum()

        函数cumsum()求解的是新定义的累计和,即每个位置的新元素值不包括当前项的元素之和。

        略,详见MA1.269-270

4. 求梯形累计和函数cumtrapz()

         略,详见MA1.270-273

12.1.2 数列求积

1. 元素连续相乘函数 prod()

调用格式

说明

B=prod(A)

1A为向量,返回所有元素和,结果是一个数值;

2A为矩阵,返回每一列所有元素积,结果为数值个数等于列数的行向量;

B=prod(A,dim)

1)对于向量求和运算:dim=1,不求积,返回原数列;dim=2,求积;

2)对于矩阵求和运算:dim=1,对列求积,结果组成行向量;dim=2,对行求积,结果则称列向量

B=prod(A,vecdim)

根据向量vecdim中指定的维度对A的元素进行求积,其中不包括NaN

B=prod(A,’all’)

计算A的所有元素的乘积

B=prod(…, type)

可以设置特殊格式的累计和值,输出类型outtype包含’defalult’’double’’native’

2. 求累计积函数 cumprod()

        略,详见MA1.274

3. 阶乘函数 f=factorial(n) n!,n为非负整数值

4. 伽马函数 gamma()

        伽马函数(Gamma Function)也叫欧拉第二积分,是阶乘函数在实数与复数上扩展的一类函数,一般情况下,阶乘是定义在正整数和0(大于等于0)的范围里的,小数没有阶乘,这里将函数gamma()定义为非整数的阶乘,作为阶乘的延拓,是定义在复数范围内的亚纯函数,通常写作Γ(x)

        在实数域上伽马函数定义为$\varGamma \left( x \right) =\int_0^{+\infty}{t^{x-1}e^{-t}dt} $

        在复数域上伽马函数定义为\varGamma \left( z \right) =\int_0^{+\infty}{t^{z-1}e^{-t}dt}

        同时,gamma()也适用于正整数,factorial()同用法

        补充:不完全伽马函数gammainc(),其中$gammainc\left( x,a \right) =\frac{1}{\varGamma \left( a \right)}\int_0^x{t^{a-1}e^{-t}dt} $

12.2 极限和导数

        在工程计算中,经常会研究某一函数随自变量的变化趋势与相应的变化率,也就是要研究函数的极限和导数问题。

12.2.1 极限

        极限是数学分析最基本的概念和出发点,在工程实际中,其计算往往比较繁琐。在MATLAB中,运用limit命令可以解决。调用格式:

调用格式

说明

limit(f,x,a) limit(f,a)

求解$\underset{x\longrightarrow a}{\lim}f\left( x \right) $

limit(f)

求解$ \underset{x\longrightarrow 0}{\lim}f\left( x \right) $

limit(f,x,a,’right’)

求解$ \underset{x\longrightarrow a+}{\lim}f\left( x \right) $

limit(f,x,a,’left’)

求解$ \underset{x\longrightarrow a-}{\lim}f\left( x \right) $

         示例1:

>> clear
>> syms x;
>> f=sin(x)/x;
>> limit(f)
ans =1

         示例2:

>> syms n
>> limit((1+1/n)^n,inf)
ans =exp(1)

        示例3:

>> syms x
>> limit(log(1+x)/x,x,0,'right')
ans = 1

         示例4:计算$ \underset{\left( x,y \right) \longrightarrow \left( 0,0 \right)}{\lim}\frac{e^x+e^y}{\cos x-\sin y} $注意此处是二元函数的极限

>> syms x y %定义符号变量x y
>> f=(exp(x)+exp(y))/(cos(x)-sin(y)); %定义符号表达式
>> limit(limit(f,x,0),y,0) %先求x趋近于0时的符号表达式f的极限值,再求y趋近于0的极限值
ans =2

12.2.2 导数

        导数是数学分析的基础内容之一,在工程运用中用来描述各种各样的变化率。可以根据导数的定义,利用limit命令求解,同时MATLAB也提供了专门的函数求导命令diff。调用格式:

调用格式

说明

Y=diff(X)

计算沿大小不等于1的第一个数组维度的X相邻元素之间的差分

Y=diff(X,n)

通过递归应用diff(X)运算n次求n阶导数

Y=diff(X,n,dim)

求沿dim指定的维度计算的第n个差分

        示例1:

>> clear
>> syms x 
>> f=2^x+x^(1/2)*log(x);
>> diff(f) %求表达式f的一阶导数
ans = log(x)/(2*x^(1/2)) + 2^x*log(2) + 1/x^(1/2)

        示例2:

>> syms x
>> f=(1-cos(x))/(3*x^2);
>> diff(f,1)  %求表达式f的一阶导数
ans = sin(x)/(3*x^2) + (2*(cos(x) - 1))/(3*x^3)
>> diff(f,2)  %求表达式f的二阶导数
ans = cos(x)/(3*x^2) - (4*sin(x))/(3*x^3) - (2*(cos(x) - 1))/x^4
 >> diff(f,3)  %求表达式f的三阶导数
ans = (6*sin(x))/x^4 - sin(x)/(3*x^2) - (2*cos(x))/x^3 + (8*(cos(x) - 1))/x^5

        示例3:

>> syms x
>> limit(log(1+x)/x,x,0,'right')
ans = 1

        示例4: 计算$ f=\ln \left[ e^{2\left( x+y^2 \right)}+\left( x^2+y \right) +\sin \left( 1+x^2 \right) \right] $对xy1阶、2偏导数

>>clear
>>syms x y %定义符号变量x y
>>f=log(exp(2*(x+y^2))+(x^2+y)+sin(1+x^2)); %定义符号表达式
>>fx=diff(f,x) %计算f对x的1阶导数
fx =(2*x + 2*exp(2*y^2 + 2*x) + 2*x*cos(x^2 + 1))/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2)
>>fy=diff(f,y) %计算f对y的一阶导数
fy =(4*y*exp(2*y^2 + 2*x) + 1)/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2)
>>fxy=diff(fx,y) %对x求导后,再对y求导
fxy =(8*y*exp(2*y^2 + 2*x))/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2) - ((4*y*exp(2*y^2 + 2*x) + 1)*(2*x + 2*exp(2*y^2 + 2*x) + 2*x*cos(x^2 + 1)))/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2)^2
>>fyx=diff(fy,x) %对y求导后,再对x求导
fyx =(8*y*exp(2*y^2 + 2*x))/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2) - ((4*y*exp(2*y^2 + 2*x) + 1)*(2*x + 2*exp(2*y^2 + 2*x) + 2*x*cos(x^2 + 1)))/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2)^2
>>fxx=diff(fx,x) %再次对x求导(等价于求二阶导)
fxx =(2*cos(x^2 + 1) + 4*exp(2*y^2 + 2*x) - 4*x^2*sin(x^2 + 1) + 2)/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2) - (2*x + 2*exp(2*y^2 + 2*x) + 2*x*cos(x^2 + 1))^2/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2)^2
>>fyy=diff(fy,y) %再次对y求导(等价于求二阶导)
fyy =(4*exp(2*y^2 + 2*x) + 16*y^2*exp(2*y^2 + 2*x))/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2) - (4*y*exp(2*y^2 + 2*x) + 1)^2/(y + sin(x^2 + 1) + exp(2*y^2 + 2*x) + x^2)^2
>>fxx=diff(f,x,2) %略
>>fyy=diff(f,y,2) %略

 12.3 级数求和

        级数是数学分析的重要内容,无论对于数学理论本身还是在科学技术的应用中都是一个有力的工具。

12.3.1 有限项级数求和

       求级数命令symsum,调用格式:

调用格式

说明

F=symsum(f,k)

返回级数f关于指数k的有限项和

F=symsum(f,k,a,b)

返回级数f关于指数从ab的有限项和

        示例1:

>> syms a b n %定义符号变量
>> s=a^n+b*n; %定义符号表达式
>> symsyn(s,n,0,n) %计算级数关于指数n从0到n共n+1项的有限项和
ans =piecewise(a == 1, n + (b*n)/2 + (b*n^2)/2 + 1, a ~= 1, -(b*n + b*n^2 - 2*a*a^n - a*b*n - a*b*n^2 + 2)/(2*(a - 1)))

        示例2:

>> syms n x
>> s=sin(n*x);
>> symsum(s,n,0,n)
ans =piecewise(in(x/(2*pi), 'integer'), 0, ~in(x/(2*pi), 'integer'), (exp(-x*(n + 1)*1i)*(exp(x*(n + 1)*1i) - exp(x*(n + 1)*2i) - exp(x*1i) + exp(x*(n + 1)*1i)*exp(x*1i))*1i)/(2*(exp(x*1i) - 1)))

        示例3:计算级数$ s=2\sin 2n+4\cos 4n+2^n $的前n+1项(n0开始),并求前11项的和

>>syms n 
>>s=2*sin(2*n)+4*cos(4*n)+2^n;
>>sum_n=symsum(s)
sum_n =(exp(-2i)^n*1i)/(exp(-2i) - 1) - (exp(2i)^n*1i)/(exp(2i) - 1) + (2*exp(-4i)^n)/(exp(-4i) - 1) + (2*exp(4i)^n)/(exp(4i) - 1) + 2^n
>>sum10=symsum(s,0,10)
sum10 =4*cos(4) + 4*cos(8) + 4*cos(12) + 4*cos(16) + 4*cos(20) + 4*cos(24) + 4*cos(28) + 4*cos(32) + 4*cos(36) + 4*cos(40) + 2*sin(2) + 2*sin(4) + 2*sin(6) + 2*sin(8) + 2*sin(10) + 2*sin(12) + 2*sin(14) + 2*sin(16) + 2*sin(18) + 2*sin(20) + 2051
>> vpa(sum10) %控制级数前1项和的精度
 ans =2048.2771219312785147716264587939

        注:若不知道级数s中的变量是哪个,采用symvar命令:C=symvar(expr),搜索表达式expr,查找除ijpiinfnaneps和公共函数之外的标识符。这些标识符是表达式中变量的名称。

12.3.2 无穷级数求和

        MATLAB中的symsum命令该可以求无穷级数,此时只需将命令参数中的求和区间改为无穷即可。示例如下:

>> syms n 
>> s1=1/n;
>> v1=symsum(s1,n,1,inf) %计算级数s1关于指数n从1到+∞的和
v1 =Inf 实际上,该级数发散

>> s2=1/n^3; 
>> v2=symsum(s2,n,1,inf)
v2 =zeta(3) 
>> vpa(v2) %控制v2的精度
ans =1.2020569031595942853997381615114

        zeta3)表示zeta函数在3处的值,其中函数zeta()的定义是$ \zeta \left( w \right) =\sum_{k=1}^{\infty}{\frac{1}{k^w}} $

        MATLAB并不是可以计算出所有的级数求和结果,求不出时答案会给出求和形式:

        计算级数$ \sum_{s=1}^{+\infty}{\left( -1 \right) ^n\frac{\sin n}{n^2+1}} $

>> syms n
>> s1=(-1)^n*sin(n)/(n^2+1);
>> v1=symsum(s1,n,1,inf) 
v1 = symsum(((-1)^n*sin(n))/(n^2 + 1), n, 1, Inf)

参考资料:

[1] 天工在线. MATLAB2020从入门到精通·实战案例版[M]. 北京: 中国水利水电出版社, 2020.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

bun build

Bun 的快速原生打包器现已进入测试版阶段。可通过 bun build CLI 命令或 Bun.build() JavaScript API 使用。 bun build ./index.tsx --outdir ./build await Bun.build({entrypoints: [./index.tsx],outdir: ./build, }); 速度很快。下面的数字代表 esbuild 在 three.js 基…

Crossbar阵列的电路结构及其基本原理

忆阻器Crossbar阵列是一种先进的神经网络硬件实现技术,它利用忆阻器的物理特性来模拟神经网络中的突触连接,为人工智能和机器学习应用提供了一种高效、低能耗的计算平台。本文将深入探讨忆阻器Crossbar阵列的基本原理及其在Read(读取&#xf…

Studio One 6永久激活版 附完整图文安装破解教程

Studio One 6是一款功能强大的音乐制作和录音软件,专为Mac操作系统设计。它提供了多轨录音和混音、MIDI音乐制作、实时效果和处理、VST插件支持以及高级编辑和编排等丰富的功能。无论是专业音乐制作人还是音乐爱好者,都可以使用Studio One 6来创建和编辑…

Android m/mm/mmm/make编译模块

一.编译成模块的前置条件 Android编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了。lunch命令其实是定义在build/envsetup.sh文件中的函数lunch提供的。与lunch命令一样,m、mm和mmm命令也分别是由定义在build/envsetup.sh文件中的函数…

istio pod不启动及访问报RBAC错误问题解决

istio pod不启动问题解决 在kubernetes集群中安装istio之后,在创建的depoyment中已经使用了注入注解sidecar.istio.io/inject: true’配置,但是istio pod不创建,代码示例如下 kind: Deployment apiVersion: apps/v1 metadata:name: name-an…

Linux 操作系统概述

GNU计划 GNU --"GNUs Not UNIX" 建立一个自由、开放的UNIX操作系统(Free UNIX) GNU 通用公共许可证(General Public License,GPL) ”四项基本自由“ 按照自己的意愿自由地运行该软件自由地学习并根据…

高级大数据技术 实验一 scala编程

​ 高级大数据技术 实验一 scala编程 写的不是很好,大家多见谅! 1. 计算水仙花数 实验目标; (1) 掌握scala的数组,列表,映射的定义与使用 (2) 掌握scala的基本编程 实验说明 …

【系统需求分析报告-项目案例直接套用】

软件需求分析报告 软件开发要求项目建设内容物理设计安全系统设计安全网络安全设计应用安全设计用户安全管理性能设计稳定性设计安全性设计兼容性设计易操作性设计可维护行设计 软件开发全套精华资料过去进主页领取。

博弈论实用原理浅谈及题目实战【算法竞赛】

一、前言 本篇记录博弈论一些常见原理、做题技巧。 之前没有了解学习过博弈论,这篇文章可以当作记录学习笔记了。 二、初识博弈论 博弈论题目在竞赛中我感觉其实并不少见,只是需要技巧性很强,找到规律打代码很简单,而找不到基本上…

go语言基础 -- 面向对象 -- 接口与多态

接口定义与基本使用 - interface go语言中,接口类型可以定义一组方法,不需要在接口定义中实现方法,并且interface中不能含有变量,如果某个自定义类型要使用时再实现接口的方法。 golang中的接口不需要显式地实现,只要…

秘密共享差分隐私原理解析

1. 隐私计算全貌  可以看到,隐私计算技术从1979年就开始了,历经四代从安全多方计算(MPC)、到差分隐私(DP)、到集中加密技术(TEE),再到联邦学习(FL)。 2. 秘密共享 secret Sharing 就是“秘密分享”或者“秘密共享”…

“互动+消费”时代,借助华为云GaussDB重构新零售中消费逻辑

场与人的关系 “人—货—场”是零售中重要的三要素,我们一直在追求,将零售中的人、货、场进行数字化并在云端进行整合,形成属于我们自己的云平台。 随着互联网技术为信息提供的便利,消费者的集体力量正在逐渐形成一股强大的反向…

Applied Energy+C论文复现:考虑泊位分配灵活性的港口综合能源系统优化调度程序代码!

程序结合了港口独特的工作属性,构建了泊位优化分配的模型,提出了考虑泊位优化和多能协同的港口综合能源运行优化模型。港口运营商根据多种能源供应的成本特性决策船舶停泊的开始/结束时间,改变港口的总负荷需求曲线。程序算例丰富…

使用postman测试若依登录接口API-2

请求方式 由于登录控制器可知:该请求方式为Post请求 请求地址 在请求路径栏输入请求地址,如下图所示: 参数体 在Body键入所需参数,类型选择raw,数据格式选择"JSON":如下图所示: 认证成功与失败…

特征值和特征向量及其在机器学习中的应用

特征值和特征向量是线性代数中的概念,用于分析和理解线性变换,特别是由方阵表示的线性变换。它们被用于许多不同的数学领域,包括机器学习和人工智能。 在机器学习中,特征值和特征向量用于表示数据、对数据执行操作以及训练机器学…

NOIP 2009普及组初赛试题及解析

NOIP 2009普及组初赛试题及解析 一. 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案.)。二. 问题求解(共2题,每题5分,共计10分)三. 阅读程序写结果(共…

Vue.js 深度解析:模板编译原理与过程

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

网络学习:SMart link技术与Monitor link技术

目录 一、SMart link技术 1.1、SMart link技术简介 1.2、SMart link技术原理及基础知识点 1、应用场景(举例): 2、运行机制 3、保护vlan 4、控制VLAN 5、Flush报文 6、SMart link的负载分担机制 7、SMart link角色抢占模式 二、Mo…

YOLOv5目标检测学习(1):yolo系列算法的基础概念

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、基于深度学习的目标检测需要哪些步骤?二、数据准备(即准备数据集)1.目标检测的数据集如何获取?2.数据集包括…

Python报错ModuleNotFoundError: No module named ‘numpy‘

原因:缺少“numpy” 进入python安装路径,script路径内 在路径下启动终端 01.更新numpy python -m pip install --upgrade pip 02.安装 pip install numpy 03.运行python python 04.导入包 from numpy import * 问题已解决。
最新文章