学习记录之数学表达式(4)

文章目录

  • 八、min 与 argmin
    • 8.1 min
    • 8.2 argmin
    • 8.3 作业
  • 九、累加、累乘与积分
    • 9.1 累加
    • 9.2 累乘
    • 9.3 定积分
    • 9.4 作业

八、min 与 argmin

  • min 和 argmin 在机器学习中常用;
  • max 和argmax 同理;

8.1 min

  • min 是 minimal 的缩写,用于获得集合中的最小值,如: min ⁡ { 3 , 1 , 9 , 8 } = 1 \min \{3,1,9,8\}=1 min{3,1,9,8}=1,源码为:\min {3,1,9,8}=1,即 \min 是定义好的一种符号;
  • min 可以与向量/矩阵配合使用,如:给定向量 x = [ 3 , 1 , 9 , 8 ] \mathbf{x}=[3,1,9,8] x=[3,1,9,8] ,则: min ⁡ 1 ≤ i ≤ 4 x i = 1 \min_{1 \le i \le 4} \mathbf{x}_i = 1 min1i4xi=1,源码为:\min_{1 \le i \le 4} \mathbf{x}_i = 1,本质与前面的集合方式相同;
  • min 可以和函数配合使用,如:令 f ( x ) = x 2 + x + 1 f(x)=x^2+x+1 f(x)=x2+x+1 min ⁡ − 1 ≤ x ≤ 1 f ( x ) \min_{-1 \le x \le 1} f(x) min1x1f(x) 表示 x x x [ − 1 , 1 ] [-1,1] [1,1] 区间的任意数,这些函数值构成了一个集合(重复元素只算一次),最终取最小的元素,源码为:\min_{-1 \le x \le 1} f(x),其中 \le 表示 less than or equal,也可以写作 \leq;

8.2 argmin

  • argmin 是 argument minimal 的缩写,用于获得使函数取得最小值的参数;
  • \arg\min 总是可用的,若 Latex 模板不支持 \argmin,可以在 tex 文件头部加上:\DeclareMathOperator*{\argmin}{argmin};
  • argmin 可以与向量/矩阵配合使用,这时参数可以是向量下标,如:给定向量 x = [ 3 , 1 , 9 , 8 ] \mathbf{x} = [3,1,9,8] x=[3,1,9,8],则 arg min ⁡ x i = 2 \argmin \mathbf{x}_i = 2 argminxi=2 的值是使得 x i \mathbf{x}_i xi 最小的参数值,即下标 i i i 的值,给定矩阵:
    x = [ 3 2 9 8 7 6 1 4 ] \mathbf{x} = \left[ \begin{matrix} 3&2&9&8 \\ 7&6&1&4 \end{matrix} \right] x=[37269184]
    源码为:\mathbf{x} = \left[ \begin{matrix} 3&2&9&8 \ 7&6&1&4 \end{matrix} \right],则 arg ⁡ i , j min ⁡ x i j = ( 2 , 3 ) \arg_{i,j}\min \mathbf{x}_{ij} = (2,3) argi,jminxij=(2,3) 的值是使得 x i j \mathbf{x}_{ij} xij 最小的参数值,即 i = 2 , j = 3 i=2,j=3 i=2,j=3。注意:这是返回了两个数据,在Java里面要专门处理,但Python可以直接支持。
  • argmin 与函数配合最常见,如:令 f ( x ) = x 2 + x + 1 f(x)=x^2+x+1 f(x)=x2+x+1,则 arg ⁡ − 1 ≤ x ≤ 1 min ⁡ f ( x ) = − 1 2 \arg_{-1 \le x \le 1} \min f(x) = -\frac{1}{2} arg1x1minf(x)=21 表示 x x x − 1 2 -\frac{1}{2} 21 时函数取最小值 3 4 \frac{3}{4} 43,只是这个最小值没有人关心。

