高等代数精解【10】

文章目录

  • 线性方程组
    • 概述
    • 增广矩阵
      • 基础
      • 一、增广矩阵的作用
      • 二、增广矩阵的实际应用例题
    • 高斯消元法
      • 基础
      • julia代码实现
      • 高斯消元法算法
        • 方阵高斯消元法
        • 非方阵的情况
    • Julia 中将整型矩阵转换为浮点型矩阵。
      • 方法 1:使用类型转换函数
      • 方法 2:使用 `convert` 函数
      • 方法 3:利用矩阵运算或函数
      • 方法 4:使用 `map` 函数
  • 参考文献

线性方程组

概述

  • 线性方程组是由一个或多个线性方程组成的集合,其中每个方程都是未知数的线性组合。具体来说,一个线性方程可以表示为:
    a 1 x 1 + a 2 x 2 + ⋯ + a n x n = b a_1x_1 + a_2x_2 + \cdots + a_nx_n = b a1x1+a2x2++anxn=b
    其中, a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an b b b 是常数, x 1 , x 2 , … , x n x_1, x_2, \ldots, x_n x1,x2,,xn 是未知数。

  • 系数矩阵是一个线性方程组中所有方程的系数构成的矩阵。对于方程组:
    { a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 ⋮ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = b m \begin{cases} a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n = b_1 \\ a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n = b_2 \\ \vdots \\ a_{m1}x_1 + a_{m2}x_2 + \cdots + a_{mn}x_n = b_m \end{cases} a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2am1x1+am2x2++amnxn=bm
    其系数矩阵为:
    ( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ) \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix} a11a21am1a12a22am2a1na2namn

  • 方程组可表示为 1. a 1 x 1 + . . . . + a n x n = b b = [ b 1 b 2 . . . b m ] , a j = [ a 1 j a 2 j . . . a m j ] 2. A x = b 系数矩阵 A 表示为 : [ a 1 , a 2 , . . . , a n ] ,其中 a 1 , . . , a n 是系数矩阵的列向量 未知数向量为 : x = [ x 1 x 2 . . . x n ] 方程组可表示为 \\1.a_1x_1+....+a_nx_n=b \\b=\begin{bmatrix} b_1\\ b_2\\ ...\\ b_m \end{bmatrix},a_j=\begin{bmatrix} a_{1j}\\ a_{2j}\\ ...\\ a_{mj} \end{bmatrix} \\2.Ax=b \\系数矩阵A表示为:[a_1,a_2,...,a_n],其中a_1,..,a_n是系数矩阵的列向量 \\未知数向量为: \\x=\begin{bmatrix} x_1\\ x_2\\ ...\\ x_n \end{bmatrix} 方程组可表示为1.a1x1+....+anxn=bb= b1b2...bm ,aj= a1ja2j...amj 2.Ax=b系数矩阵A表示为:[a1,a2,...,an],其中a1,..,an是系数矩阵的列向量未知数向量为:x= x1x2...xn

增广矩阵

基础

  • 增广矩阵为 [ A , b ] = [ a 1 , a 2 , . . . , a n , b ] 增广矩阵为[A,b]=[a_1,a_2,...,a_n,b] 增广矩阵为[A,b]=[a1,a2,...,an,b]

  • 方程组Ax=b有解,当且仅当
    r a n k A = r a n k [ A , b ] rank A=rank[A,b] rankA=rank[A,b]

  • 线性方程组有解的条件通常与其系数矩阵和增广矩阵的秩有关。

    • 具体来说,一个线性方程组有解当且仅当其系数矩阵的秩等于增广矩阵的秩。
    • 如果系数矩阵的秩等于未知数的数量,则方程组有唯一解
    • 如果系数矩阵的秩小于未知数的数量,则方程组有无穷多解。
      此时, A x = b , A ∈ R m × n , r a n k A = m ,可通过为 n − m 个未知数赋予任意值并求解其他未知数来获得 A x = b 的解。 Ax=b,A\in R^{m\times n},rank A=m,可通过为n-m个未知数赋予任意值并求解 其他 未知数来获得Ax=b的解。 Ax=bARm×n,rankA=m,可通过为nm个未知数赋予任意值并求解其他未知数来获得Ax=b的解。
  • 解是满足线性方程组中所有方程的未知数的值。对于线性方程组,解可以是唯一的、无穷多的或不存在的。解的存在性和数量由系数矩阵和增广矩阵的秩决定。

一、增广矩阵的作用

  1. 集中表示:增广矩阵将线性方程组的系数和常数项集中表示在一个矩阵中,这种表示方式便于后续的矩阵运算和解方程过程。
  2. 简化求解:通过对增广矩阵进行初等行变换(如交换两行、某一行乘以非零常数、某一行加上另一行的若干倍)来求解线性方程组。这些行变换可以将增广矩阵化为行最简形式或阶梯形,从而直接读出方程组的解或者判断解的情况(如唯一解、无穷多解或无解)。这种方法比传统的代入法或消元法更为直观和高效。可以将其化为行最简形或阶梯形,从而直接读出方程组的解或判断解的情况(如唯一解、无穷多解或无解)。这种方法比传统的代入法或消元法更为直观和高效。
  3. 判断解的存在性:增广矩阵的秩与原系数矩阵的秩之间的关系是判断线性方程组解的存在性的重要依据。如果增广矩阵的秩大于等于系数矩阵的秩,那么原线性方程组至少有一个解;如果增广矩阵的秩小于系数矩阵的秩,则原线性方程组无解。
  4. 在高斯消元法中的应用
    高斯消元法是求解线性方程组的一种常用方法,而增广矩阵是高斯消元法的基础。通过对增广矩阵进行行变换,可以逐步消去未知数前的系数,最终得到一个上三角矩阵或行最简形矩阵,从而求解出线性方程组的解。

二、增广矩阵的实际应用例题

以下是一个使用增广矩阵求解线性方程组的实际例题:

例题:求解线性方程组