8.3 作业

  • 解释推荐系统: 问题、算法与研究思路 2.1 中的优化目标: min ⁡ ∑ ( i , j ) ∈ Ω ( f ( x i , t j ) − r i j ) 2 \min \sum_{(i,j) \in \Omega}(f(\mathbf{x}_i,\mathbf{t}_j)-r_{ij})^2 min(i,j)Ω(f(xi,tj)rij)2
    • i , j i,j i,j:遍历数据集中的元素;
    • Ω \Omega Ω:表示所有 ( i , j ) (i,j) (i,j)对的集合;
    • x i \mathbf{x}_i xi:第 i i i个数据的输入;
    • t j \mathbf{t}_j tj:与 x i \mathbf{x}_i xi相关的第 j j j个数据的标签;
    • r i j r_{ij} rij:表示于 ( i , j ) (i,j) (i,j)对应的真实值;
    • f ( x i , t j ) f(\mathbf{x}_i,\mathbf{t}_j) f(xi,tj):输出一个预测值;
    • f ( x i , t j ) − r i j ) 2 f(\mathbf{x}_i,\mathbf{t}_j)-r_{ij})^2 f(xi,tj)rij)2表示一个误差项;
    • 对集合 Ω \Omega Ω中的所有 ( i , j ) (i,j) (i,j)对进行遍历,并计算每一对的预测值与真实值之间的平方差,然后求和;
    • min ⁡ \min min表示要对上述求和表达式求和并使之最小化;

九、累加、累乘与积分

  该章节展示了数学语言和计算机语言的高度统一;

9.1 累加

  • 单重整数累加:
    ∑ i = 1 10 i (1) \sum_{i=1}^{10} i \tag{1} i=110i(1)
    表示 1 + 2 + ⋯ + 10 1+2+\dots+10 1+2++10,源码为:\sum_{i=1}^{10} i \tag{1};
    用 Java 代码表示如下:
int sum = 0;
for (int i = 1; i <= 10; i++)sum += i;

  数学表达式的下标习惯是从1开始,程序的下标相关从0开始,写程序是应该注意这个问题;

  • 向量分量累加:
    ∑ i = 1 n x i (2) \sum_{i=1}^{n} x_{i} \tag{2} i=1nxi(2)
    表示 x 1 + x 2 + ⋯ + x n x_1+x_2+\dots+x_n x1+x2++xn,如果 x \mathbf{x} x 的维度就是 n n n 也可以简写为: ∑ i x i \sum_{i} x_{i} ixi
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)sum += x[i];
  • 带条件的向量分量累加:
    ∑ x i > 0 x i (3) \sum_{x_{i} \gt 0} x_{i} \tag{3} xi>0xi(3)
    表示仅将向量 x \mathbf{x} x 取值为正的分量相加;
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)if (x[i} > 0)sum += x[i];
  • 练习: ∑ x i > 0 x i 2 \sum_{x_{i} \gt 0} x_{i}^2 xi>0xi2
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)if (x[i} > 0)sum += x[i]*x[i};
  • 存在歧义的累加:
    ∑ x i > 0 ( x i 2 + x i + 1 ) (4) \sum_{x_{i} \gt 0} \left(x_{i}^2+x_{i}+1 \right) \tag{4} xi>0(xi2+xi+1)(4)
    源码为:\sum_{x_{i} \gt 0} \left(x_{i}^2+x_{i}+1 \right) \tag{4};
  • 矩阵分量的二重累加:
    ∑ i = 1 n ∑ j = 1 i x i j (5) \sum_{i=1}^{n} \sum_{j=1}^{i} x_{ij} \tag{5} i=1nj=1ixij(5)
    表示下三角矩阵分量(左下部分)相加,源码为:\sum_{i=1}^{n} \sum_{j=1}^{i} x_{ij} \tag{5};
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)for (int j = 1; j <= i; j++)sum += x[i][j];
  • 具有欺骗性的表示法:上式可以简写为 ∑ i ≥ j x i j \sum_{i \ge j} x_{ij} ijxij,要明白这是二重累加;
  • 练习:将矩阵中小于1的分量平方并累加,数学表达式和 Java 代码分别怎么写?
    数学表达式为: ∑ x i j < 1 x i j 2 \sum_{x_{ij} \lt 1} x_{ij}^2 xij<1xij2
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)for (int j = 1; j<=n; j++)if (x[ij} < 1)sum += x[i][j] * x[i][j];