{ x + 2 y = 5 , 2 x + 3 y = − 2 , 6 x + 7 y = 1. \begin{cases} x + 2y = 5, \\ 2x + 3y = -2, \\ 6x + 7y = 1. \end{cases} x+2y=5,2x+3y=2,6x+7y=1.

解题步骤

  1. 构造增广矩阵
    原方程组的系数矩阵为
    A = ( 1 2 2 3 6 7 ) , A = \begin{pmatrix} 1 & 2 \\ 2 & 3 \\ 6 & 7 \end{pmatrix}, A= 126237 ,
    常数项向量为
    b = ( 5 − 2 1 ) . b = \begin{pmatrix} 5 \\ -2 \\ 1 \end{pmatrix}. b= 521 .
    将常数项向量添加到系数矩阵的右侧,得到增广矩阵
    A ˉ = ( A ∣ b ) = ( 1 2 5 2 3 − 2 6 7 1 ) . \bar{A} = (A | b) = \begin{pmatrix} 1 & 2 & 5 \\ 2 & 3 & -2 \\ 6 & 7 & 1 \end{pmatrix}. Aˉ=(Ab)= 126237521 .

  2. 使用初等行变换化简增广矩阵

    • 第2行减去第1行的2倍,得
      ( 1 2 5 0 − 1 − 12 6 7 1 ) . \begin{pmatrix} 1 & 2 & 5 \\ 0 & -1 & -12 \\ 6 & 7 & 1 \end{pmatrix}. 1062175121 .
    • 第3行减去第1行的6倍,得
      ( 1 2 5 0 − 1 − 12 0 − 5 − 29 ) . \begin{pmatrix} 1 & 2 & 5 \\ 0 & -1 & -12 \\ 0 & -5 & -29 \end{pmatrix}. 10021551229 .
    • 第3行减去第2行的-5倍,得
      ( 1 2 5 0 − 1 − 12 0 0 1 ) . \begin{pmatrix} 1 & 2 & 5 \\ 0 & -1 & -12 \\ 0 & 0 & 1 \end{pmatrix}. 1002105121 .
    • 通过行变换将增广矩阵化为行最简形(此处略去具体步骤,仅展示结果),得
      ( 1 0 19 0 1 12 0 0 1 ) . \begin{pmatrix} 1 & 0 & 19 \\ 0 & 1 & 12 \\ 0 & 0 & 1 \end{pmatrix}. 10001019121 .(注意:此处的行最简形可能与原始答案不完全一致,因为行变换的方式不唯一)
  3. 读取解:从行最简形增广矩阵中可以直接读出方程组的解为
    { x = 19 − z , y = 12 − z , z = 自由变量 . \begin{cases} x = 19 - z, \\ y = 12 - z, \\ z = \text{自由变量}. \end{cases} x=19z,y=12z,z=自由变量.
    由于方程组中有三个未知数但只有两个独立方程,因此有一个自由变量(这里选择 z z z作为自由变量)。当给定 z z z的一个值时,可以求出 x x x y y y的相应值。例如,当 z = 0 z=0 z=0时,方程组的解为 x = 19 , y = 12 x=19, y=12 x=19,y=12

通过以上例题可以看出,增广矩阵在求解线性方程组时具有重要的作用和广泛的应用。

高斯消元法

基础

定义
高斯消元法是一种用于求解线性方程组的算法。它通过对方程组的增广矩阵进行一系列初等行变换,将其化为行最简形或阶梯形,从而直接读出方程组的解或判断解的情况。

应用
高斯消元法广泛应用于数学、计算机科学、工程学、物理学、经济学等多个领域。在这些领域中,很多问题的建模都涉及到线性方程组,而高斯消元法提供了一种有效且系统的求解方法。

例子
考虑以下线性方程组:

{ x + 2 y = 5 , 2 x + 3 y = − 2. \begin{cases} x + 2y = 5, \\ 2x + 3y = -2. \end{cases} {x+2y=5,2x+3y=2.

使用高斯消元法求解的步骤如下:

  1. 构造增广矩阵:

A ˉ = ( 1 2 5 2 3 − 2 ) . \bar{A} = \begin{pmatrix} 1 & 2 & 5 \\ 2 & 3 & -2 \end{pmatrix}. Aˉ=(122352).

  1. 使用初等行变换化简增广矩阵:
    • 第2行减去第1行的2倍,得

( 1 2 5 0 − 1 − 12 ) . \begin{pmatrix} 1 & 2 & 5 \\ 0 & -1 & -12 \end{pmatrix}. (1021512).

  1. 将第2行乘以-1,得

( 1 2 5 0 1 12 ) . \begin{pmatrix} 1 & 2 & 5 \\ 0 & 1 & 12 \end{pmatrix}. (1021512).

  1. 第1行减去第2行的2倍,得

( 1 0 − 19 0 1 12 ) . \begin{pmatrix} 1 & 0 & -19 \\ 0 & 1 & 12 \end{pmatrix}. (10011912).

此时,增广矩阵已经化为行最简形。

  1. 读取解:从行最简形增广矩阵中可以直接读出方程组的解为 x = − 19 , y = 12 x = -19, y = 12 x=19,y=12

例题
求解以下线性方程组:

{ x + y + z = 6 , 2 y + 5 z = − 4 , 2 x + 5 y − z = 27. \begin{cases} x + y + z = 6, \\ 2y + 5z = -4, \\ 2x + 5y - z = 27. \end{cases} x+y+z=6,2y+5z=4,2x+5yz=27.

解题步骤

  1. 构造增广矩阵:

A ˉ = ( 1 1 1 6 0 2 5 − 4 2 5 − 1 27 ) . \bar{A} = \begin{pmatrix} 1 & 1 & 1 & 6 \\ 0 & 2 & 5 & -4 \\ 2 & 5 & -1 & 27 \end{pmatrix}. Aˉ= 1021251516427 .

  1. 使用初等行变换化简增广矩阵:
    • 第3行减去第1行的2倍,得

( 1 1 1 6 0 2 5 − 4 0 3 − 3 15 ) . \begin{pmatrix} 1 & 1 & 1 & 6 \\ 0 & 2 & 5 & -4 \\ 0 & 3 & -3 & 15 \end{pmatrix}. 1001231536415 .

  • 第3行减去第2行的1.5倍,得

( 1 1 1 6 0 2 5 − 4 0 0 − 10.5 21 ) . \begin{pmatrix} 1 & 1 & 1 & 6 \\ 0 & 2 & 5 & -4 \\ 0 & 0 & -10.5 & 21 \end{pmatrix}. 1001201510.56421 .

  • 将第3行除以-10.5,得

( 1 1 1 6 0 2 5 − 4 0 0 1 − 2 ) . \begin{pmatrix} 1 & 1 & 1 & 6 \\ 0 & 2 & 5 & -4 \\ 0 & 0 & 1 & -2 \end{pmatrix}. 100120151642 .

  • 第2行减去第3行的5倍,得

( 1 1 1 6 0 2 0 6 0 0 1 − 2 ) . \begin{pmatrix} 1 & 1 & 1 & 6 \\ 0 & 2 & 0 & 6 \\ 0 & 0 & 1 & -2 \end{pmatrix}. 100120101662 .

  • 第1行减去第3行,得

( 1 1 0 8 0 2 0 6 0 0 1 − 2 ) . \begin{pmatrix} 1 & 1 & 0 & 8 \\ 0 & 2 & 0 & 6 \\ 0 & 0 & 1 & -2 \end{pmatrix}. 100120001862 .

  • 第1行减去第2行的0.5倍,得

( 1 0 0 5 0 2 0 6 0 0 1 − 2 ) . \begin{pmatrix} 1 & 0 & 0 & 5 \\ 0 & 2 & 0 & 6 \\ 0 & 0 & 1 & -2 \end{pmatrix}. 100020001562 .

  • 将第2行除以2,得

( 1 0 0 5 0 1 0 3 0 0 1 − 2 ) . \begin{pmatrix} 1 & 0 & 0 & 5 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 & -2 \end{pmatrix}. 100010001532 .

此时,增广矩阵已经化为行最简形。

  1. 读取解:从行最简形增广矩阵中可以直接读出方程组的解为 x = 5 , y = 3 , z = − 2 x = 5, y = 3, z = -2 x=5,y=3,z=2

julia代码实现

在Julia中实现高斯消元法,我们可以编写一个函数,该函数接受一个增广矩阵作为输入,并通过初等行变换将其化简为行最简形,从而求解线性方程组。以下是一个简单的实现示例:

function gaussian_elimination(B)  A=Float64.(B)n = size(A, 1)  for k = 1:n-1  # 找到主元下标  maxindex = k  for i = k+1:n  if abs(A[i, k]) > abs(A[maxindex, k])  maxindex = i  end  end  # 交换行  if maxindex != k  for j = k:n+1  A[k, j], A[maxindex, j] = A[maxindex, j], A[k, j]  end  end  # 消元  for i = k+1:n  factor = A[i, k] / A[k, k]  for j = k:n+1  A[i, j] = A[i, j] - factor * A[k, j]  end  end  end  # 回代求解  x = zeros(n)  for i = n:-1:1  x[i] = A[i, n+1]  for j = i+1:n  x[i] = x[i] - A[i, j] * x[j]  end  x[i] = x[i] / A[i, i]  end  return x  
end  # 示例  
A = [1 1 1 6; 0 2 5 -4; 2 5 -1 27]  
x = gaussian_elimination(A)  
println(x)

这段代码定义了一个gaussian_elimination函数,它接受一个增广矩阵A作为输入,并返回线性方程组的解x。在示例中,我们构造了一个3x4的增广矩阵A,然后调用gaussian_elimination函数求解,并打印结果。

请注意,这个实现没有进行错误处理,比如检查矩阵是否为奇异矩阵(即没有唯一解的情况)。在实际应用中,你可能需要添加这样的检查来确保算法的健壮性。

高斯消元法算法

方阵高斯消元法

是一种用于解线性方程组的数值算法,其基本思想是通过行变换将系数矩阵化为上三角矩阵,然后通过回代求解未知量。以下是高斯消元法的一般算法描述:

输入

  • 系数矩阵 A A A,大小为 n × n n \times n n×n
  • 常数项向量 b b b,大小为 n × 1 n \times 1 n×1

输出

  • 解向量 x x x,大小为 n × 1 n \times 1 n×1

算法步骤

  1. 构造增广矩阵

    • 将系数矩阵 A A A 和常数项向量 b b b 组合成一个增广矩阵 [ A ∣ b ] [A | b] [Ab]
  2. 前向消元

    • 对于 k = 1 k = 1 k=1 n − 1 n-1 n1
      a. 选择主元:找到第 k k k 列中从第 k k k 行到第 n n n 行中绝对值最大的元素,并将其所在行与第 k k k 行交换。
      b. 消元:对于 i = k + 1 i = k+1 i=k+1 n n n,计算乘数 m = A [ i , k ] / A [ k , k ] m = A[i, k] / A[k, k] m=A[i,k]/A[k,k],然后更新第 i i i 行: A [ i , j ] = A [ i , j ] − m × A [ k , j ] A[i, j] = A[i, j] - m \times A[k, j] A[i,j]=A[i,j]m×A[k,j],其中 j = k j = k j=k n n n
  3. 回代求解

    • 对于 i = n i = n i=n 1 1 1 的逆序:
      a. 计算 x [ i ] x[i] x[i] x [ i ] = ( b [ i ] − ∑ j = i + 1 n A [ i , j ] × x [ j ] ) / A [ i , i ] x[i] = (b[i] - \sum_{j = i+1}^{n} A[i, j] \times x[j]) / A[i, i] x[i]=(b[i]j=i+1nA[i,j]×x[j])/A[i,i]
  4. 输出解向量 x x x

注意事项

  • 在前向消元过程中,如果主元 A [ k , k ] A[k, k] A[k,k] 为零或接近零,则算法可能会失败或导致数值不稳定。此时需要进行行交换或采用其他策略。
  • 如果在消元过程中发现某一行变为全零行,并且该行对应的常数项不为零,则线性方程组无解。
  • 如果在消元过程中发现某一行变为全零行,并且该行对应的常数项也为零,则线性方程组有无穷多解。在这种情况下,算法可能只能求出部分解或特解。
非方阵的情况

它同样适用于非方阵的情况,即增广矩阵(系数矩阵与常数项向量组合而成的矩阵)的行数可能不等于列数。以下是高斯消元法的一般算法描述,适用于非方阵情况:

  1. 输入:增广矩阵 A A A,其中包含了系数矩阵和常数项向量。

  2. 初始化:设置当前处理的行 i = 1 i = 1 i=1

  3. 主循环:当 i ≤ min ⁡ ( 行数 , 列数 ) i \leq \min(\text{行数}, \text{列数}) imin(行数,列数) 时执行以下步骤:

    a. 寻找主元:在 i i i 行数 \text{行数} 行数 的范围内,找到第 i i i 列绝对值最大的元素,并将其所在行与第 i i i 行交换(如果已经是第 i i i 行则无需交换)。

    b. 消元:对于 j = i + 1 j = i + 1 j=i+1 行数 \text{行数} 行数 的每一行,执行以下操作:

    • 计算乘数 m = A [ j , i ] / A [ i , i ] m = A[j, i] / A[i, i] m=A[j,i]/A[i,i]
    • 对于 k = i k = i k=i 列数 \text{列数} 列数 的每一个元素,执行 A [ j , k ] = A [ j , k ] − m × A [ i , k ] A[j, k] = A[j, k] - m \times A[i, k] A[j,k]=A[j,k]m×A[i,k]

    c. 递增 i = i + 1 i = i + 1 i=i+1

  4. 回代求解

    a. 对于 i = min ⁡ ( 行数 , 列数 ) i = \min(\text{行数}, \text{列数}) i=min(行数,列数) 1 1 1 的逆序,执行以下操作:

    • 计算 A [ i , 列数 + 1 ] A[i, \text{列数} + 1] A[i,列数+1](即常数项)的值,通过减去之前已经求解的变量的贡献: A [ i , 列数 + 1 ] = A [ i , 列数 + 1 ] − ∑ j = i + 1 min ⁡ ( 行数 , 列数 ) A [ i , j ] × x [ j ] A[i, \text{列数} + 1] = A[i, \text{列数} + 1] - \sum_{j = i + 1}^{\min(\text{行数}, \text{列数})} A[i, j] \times x[j] A[i,列数+1]=A[i,列数+1]j=i+1min(行数,列数)A[i,j]×x[j],其中 x [ j ] x[j] x[j] 是之前已经求解的变量。

    • A [ i , i ] A[i, i] A[i,i] 的系数化为 1 1 1,即 x [ i ] = A [ i , 列数 + 1 ] / A [ i , i ] x[i] = A[i, \text{列数} + 1] / A[i, i] x[i]=A[i,列数+1]/A[i,i]

  5. 输出:解向量 x x x,其中包含了线性方程组的解。

需要注意的是,如果矩阵的某一行在消元过程中变为全零行,并且该行对应的常数项不为零,则线性方程组无解。如果矩阵的某一行在消元过程中变为全零行,并且该行对应的常数项也为零,则线性方程组有无穷多解。在实际应用中,还需要考虑数值稳定性和精度问题。

Julia 中将整型矩阵转换为浮点型矩阵。

下面是一些常见的方法:

方法 1:使用类型转换函数

Julia 提供了 Float64Float32 等函数来将其他类型的数值转换为浮点型。对于矩阵,你可以使用广播(broadcasting)机制来应用这种转换。

# 创建一个整型矩阵
A = [1 2; 3 4]# 将整型矩阵转换为浮点型矩阵
B = Float64.(A)

方法 2:使用 convert 函数

convert 函数是另一种转换数据类型的方法。它同样适用于矩阵。

# 创建一个整型矩阵
A = [1 2; 3 4]# 使用 convert 函数转换为浮点型矩阵
B = convert(Array{Float64, 2}, A)

方法 3:利用矩阵运算或函数

在某些情况下,你可能在矩阵运算中自然地得到浮点型结果,例如,当你将整型矩阵除以一个整数时。

# 创建一个整型矩阵
A = [1 2; 3 4]# 通过运算转换为浮点型矩阵
B = A / 1.0

方法 4:使用 map 函数

map 函数可以将一个函数应用于矩阵的每个元素。通过这种方法,你也可以将整型矩阵转换为浮点型矩阵。

# 创建一个整型矩阵
A = [1 2; 3 4]# 使用 map 函数转换为浮点型矩阵
B = map(Float64, A)

以上就是在 Julia 中将整型矩阵转换为浮点型矩阵的几种常见方法。选择哪种方法取决于你的具体需求和偏好。

参考文献

1.《最优化导论》
2.文心一言
3.chatgpt

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

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

相关文章

C语言字符串拼接

在 C 语言中,可以使用标准库函数 strcat 或 strncat 来拼接字符串。这些函数位于 string.h 头文件中,负责将一个字符串追加到另一个字符串的末尾。 1. 使用 strcat 进行字符串拼接 strcat 函数用于将源字符串(source)追加到目标…

Linux CentOS 添加路由

一、临时添加 查看当前路由表 ip route show添加路由 假设你要添加一条到特定网络的路由&#xff0c;可以使用以下命令&#xff1a; sudo ip route add <destination_network>/<netmask> via <gateway> dev <interface>例如&#xff0c;要添加一条…

【Python123题库】#统计文章字符数 #查询高校信息 #查询高校名

禁止转载&#xff0c;原文&#xff1a;https://blog.csdn.net/qq_45801887/article/details/140081854 参考教程&#xff1a;B站视频讲解——https://space.bilibili.com/3546616042621301 有帮助麻烦点个赞 ~ ~ Python123题库 统计文章字符数查询高校信息查询高校名 统计文章…

Qt/QML学习-Tumbler

QML学习 Tumbler例程视频讲解代码 main.qml import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")Tumbler {id: tumbleranchors.centerIn: parent// 只显示3个视图…

第二十章 rust多平台编译

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust多平台编译 目录 注意一、前言二、跨平台代码编写三、跨平台编译四、静态编译一、前言 相比于C/C++,rust最方便的一个东西除了包管理之外,便是跨平台编译了。 rust提供了一系列的工具可以帮助我们非常容易的…

创建一个Spring MVC项目(配置,导入依赖,以及前端控制器)

Tomcat&#xff08;10.1.28&#xff09;配置 详细讲解&#xff01; 链接https://blog.csdn.net/or77iu_N/article/details/141266535?spm1001.2014.3001.5502 1、创建 Java Web 项目 File -> New -> Project 2、导入 Spring MVC 相关依赖 <dependency> <gro…

汽车乘客热舒适度大挑战,如何利用仿真技术提高汽车环境舒适度

舒适性在人们选择汽车的决定性方面占比越来越重&#xff0c;而汽车乘员舱环境的舒适性是指为乘员提供舒适愉快便利的乘坐环境与条件&#xff0c;包括良好的平顺性、车内的低噪声、适宜的空气环境以及良好的驾驶操作性能。 舒适性 经济性 安全性、动力性 典型的乘员舱热舒适性模…

测试 UDP 端口可达性的方法

前言&#xff1a; UDP (User Datagram Protocol) 是一种无连接的传输层协议&#xff0c;它不像 TCP 那样提供确认机制来保证数据包的可靠传输。因此&#xff0c;测试 UDP 端口的可达性通常需要一些特殊的方法&#xff0c;因为传统的端口扫描工具&#xff08;如 nmap&#xff0…

AGI系列(9)手把手带你玩转 Coze 画板节点

本文以智能体“日签卡片生成器”的制作来阐述 Coze 画板节点的使用方法。 效果演示 核心流程 日签卡片生成器工作流整体分为两部分&#xff1a; 工作流&#xff1a;其核心流程为通过用户输入的主题词生成卡片的标题、内容 图像流&#xff1a;通过LLM输出的内容在图像流完成卡…

Verilog开源项目——百兆以太网交换机(七)包修改模块设计

Verilog开源项目——百兆以太网交换机&#xff08;七&#xff09;包修改模块设计 &#x1f508;声明&#xff1a;未经作者允许&#xff0c;禁止转载 &#x1f603;博主主页&#xff1a;王_嘻嘻的CSDN主页 &#x1f511;全新原创以太网交换机项目&#xff0c;Blog内容将聚焦整体…

Java项目: 基于SpringBoot+mysql网上订餐系统分前后台(含源码+数据库+开题报告+PPT+毕业论文)

一、项目简介 本项目是一套基于SpringBootmysql网上订餐系统分前后台 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单…

【北森-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

(二)Kafka离线安装 - Zookeeper下载及安装

一、下载 下载ZooKeeper之前&#xff0c;需要根据下载的Kafka版本&#xff0c;来确定ZooKeeper的版本。 Kafka官方地址&#xff1a;Apache Kafka 1、先下载源码版本&#xff0c;下载完后解压&#xff0c;在kafka-3.8.0-src\gradle目录下找到dependencies.gradle文件&#xff…

Spring高手之路

成为一名Spring框架的高手是一个涉及广泛知识面和深入实践的过程。Spring框架是Java EE领域的一个开源的、轻量级的、控制反转(IoC)的、面向切面(AOP)的容器框架&#xff0c;它提供了展示层和业务层的框架功能。以下是一些关键步骤和资源&#xff0c;可以帮助你走上成为Spring高…

我用GPT对RAG技术的学习和探索

思维导图 下图是我的学习和探索过程&#xff0c;红点表示已研究&#xff0c;黄点表示待研究 目录 思维导图RAG技术概述RAG 的关键优点应用场景 如何了解RAG技术的原理和应用1. **基础理论学习**2. **实战演练**3. **学习资源利用**4. **保持学习的连贯性**5. **多角度理解**6. …

RASA使用长文记录以及一些bug整理

RASA 学习笔记整理 一 安装 在虚拟环境中安装&#xff0c;进入python3版本的环境 conda activate python3 ai04机器旧版本&#xff1a;rasa-nlu和rasa-core是分开安装的 最新版本&#xff1a;rasa 将二者做了合并 直接安装 pip3 install rasa 在安装到如下步骤时候会报…

2024年华为OD E卷

第一题&#xff08;一星题&#xff09; 输入两个正整数n,m,编号1~n围成一圈的人&#xff0c;从1开始报数&#xff0c;数到m&#xff0c;m就退出&#xff0c;接着从下一个编号从1开始报数&#xff0c;当剩下的人少与m时停止报数&#xff0c;并按从小到大的顺序输出剩下的人在原…

应急响应-爆破漏洞应急响应流程(以SSH爆破为例)

目录 概述研判分析登录成功登录失败历史命令authorized_keys 定损止损攻击链路还原清理恢复总结复盘参考 概述 爆破漏洞是比较常见漏洞&#xff0c;端口开放&#xff0c;管理后台没有做登录频率限制等情况都可能遭受到爆破攻击&#xff0c;本文以SSH爆破为例&#xff0c;介绍下…

LuaJit分析(八)LuaJit预编译库函数加载过程

在luajit的pmain函数中&#xff0c;在执行命令行输入的参数之前&#xff0c;会执行如下函数&#xff1a; luaL_openlibs(L); 该函数位于lib_init.c中&#xff0c;实现如下&#xff1a; LUALIB_API void luaL_openlibs(lua_State *L) {const luaL_Reg *lib;for (lib lj_lib_…

N10 - NLP中的注意力机制

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 1. 注意力机制是什么2. 注意力实现步骤0. 准备隐藏状态1. 获取每个编码器隐藏状态的分数2. 通过softmax层运行所有分数3. 通过softmax得分将每个编码器的…