9.2 累乘

  • 整数累乘:
    ∏ i = 1 10 i (6) \prod_{i=1}^{10} i \tag{6} i=110i(6)
    表示 1 × 2 × ⋯ × 10 1 \times 2 \times \dots \times 10 1×2××10,源码为:\prod_{i=1}^{10} i \tag{6},其中 prod 是 product 的简写;
    用 Java 代码表示如下:
int product = 1;
for (int i = 1; i <= 10; i++)product *= i;

程序要注意溢出,但是数学表达式不存在这种担忧,同时注意 product 初始化为1;

  • 向量分量累乘:
    ∏ i = 1 n x i (7) \prod_{i=1}^{n} x_{i} \tag{7} i=1nxi(7)
    表示 x 1 ∗ x 2 ∗ ⋯ ∗ x n x_1 * x_2 * \dots * x_n x1x2xn,如果 x \mathbf{x} x 的维度就是n,也可以简写为 ∏ i = 1 x i \prod_{i=1} x_i i=1xi
    用 Java 代码表示如下:
double product = 1;
for (int i = 1; i <= n; i++)product *= x[i];

9.3 定积分

  • 单变量函数的定积分,本质就是求曲线与 x x x 轴之间的面积;
  • 该面积带符号,所以正负面积可能会抵消一些;
    ∫ 0 10 x 2 + x + 1 ( d ) x (8) \int_{0}^{10} x^{2} + x +1 \mathrm(d)x \tag{8} 010x2+x+1(d)x(8)
    源码为:\int_{0}^{10} x^{2} + x +1 \mathrm(d)x \tag{8};
    注意 d 的写法,这里也可以换成 {\rm d};
    用 Java 代码表示如下:
double integration = 0;
double delta = 0.01;
for (double x = 0; x <= 10; x += delta)integration += x * x * delta;
  • 二重积分可以看作是求体积;
    ∫ 0 10 ∫ y 2 y 2 x 2 y + y 2 d x d y (9) \int_{0}^{10} \int_{\frac{y}{2}}^{y} 2 x^{2} y + y^{2} \mathrm{d}x \mathrm{d}y \tag{9} 0102yy2x2y+y2dxdy(9)
    源码为:\int_{0}^{10} \int_{\frac{y}{2}}^{y} 2 x^{2} y + y^{2} \mathrm{d}x \mathrm{d}y \tag{9};
double integration = 0;
double deltax = 0.01;
double deltay = 0.01; 
for (double y = 0; y <= 10; y += deltay)for (double x = y/2; x <= y; x += deltay)integration += (2 * x * x * y + y * y) * deltax * deltay;

写代码不用考虑积分的简洁形式;

9.4 作业

1、将向量下标为偶数的分量 ( x 2 , x 4 , … ) \left( x_2,x_4,\dots \right) (x2,x4,) 累加,写出相应的表达式;

  • 向量下标为偶数,那么累加条件应该为余数为0,即 i m o d 2 = 0 i \mod 2 = 0 imod2=0,则表达式为:
    ∑ i m o d 2 = 0 x i \sum_{i \mod 2 = 0} \mathbf{x}_{i} imod2=0xi
  • 或者也可以对下标乘以2,这样可以保证下标是偶数。
  • 代码表示如下:
double sum = 0;
for (int i = 0; i <= n; i++)if (i % 2 ==0)sum += x[i];

2、各写出一道累加、累乘、积分表达式的习题,并给出标准答案;

(1) 累加表达式习题:求数列 { a n } \{a_{n}\} {an}的前 n n n项和,其中 a n = 2 n − 1 a_{n}=2n-1 an=2n1

  • 标准答案:累加表达式为: S n = ∑ k = 1 n ( 2 k − 1 ) S_{n}=\sum_{k=1}^{n}(2k-1) Sn=k=1n(2k1)
  • 使用等差数列求和公式,得到: S n = n ( a 1 + a n ) 2 = n ( 1 + ( 2 n − 1 ) ) 2 = n 2 S_{n}=\frac{n(a_1+a_n)}{2}=\frac{n(1+(2n-1))}{2}=n^2 Sn=2n(a1+an)=2n(1+(2n1))=n2

(2) 累乘表达式习题:求数列 { b n } \{b_{n}\} {bn}的前 n n n项积,其中 b n = 3 n b_{n}=3^n bn=3n

  • 标准答案: P n = ∏ k = 1 n 3 k P_n=\prod_{k=1}^{n}3^{k} Pn=k=1n3k
  • 使用指数运算法则,得到: P n = 3 1 × 3 2 × ⋯ × 3 n = 3 1 + 2 + ⋯ + n = 3 n ( n + 1 ) 2 P_n=3^1 \times 3^2 \times \dots \times 3^n = 3^{1+2+ \dots +n}=3^{\frac{n(n+1)}{2}} Pn=31×32××3n=31+2++n=32n(n+1)
    (3) 积分表达式:求函数 f ( x ) = x 2 f(x)=x^2 f(x)=x2在区间 [ 0 , 1 ] [0,1] [0,1]上的定积分
  • 标准答案:积分表达式为 ∫ 0 1 x 2 d x \int_{0}^{1}x^2dx 01x2dx
  • 使用微积分基本定理,得到: ∫ 0 1 x 2 d x = [ 1 3 x 3 ] 0 1 = 1 3 × 1 3 − 1 3 × 0 3 = 1 3 \int_{0}^{1}x^2dx=[\frac{1}{3}x^3]^{1}_{0}=\frac{1}{3} \times 1^3 - \frac{1}{3} \times 0^3=\frac{1}{3} 01x2dx=[31x3]01=31×1331×03=31

3、是否使用过三重累加?描述一下其应用;

  • 三重累加(三重求和)是数学中用于计算三维空间或集合中元素的总和的一种运算。在编程和数学分析中,三重累加经常用于处理三维数组、网格或空间中的点集。

  • 应用描述:

    • 三维数据处理:当处理三维数组或矩阵时,三重累加可用于计算数组中所有元素的总和。

    • 统计和数据分析:在统计学和数据分析中,当数据集具有三维结构(如时间序列、地理空间数据和多个特征的组合)时,三重累加可以用于计算总和、平均值或其他统计量。

    • 优化和机器学习:在优化问题和机器学习算法中,三重累加可能用于计算损失函数、正则化项或其他需要考虑三维数据结构的量。

4、给出一个常用的定积分,将手算结果与程序结果对比;

  • 计算函数 f ( x ) = sin ⁡ ( x ) cos ⁡ ( x ) f(x)=\sin(x)\cos(x) f(x)=sin(x)cos(x)在区间 [ 0 , π 2 ] [0,\frac{\pi}{2}] [0,2π]上的定积分
  • 原函数: F ( x ) = ∫ sin ⁡ ( x ) cos ⁡ ( x ) d x = ∫ 1 2 sin ⁡ ( 2 x ) d x = − 1 4 cos ⁡ ( 2 x ) F(x)=\int \sin(x)\cos(x)dx = \int \frac{1}{2}\sin(2x)dx = -\frac{1}{4} \cos(2x) F(x)=sin(x)cos(x)dx=21sin(2x)dx=41cos(2x)
  • ∫ 0 π 2 sin ⁡ ( x ) cos ⁡ ( x ) d x = F ( π 2 ) − F ( 0 ) = − 1 4 c o s ( π ) − ( − 1 4 c o s ( 0 ) ) = 1 4 \int_{0}^{\frac{\pi}{2}} \sin(x)\cos(x)dx = F(\frac{\pi}{2})-F(0)=-\frac{1}{4}cos(\pi)-(-\frac{1}{4}cos(0))=\frac{1}{4} 02πsin(x)cos(x)dx=F(2π)F(0)=41cos(π)(41cos(0))=41
  • 程序计算:使用Python计算
# 导入需要的库  
from scipy.integrate import quad
import numpy as npdef f(x):return np.sin(x) * np.cos(x)# 计算定积分
result, error = quad(f, 0, np.pi / 2)print(f"程序计算结果为:{result}")
print(f"估计误差为:{error}")

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

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

相关文章

5.6代码

1.最大公约数 这个题最重要的是要找到一个区间是1&#xff0c;找到之后就可以直接加次数就可以了 #include <bits/stdc.h>using namespace std;main() {long long n,i,j,a0,b,ans99999;cin>>n;long long s[n],dp[n][n];for(i0;i<n;i){cin>>s[i];if(s[i]1…

sorted_numbers = numbers_int.sort()对不对??不对!!!

不对&#xff0c;numbers_int.sort() 方法会直接修改 numbers_int 列表&#xff0c;并且它不返回任何值&#xff08;在 Python 中&#xff0c;对列表的原地修改方法通常返回 None&#xff09;。因此&#xff0c;将 numbers_int.sort() 的结果赋值给 sorted_numbers 变量会导致 …

238. 除自身以外数组的乘积/41. 缺失的第一个正数

238. 除自身以外数组的乘积 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&a…

shell常用文件处理命令

1. 解压 1.1 tar 和 gz 文件 如果你有一个 .tar 文件,你可以使用以下命令来解压: tar -xvf your_file.tar在这个命令中,-x 表示解压缩,-v 表示详细输出(可选),-f 后面跟着要解压的文件名。 如果你的 .tar 文件同时被 gzip 压缩了(即 .tar.gz 文件),你可以使用以下…

黑马程序员HarmonyOS4+NEXT星河版入门到企业级实战教程笔记

HarmonyOS NEXT是纯血鸿蒙&#xff0c;鸿蒙原生应用&#xff0c;彻底摆脱安卓 本课程是基于harmony os4的&#xff0c;与next仅部分api有区别 套件 语言&框架 harmony os design ArkTs 语言 ArkUI 提供各种组件 ArkCompiler 方舟编译器 开发&测试 DevEco Studio 开发…

Vue3工程化配置

Vue3工程化配置 目录 Vue3工程化配置创建项目vue-clivite(推荐) 快速体验2和3的差别vue3vue2 ref和reactive 创建项目 vue-cli 具体环境配置请点这里 记得新建配置时这里选vue3 vite(推荐) 注&#xff1a;Vite 需要 Node.js 版本 18&#xff0c;20 1.选定路径后再cmd输入创建…

免费在线录屏、无需注册、免费可用、无限制

免费在线工具 https://orcc.online/ 在线录屏 https://orcc.online/recorder pdf在线免费转word文档 https://orcc.online/pdf 时间戳转换 https://orcc.online/timestamp Base64 编码解码 https://orcc.online/base64 URL 编码解码 https://orcc.online/url Hash(MD5/SHA…

羊大师解读,当代年轻人焦虑应对指南

羊大师解读&#xff0c;当代年轻人焦虑应对指南 当代年轻人面临焦虑问题时&#xff0c;羊大师提出以下综合建议&#xff0c;要增强自我认知了解自身的需求和期望&#xff0c;明确自己的价值观和目标。这有助于避免盲目跟风和过度比较&#xff0c;从而减轻不必要的焦虑。 合理规…

apk反编译修改教程系列---修改指定apk 让其开机自动打开运行【十四】

通过前面的几期反编译apk的博文 。应该初步了解反编译apk的一些常识和简单的修改步骤。在与有些工作室合作中。一些客户需要安卓机型开机自动打开运行指定的apk。这类需求常规我们都先要检查apk有没有加密 加固。然后对应修改其中的代码。今天以一款apk实例步骤演示修改的过程 …

c++ 线程同步的临界区应用举例

在C中&#xff0c;临界区通常是通过互斥量&#xff08;mutex&#xff09;来实现的&#xff0c;因为互斥量用于保护代码段&#xff08;即临界区&#xff09;&#xff0c;以确保在任意时刻只有一个线程可以执行该代码段。然而&#xff0c;从技术上来说&#xff0c;"临界区&q…

企业怎样进行IT外包以及IT外包服务内容

在数字化时代的浪潮中&#xff0c;企业逐渐认识到信息技术的关键作用&#xff0c;特别是制造业基地对于IT外包和运维服务的需求持续增长。然而&#xff0c;在诸多可供选择的IT外包和运维方案中&#xff0c;企业如何推动与IT外包公司的合作&#xff1f;本文将深入介绍IT外包方案…

液位开关常开常闭怎么区分

如今随着科学技术的不断发展&#xff0c;液位检测技术也不断改进&#xff0c;液位开关是如今常用的液位检测技术之一&#xff0c;那么液位开关常开常闭怎么区分&#xff1f; 常开液位开关是指在没有液体存在的情况下就处于导通状态。当液体液面上升到液位开关处时&#xff0c;…

C++| std::copy与memcpy区别

前言&#xff1a;最近在读项目源码&#xff0c;发现有些地方用std::copy&#xff0c;有些地方用memcpy。但是并不知道为什么要这样&#xff0c;但是原作者也不认识&#xff0c;就只好自己研究一下了。 std::copy与memcpy区别 对比使用场景使用std::copymemcpy 对比 相同&#…

探索大型语言模型在信息提取中的应用与前景

随着人工智能技术的快速发展&#xff0c;大型语言模型&#xff08;LLMs&#xff09;在自然语言处理&#xff08;NLP&#xff09;领域取得了显著的进展。特别是在信息提取&#xff08;IE&#xff09;任务中&#xff0c;LLMs展现出了前所未有的潜力和优势。信息提取是从非结构化文…

跨考专业课142分,上岸重邮!

这个系列会邀请上岸学长学姐进行经验分享~ 今天分享经验的同学是我的“关门弟子”&#xff0c;小叮当&#xff0c;跨考上岸重邮通信工程&#xff01;从平时和小叮当的交流和测试&#xff0c;就能看出专业课水平&#xff0c;我一直和她开玩笑说&#xff0c;早点遇到我&#xff…

网站为什么需要固态硬盘服务器

首先&#xff0c;SSD没有旋转磁盘&#xff0c;所以它读写数据的速度比HDD快。了解通过选择SSD固态硬盘服务器可以获得的其他潜在好处。 1.更快的速度&#xff1a;固态硬盘服务器上的站点加载速度可以比HDD服务器上的站点快三倍 2.更高的可靠性&#xff1a;由于缺少活动部件&am…

运行容器时发现内存不足(<2G)--docker版本低:重装docker

一、卸载&#xff1a; sudo yum install -y yum-utilssudo yum remove docker-ce docker-ce-cli containerd.iosudo rm -rf /var/lib/dockersudo rm -rf /var/lib/containerd 二、安装&#xff1a; sudo yum-config-manager --add-repo https://download.docker.com/linux/ce…

如果你作 为Java程序员曾经遭遇过NullPointerException,请举起手

如果你作 为Java程序员曾经遭遇过NullPointerException&#xff0c;请举起手 1.让Optional发光发热&#xff1a;去除代码中对null的检查&#xff0c; 采用防御式检查减少NullPointerException java8实战 书籍 第225页 免费下载链接&#xff1a; https://pan.quark.cn/s/5cf68…

python flask css样式无效

解释&#xff1a; Flask是一个Python的轻量级Web框架&#xff0c;它没有为CSS提供任何内置的支持。如果你在Flask项目中引入了CSS文件&#xff0c;但是这个CSS没有生效&#xff0c;可能的原因有&#xff1a; 路径不正确&#xff1a;你的CSS文件没有放在正确的目录下&#xff0…

GEE数据集——DeltaDTM 全球沿海数字地形模型数据集

DeltaDTM 全球沿海数字地形模型产品 简介 DeltaDTM 是全球沿岸数字地形模型&#xff08;DTM&#xff09;&#xff0c;水平空间分辨率为 1 弧秒&#xff08;∼30 米&#xff09;&#xff0c;垂直平均绝对误差&#xff08;MAE&#xff09;为 0.45 米。它利用 ICESat-2 和 GEDI …