矢量拟合(2) - Vector Fitting算法原理

在Sanathanan–Koerner算法中:
H ~ ( s ) = n ( s ) d ( s ) = ∑ n = 0 n ˉ a n s n ∑ n = 0 n ˉ b n s n \widetilde{H}(s)=\frac{n(s)}{d(s)}=\frac{\sum_{n=0}^{\bar{n}}a_ns^n}{\sum_{n=0}^{\bar{n}}b_ns^n} H (s)=d(s)n(s)=n=0nˉbnsnn=0nˉansn
求解数值逼近时的误差项:
( e S K ( i ) ) 2 = 1 k ˉ ∑ k = 1 k ˉ ∣ H k ∑ n = 0 n ˉ b n ( i ) ( j ω k ) n − ∑ n = 0 n ˉ a n ( i ) ( j ω k ) n ∑ n = 0 n ˉ b n ( i − 1 ) ( j ω k ) n ∣ 2 \left(e_{SK}^{(i)}\right)^{2}=\frac{1}{\bar{k}}\sum_{k=1}^{\bar{k}}\left|\frac{H_{k}\sum_{n=0}^{\bar{n}}b_{n}^{(i)}(j\omega_{k})^{n}-\sum_{n=0}^{\bar{n}}a_{n}^{(i)}(j\omega_{k})^{n}}{\sum_{n=0}^{\bar{n}}b_{n}^{(i-1)}(j\omega_{k})^{n}}\right|^{2} (eSK(i))2=kˉ1k=1kˉ n=0nˉbn(i1)(jωk)nHkn=0nˉbn(i)(jωk)nn=0nˉan(i)(jωk)n 2
会包含频率的多次项,求解的最小二乘问题的矩阵将包含 Vandermonde 块,导致恶化的条件,会增加数值的不稳定性,当条件数变大时,计算结果对输入数据的微小变化会变得非常敏感,可能导致数值解不准确甚至不收敛。
为了解决上述的问题,VF算法用部分分式替代之前的传递函数的表达式
H ~ ( s ) = n ( s ) d ( s ) = ∑ n = 0 n ˉ a n s n ∑ n = 0 n ˉ b n s n \widetilde{H}(s)=\frac{n(s)}{d(s)}=\frac{\sum_{n=0}^{\bar{n}}a_ns^n}{\sum_{n=0}^{\bar{n}}b_ns^n} H (s)=d(s)n(s)=n=0nˉbnsnn=0nˉansn
H ~ ( s ) \widetilde{H}(s) H (s)的分子和分母项分别写作:

n ( i ) = c 0 ( i ) + ∑ n = 1 n c n ( i ) s − p n ( 0 ) (1.10) n^{(i)} = c_0^{(i)} + \sum_{n=1}^{n} \frac{c_n^{(i)}}{s - p_n^{(0)}} \tag{1.10} n(i)=c0(i)+n=1nspn(0)cn(i)(1.10)

d ( i ) = 1 + ∑ n = 1 n d n ( i ) s − p n ( 0 ) (1.11) d^{(i)} = 1 + \sum_{n=1}^{n} \frac{d_n^{(i)}}{s - p_n^{(0)}} \tag{1.11} d(i)=1+n=1nspn(0)dn(i)(1.11)

其中:

  • n ( i ) n^{(i)} n(i) d ( i ) d^{(i)} d(i) 分别表示分子和分母多项式。
  • c 0 ( i ) c_0^{(i)} c0(i) c n ( i ) c_n^{(i)} cn(i)是分子多项式的系数。
  • d n ( i ) d_n^{(i)} dn(i)是分母多项式的系数。
  • p n ( 0 ) p_n^{(0)} pn(0)表示初始极点,与变量 s s s一起出现在分式中。

这里提到的初始极点 p n ( 0 ) ∈ C p^{(0)}_n \in \mathbb{C} pn(0)C是一组复数,将在后续讨论它们的选取方式。可以看到,在公式 (1.11) 中,常数项已标准化为 1,这是不失一般性的处理。与 Sanathanan-Koerner 迭代中使用的幂函数基 s n s^n sn相比,分式 1 s − p n ( 0 ) \frac{1}{s - p^{(0)}_n} spn(0)1的变化在 s s s增加时更加受控。如果选择合适的极点 p n ( 0 ) p^{(0)}_n pn(0),则分式形式在频率上的变化更加平缓。此特性可改善条件数,特别是在极点 p n ( 0 ) p^{(0)}_n pn(0)彼此不同且分布较开时,效果更显著。
将(1.10)和(1.11)代入之前的误差表达式(1.9):

( e S K ( i ) ) 2 = 1 k ∑ k = 1 k ∣ H k ∑ n = 0 n b n ( i ) ( j ω k ) n − ∑ n = 0 n a n ( i ) ( j ω k ) n ( ∑ n = 0 n b n ( i − 1 ) ( j ω k ) n ) 2 ∣ 2 (e_{SK}^{(i)})^2 = \frac{1}{k} \sum_{k=1}^{k} \left| \frac{H_k \sum_{n=0}^{n} b_n^{(i)} (\text{j}\omega_k)^n - \sum_{n=0}^{n} a_n^{(i)} (\text{j}\omega_k)^n} { \left( \sum_{n=0}^{n} b_n^{(i-1)} (\text{j}\omega_k)^n \right)^2}\right|^2 (eSK(i))2=k1k=1k (n=0nbn(i1)(jωk)n)2Hkn=0nbn(i)(jωk)nn=0nan(i)(jωk)n 2
可以得到改写以后的误差表达式为:

e S K ( i ) = 1 k ∑ k = 1 k ∣ H k d ( i ) ( j ω k ) d ( i − 1 ) ( j ω k ) − n ( i ) ( j ω k ) d ( i − 1 ) ( j ω k ) ∣ 2 (1.12) e_{SK}^{(i)} = \frac{1}{k} \sum_{k=1}^{k} \left| \frac{H_k d^{(i)}(j \omega_k)}{d^{(i-1)}(j \omega_k)} - \frac{n^{(i)}(j \omega_k)}{d^{(i-1)}(j \omega_k)} \right|^2 \tag {1.12} eSK(i)=k1k=1k d(i1)(jωk)Hkd(i)(jωk)d(i1)(jωk)n(i)(jωk) 2(1.12)

对该公式的分解说明如下:

  • e S K ( i ) e_{SK}^{(i)} eSK(i) 表示第 i i i 次迭代的误差项。
  • H k H_k Hk n ( i ) ( j ω k ) n^{(i)}(j \omega_k) n(i)(jωk) 可能表示在离散频率 j ω k j \omega_k jωk 下的频率相关项或传递函数。
  • d ( i ) ( j ω k ) d^{(i)}(j \omega_k) d(i)(jωk) d ( i − 1 ) ( j ω k ) d^{(i-1)}(j \omega_k) d(i1)(jωk) 表示分母中的项。

引入了两个新量,令:

  1. w ( i ) ( s ) w^{(i)}(s) w(i)(s)
    w ( i ) ( s ) = d ( i ) ( s ) d ( i − 1 ) ( s ) (1.13) w^{(i)}(s) = \frac{d^{(i)}(s)}{d^{(i-1)}(s)} \tag{1.13} w(i)(s)=d(i1)(s)d(i)(s)(1.13)

  2. H ~ ( i ) ( s ) \tilde{H}^{(i)}(s) H~(i)(s)
    H ~ ( i ) ( s ) = n ( i ) ( s ) d ( i − 1 ) ( s ) (1.14) \tilde{H}^{(i)}(s) = \frac{n^{(i)}(s)}{d^{(i-1)}(s)} \tag{1.14} H~(i)(s)=d(i1)(s)n(i)(s)(1.14)
    将其代入1.12得到:
    ( e S K ( i ) ) 2 = 1 k ∑ k = 1 k ∣ H k w ( i ) ( j ω k ) − H ~ ( i ) ( j ω k ) ∣ 2 . (e_{SK}^{(i)})^2 = \frac{1}{k} \sum_{k=1}^{k} \left| H_k w^{(i)}(j \omega_k) - \tilde{H}^{(i)}(j \omega_k) \right|^2. (eSK(i))2=k1k=1k Hkw(i)(jωk)H~(i)(jωk) 2.

函数 H ~ ( i ) ( s ) \tilde{H}^{(i)}(s) H~(i)(s) 可以解释为通过最小化公式 (1.12) 在第 i i i 次迭代时估计的模型传递函数。具体来说,这个传递函数由当前迭代的分子 n ( i ) ( s ) n^{(i)}(s) n(i)(s)(待确定)和前一迭代的分母 d ( i − 1 ) ( s ) d^{(i-1)}(s) d(i1)(s)(已知)构成。由于误差函数的线性化,此近似方法有效地避免了分母中未知量的存在。

函数 w ( i ) ( s ) w^{(i)}(s) w(i)(s) 可以理解为一个频率相关的权重,用来乘以给定的样本 H k H_k Hk

加权函数 w ( i ) ( s ) w^{(i)}(s) w(i)(s)有两个主要目的:

  • 提供分母 d ( i ) ( s ) d^{(i)}(s) d(i)(s)的新估计,
  • 补偿通过将 H ~ ( i ) ( s ) \tilde{H}^{(i)}(s) H~(i)(s)的分母固定为前一次迭代值而引入的近似误差。实际上,权重 w ( i ) ( s ) w^{(i)}(s) w(i)(s)依赖于新分母估计 d ( i ) ( s ) d^{(i)}(s) d(i)(s)与前一次估计 d ( i − 1 ) ( s ) d^{(i-1)}(s) d(i1)(s)的比值。

d ( i ) d^{(i)} d(i) d ( i − 1 ) d^{(i-1)} d(i1)的表达式代入权重 w ( i ) ( s ) w^{(i)}(s) w(i)(s)的表达式得到:
w ( i ) ( s ) = 1 + ∑ n = 1 N d n ( i ) s − p n ( 0 ) 1 + ∑ n = 1 N d n ( i − 1 ) s − p n ( 0 ) (1.15a) w^{(i)}(s) = \frac{1 + \sum_{n=1}^{N} \frac{d^{(i)}_n}{s - p^{(0)}_n}}{1 + \sum_{n=1}^{N} \frac{d^{(i-1)}_n}{s - p^{(0)}_n}} \tag{1.15a} w(i)(s)=1+n=1Nspn(0)dn(i1)1+n=1Nspn(0)dn(i)(1.15a)

  1. 分子部分:
    1 + ∑ n = 1 N d n ( i ) s − p n ( 0 ) 1 + \sum_{n=1}^{N} \frac{d^{(i)}_n}{s - p^{(0)}_n} 1+n=1Nspn(0)dn(i)
    可以看作一个分式展开的形式,对应于某个分母为 ∏ n = 1 N ( s − p n ( 0 ) ) \prod_{n=1}^{N} (s - p^{(0)}_n) n=1N(spn(0)) 的多项式。

  2. 分母部分:
    1 + ∑ n = 1 N d n ( i − 1 ) s − p n ( 0 ) 1 + \sum_{n=1}^{N} \frac{d^{(i-1)}_n}{s - p^{(0)}_n} 1+n=1Nspn(0)dn(i1)
    同样可以看作另一个分式展开形式,对应于某个分母为 ∏ n = 1 N ( s − p n ( 0 ) ) \prod_{n=1}^{N} (s - p^{(0)}_n) n=1N(spn(0)) 的多项式。

我们需要将分式的加法和乘积展开为分母和分子的一般形式,从而得到目标式的等价关系。

  1. 分子部分的通分:
    1 + ∑ n = 1 N d n ( i ) s − p n ( 0 ) 1 + \sum_{n=1}^{N} \frac{d^{(i)}_n}{s - p^{(0)}_n} 1+n=1Nspn(0)dn(i)
    通分后分母为 ∏ n = 1 N ( s − p n ( 0 ) ) \prod_{n=1}^{N} (s - p^{(0)}_n) n=1N(spn(0)),因此分子为:
    ∏ n = 1 N ( s − p n ( 0 ) ) + ∑ n = 1 N d n ( i ) ∏ m ≠ n ( s − p m ( 0 ) ) \prod_{n=1}^{N} (s - p^{(0)}_n) + \sum_{n=1}^{N} d^{(i)}_n \prod_{m \neq n} (s - p^{(0)}_m) n=1N(spn(0))+n=1Ndn(i)m=n(spm(0))

  2. 分母部分的通分:
    1 + ∑ n = 1 N d n ( i − 1 ) s − p n ( 0 ) 1 + \sum_{n=1}^{N} \frac{d^{(i-1)}_n}{s - p^{(0)}_n} 1+n=1Nspn(0)dn(i1)
    通分后分母同样为 ∏ n = 1 N ( s − p n ( 0 ) ) \prod_{n=1}^{N} (s - p^{(0)}_n) n=1N(spn(0)),因此分子为:
    ∏ n = 1 N ( s − p n ( 0 ) ) + ∑ n = 1 N d n ( i − 1 ) ∏ m ≠ n ( s − p m ( 0 ) ) \prod_{n=1}^{N} (s - p^{(0)}_n) + \sum_{n=1}^{N} d^{(i-1)}_n \prod_{m \neq n} (s - p^{(0)}_m) n=1N(spn(0))+n=1Ndn(i1)m=n(spm(0))

  3. 将上面两式带入原始表达式:
    w ( i ) ( s ) = ∏ n = 1 N ( s − p n ( 0 ) ) + ∑ n = 1 N d n ( i ) ∏ m ≠ n ( s − p m ( 0 ) ) ∏ n = 1 N ( s − p n ( 0 ) ) + ∑ n = 1 N d n ( i − 1 ) ∏ m ≠ n ( s − p m ( 0 ) ) w^{(i)}(s) = \frac{\prod_{n=1}^{N} (s - p^{(0)}_n) + \sum_{n=1}^{N} d^{(i)}_n \prod_{m \neq n} (s - p^{(0)}_m)}{\prod_{n=1}^{N} (s - p^{(0)}_n) + \sum_{n=1}^{N} d^{(i-1)}_n \prod_{m \neq n} (s - p^{(0)}_m)} w(i)(s)=n=1N(spn(0))+n=1Ndn(i1)m=n(spm(0))n=1N(spn(0))+n=1Ndn(i)m=n(spm(0))

  4. 分子的多项式形式可以表示为新的形式:
    ∏ n = 1 N ( s − p n ( i ) ) \prod_{n=1}^{N} (s - p^{(i)}_n) n=1N(spn(i))
    其中 p n ( i ) p^{(i)}_n pn(i) 表示多项式的根,由迭代过程中 d n ( i ) d^{(i)}_n dn(i) 的值确定。

  5. 分母的多项式形式可以表示为:
    ∏ n = 1 N ( s − p n ( i − 1 ) ) \prod_{n=1}^{N} (s - p^{(i-1)}_n) n=1N(spn(i1))
    其中 p n ( i − 1 ) p^{(i-1)}_n pn(i1) 表示多项式的根,由迭代过程中 d n ( i − 1 ) d^{(i-1)}_n dn(i1) 的值确定。

因此,可以直接将分子和分母重新组合为目标形式:
w ( i ) ( s ) = ∏ n = 1 N ( s − p n ( i ) ) ∏ n = 1 N ( s − p n ( 0 ) ) ∏ n = 1 N ( s − p n ( i − 1 ) ) ∏ n = 1 N ( s − p n ( 0 ) ) w^{(i)}(s) = \frac{\frac{\prod_{n=1}^{N} (s - p^{(i)}_n)}{\prod_{n=1}^{N} (s - p^{(0)}_n)}}{\frac{\prod_{n=1}^{N} (s - p^{(i-1)}_n)}{\prod_{n=1}^{N} (s - p^{(0)}_n)}} w(i)(s)=n=1N(spn(0))n=1N(spn(i1))n=1N(spn(0))n=1N(spn(i))

分子分母的公共项 ∏ n = 1 N ( s − p n ( 0 ) ) \prod_{n=1}^{N} (s - p^{(0)}_n) n=1N(spn(0)) 相互抵消,最终得到:
w ( i ) ( s ) = ∏ n = 1 N ( s − p n ( i ) ) ∏ n = 1 N ( s − p n ( i − 1 ) ) (1.15b) w^{(i)}(s) = \frac{\prod_{n=1}^{N} (s - p^{(i)}_n)}{\prod_{n=1}^{N} (s - p^{(i-1)}_n)} \tag{1.15b} w(i)(s)=n=1N(spn(i1))n=1N(spn(i))(1.15b)

这个表达式也可以写作极点和残差的形式:
w ( i ) ( s ) = 1 + ∑ n = 1 N w n ( i ) 1 s − p n ( i − 1 ) (1.15c) w^{(i)}(s) =1 + \sum_{n=1}^{N} w^{(i)}_n \frac{1}{s - p^{(i-1)}_n} \tag{1.15c} w(i)(s)=1+n=1Nwn(i)spn(i1)1(1.15c)

在上述表达式中, w ( i ) ( s ) w^{(i)}(s) w(i)(s) w n ( i ) w^{(i)}_n wn(i) 表示不同的量,具体区别如下:

  1. w ( i ) ( s ) w^{(i)}(s) w(i)(s)
    w ( i ) ( s ) w^{(i)}(s) w(i)(s) 是一个关于变量 s s s 的函数。它表示在第 i i i 次迭代时的整个权重函数,用于在模型拟合中调整传递函数的误差。 w ( i ) ( s ) w^{(i)}(s) w(i)(s) 是一个复变量的函数,其形式为:

    w ( i ) ( s ) = 1 + ∑ n = 1 N w n ( i ) 1 s − p n ( i − 1 ) w^{(i)}(s) = 1 + \sum_{n=1}^{N} w^{(i)}_n \frac{1}{s - p^{(i-1)}_n} w(i)(s)=1+n=1Nwn(i)spn(i1)1

    这个表达式表明 w ( i ) ( s ) w^{(i)}(s) w(i)(s) 是通过每个 w n ( i ) w^{(i)}_n wn(i) 和分量 1 s − p n ( i − 1 ) \frac{1}{s - p^{(i-1)}_n} spn(i1)1 的线性组合构成的。

  2. w n ( i ) w^{(i)}_n wn(i)
    w n ( i ) w^{(i)}_n wn(i) w ( i ) ( s ) w^{(i)}(s) w(i)(s) 中的单个权重系数,不依赖于 s s s。它表示每个分量 1 s − p n ( i − 1 ) \frac{1}{s - p^{(i-1)}_n} spn(i1)1 的权重。换句话说, w n ( i ) w^{(i)}_n wn(i) 控制了第 i i i 次迭代中第 n n n 个极点 p n ( i − 1 ) p^{(i-1)}_n pn(i1) 对权重函数 w ( i ) ( s ) w^{(i)}(s) w(i)(s) 的影响大小。

总结来说, w ( i ) ( s ) w^{(i)}(s) w(i)(s) 是完整的权重函数,而 w n ( i ) w^{(i)}_n wn(i) 是该权重函数中各个项的权重系数。

在公式 (1.15b) 中, p n ( i ) p_n^{(i)} pn(i) d ( i ) ( s ) d^{(i)}(s) d(i)(s)的零点,因此也是 H ~ ( i + 1 ) ( s ) \tilde{H}^{(i+1)}(s) H~(i+1)(s)的极点。我们将 w ( i ) ( s ) w^{(i)}(s) w(i)(s) 表达为一组新的极点 p n ( i − 1 ) p_n^{(i-1)} pn(i1) 的形式,这些极点会在每次迭代中发生变化,如 (1.15c) 的表达式所示。

H ~ ( i ) ( s ) \tilde{H}^{(i)}(s) H~(i)(s) 也可以进行相同的操作,最终得到:
H ~ ( i ) ( s ) = c 0 ( i ) + ∑ n = 1 n ˉ c n ( i ) s − p n ( 0 ) 1 + ∑ n = 1 n ˉ d n ( i − 1 ) s − p n ( 0 ) = r 0 ( i ) + ∑ n = 1 n ˉ r n ( i ) s − p n ( i − 1 ) . (1.16) \tilde{H}^{(i)}(s) = \frac{c_0^{(i)} + \sum_{n=1}^{\bar{n}} \frac{c_n^{(i)}}{s - p_n^{(0)}}}{1 + \sum_{n=1}^{\bar{n}} \frac{d_n^{(i-1)}}{s - p_n^{(0)}}} = r_0^{(i)} + \sum_{n=1}^{\bar{n}} \frac{r_n^{(i)}}{s - p_n^{(i-1)}}. \tag{1.16} H~(i)(s)=1+n=1nˉspn(0)dn(i1)c0(i)+n=1nˉspn(0)cn(i)=r0(i)+n=1nˉspn(i1)rn(i).(1.16)

将新的权重函数的表达式和传递函数的表达式代入,可以得到优化后的误差表达式误差函数 ( e S K ( i ) ) 2 (e_{SK}^{(i)})^2 (eSK(i))2 表示为:

( e S K ( i ) ) 2 = 1 k ∑ k = 1 K ∣ H k ( 1 + ∑ n = 1 n w n ( i ) j ω k − p n ( i − 1 ) ) − ( r 0 ( i ) + ∑ n = 1 n r n ( i ) j ω k − p n ( i − 1 ) ) ∣ 2 ( 1.17 ) (e_{SK}^{(i)})^2 = \frac{1}{k} \sum_{k=1}^{K} \left| H_k \left( 1 + \sum_{n=1}^{n} \frac{w_n^{(i)}}{\text{j} \omega_k - p_n^{(i-1)}} \right) - \left( r_0^{(i)} + \sum_{n=1}^{n} \frac{r_n^{(i)}}{\text{j} \omega_k - p_n^{(i-1)}} \right) \right|^2 {(1.17)} (eSK(i))2=k1k=1K Hk(1+n=1njωkpn(i1)wn(i))(r0(i)+n=1njωkpn(i1)rn(i)) 2(1.17)

这是矢量拟合(VF)中实际使用的误差函数,用于将模型拟合到给定的样本数据上。公式 (1.17) 和 (1.9) 的主要区别在于线性化误差如何通过迭代加权逐步收敛到公式 (1.6)。

在公式 (1.12) 中,权重 1 d ( i − 1 ) ( j ω k ) \frac{1}{d^{(i-1)}(j\omega_k)} d(i1)(jωk)1 被显式地应用,但这种方法会降低数值条件的稳定性。

而在公式 (1.17) 中,相同的权重通过在每次迭代中重新定位极点 p n ( i − 1 ) p_n^{(i-1)} pn(i1) 的方式被隐式地应用。

一旦公式 (1.17) 被最小化后,可以通过 d ( i ) ( s ) d^{(i)}(s) d(i)(s) 的零点来找到下一次迭代的更新极点 p n ( i ) p_n^{(i)} pn(i),正如从公式 (1.15c) 表达式中可以看出的那样。可以证明,这些零点可以通过一个矩阵的特征值来计算:

{ p n ( i ) } = eig ( A ( i − 1 ) − b w ( c w ( i ) ) T ) , (1.18) \{p_n^{(i)}\} = \text{eig}(A^{(i-1)} - b_w (c_w^{(i)})^T), \tag{1.18} {pn(i)}=eig(A(i1)bw(cw(i))T),(1.18)
其中:

  • A ( i − 1 ) = diag { p 1 ( i − 1 ) , … , p n ( i − 1 ) } A^{(i-1)} = \text{diag}\{p_1^{(i-1)}, \dots, p_n^{(i-1)}\} A(i1)=diag{p1(i1),,pn(i1)}是一个对角矩阵,由前一次迭代的极点 p n ( i − 1 ) p_n^{(i-1)} pn(i1) 构成;
  • b w b_w bw 是一个 n × 1 n \times 1 n×1 的全 1 向量;
  • ( c w ( i ) ) T = [ w 1 ( i ) , … , w n ( i ) ] (c_w^{(i)})^T = [w_1^{(i)}, \dots, w_n^{(i)}] (cw(i))T=[w1(i),,wn(i)] 是权重系数的转置向量。

在收敛时, p n ( i − 1 ) → p n ( i ) p_n^{(i-1)} \to p_n^{(i)} pn(i1)pn(i),它们成为所得到模型 H ( i ) ( s ) H^{(i)}(s) H(i)(s)的极点。当这种情况发生时,根据公式 (1.15c) 表达式,可以看到 w ( i ) → 1 w^{(i)} \to 1 w(i)1。同时,线性化误差 (1.12) 逐渐收敛到 (1.6),达到了目标。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Tomcat 如何管理 Session

Tomcat 如何管理 Session 我们知道,Tomcat 中每一个 Context 容器对应一个 Web 应用,而 Web 应用之间的 Session 应该是独立的,因此 Session 的管理肯定是 Context 级的,也就是一个 Context 一定关联多个 Session。 Tomcat 中主…

【ArcGISPro】使用AI模型提取要素-提取车辆(目标识别)

示例数据下载 栅格数据从网上随便找一个带有车辆的栅格数据 f094a6b1e205cd4d30a2e0f816f0c6af.jpg (1200799) (588ku.com) 添加数据

SpringBoot3_Web开发

4. 内容协商 一套系统适配多端数据返回 移动端:返回JSON数据第三方:返回XMLIoT:返回自定义协议数据 1. 默认规则 1. SpringBoot 多端内容适配 基于请求头内容协商 【默认】 客户端向服务端发送请求,携带HTTP标准的 Accept 请求…

Mysql篇-语句执行计划详解(explain)

概述 使用 explain 输出 SELECT 语句执行的详细信息,包括以下信息: 表的加载顺序 sql 的查询类型 可能用到哪些索引,实际上用到哪些索引 读取的行数 Explain 执行计划包含字段信息如下:分别是 id、select_type、table、partit…

.net 7.0 解决“The keyword field is required”的问题

在 .net 3.1项目的时候,使用 keyword 做 API 接口的模糊匹配,能够传入keyword “” 进行整表查询。但当我在 .net 7.0 项目中这么使用的时候,传入 keyword 不为空时能够进行匹配,但是当我传入 keyword “” 的时候就报错 “The …

高效语言模型 Parler-TTS 上线,一键完成文本转语音

Parler-TTS 是一种轻量级的文本转语音 (TTS) 模型,可以生成具有给定说话者风格的高质量、自然语音,自由度及创新性非常高,并且可以通过 Prompt 控制说话者的性别、音色、语调以及所处的场景(室内、室外、马路上、音乐厅等&#xf…

网络安全与防范

1.重要性 随着互联网的发达,各种WEB应用也变得越来越复杂,满足了用户的各种需求,但是随之而来的就是各种网络安全的问题。了解常见的前端攻击形式和保护我们的网站不受攻击是我们每个优秀fronter必备的技能。 2.分类 XSS攻击CSRF攻击网络劫…

JavaWeb——Maven、web入门

1. maven maven是一款用于管理和构建Java项目的工具,它基于项目对象模型(POM—Project Object Model)的概念,通过一小段描述信息来管理项目的构建。 1.1. 作用 1.1.1. 依赖管理 方便快捷的管理项目依赖的资源(jar包…

【前端学习笔记】Javascript学习二(运算符、数组、函数)

一、运算符 运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。 JavaScript中常用的运算符有: 算数运算符、递增和递减运算符、比较运算符、逻辑运算符、赋值运算符 算数运算符: 、-…

【开源免费】基于Vue和SpringBoot的智慧食堂系统(附论文)

本文项目编号 T 629 ,文末自助获取源码 \color{red}{T629,文末自助获取源码} T629,文末自助获取源码 随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化,网络化和电子化。网…

基因组之全局互作热图可视化

引言 PlotHiC 是一个专为 Hi-C 数据可视化分析而设计的 Python 包。Hi-C 技术是一种能够检测染色体三维结构的实验方法,它能揭示 DNA 在细胞核内的三维组织结构。为了更好地展示和解释这些复杂的数据,PlotHiC[1] 可以帮助用户方便地绘制Hi-C 数据的热图。…

道本科技智慧合同管理平台,采用数字化技术帮助企业建立全生命周期的合同管理模式。

作为专业的企业合同管理平台建设专家,我们拥有丰富的实施经验和专业技术团队,致力于帮助企业搭建高效、安全的合同管理系统。我们的解决方案涵盖合同起草、审批、存储、分析和报告等多个环节,能够满足不同企业的多样化需求。 选择我们&#…

AmazonS3集成minio实现https访问

最近系统全面升级到https,之前AmazonS3大文件分片上传直接使用http://ip:9000访问minio的方式已然行不通,https服务器访问http资源会报Mixed Content混合内容错误。 一般有两种解决方案,一是升级minio服务,配置ssl证书&#xff0c…

QGIS使用WMS图层

目录 参考链接 参考链接 [1] 使用 WMS 数据 (QGIS3) 2023.8;

华为防火墙技术基本概念学习笔记

1.防火墙概述 1.1防火墙与交换机、路由器对比 路由器与交换机的本质是转发,防火墙的本质是控制。 防火墙与路由器、交换机是有区别的。路由器用来连接不同的网络,通过路由协议保证互联互通,确保将报文转发到目的地;交换机则通常用来组建局域…

面向FWA市场!移远通信高性能5G-A模组RG650V-NA通过北美两大重要运营商认证

近日,全球领先的物联网整体解决方案供应商移远通信宣布,其旗下符合3GPP R17标准的新一代5G-A模组RG650V-NA成功通过了北美两家重要运营商认证。凭借高速度、大容量、低延迟、高可靠等优势,该模组可满足CPE、家庭/企业网关、移动热点、高清视频…

idea maven 重新构建索引

当设置maven仓库为离线模式的时候,会出现一些问题。 比如本地的仓库被各种方式手动更新之后, 举例:我需要一个spring的包,在pmo文件中写好了引入包的代码 但是由于是离线模式没有办法触发自动下载,那么这个时候我可以…

React(二)

文章目录 项目地址七、数据流7.1 子组件传递数据给父组件7.1.1 方式一:給父设置回调函数,传递给子7.1.2 方式二:直接将父的setState传递给子7.2 给props传递jsx7.2.1 方式一:直接传递组件给子类7.2.2 方式二:传递函数给子组件7.3 props类型验证7.4 props的多层传递7.5 cla…

项目管理的核心指南:四管八理

01项目管理核心:四管八理 项目管理的复杂性在于其多变的细节,但一旦掌握了核心框架和方法论,便能轻松应对。以下是项目管理的“四管八理”框架,旨在帮助项目经理构建自己的管理方法论。 02项目管理“四管” 1.团队协调 项目成功…

消防设施操作员高频考点

1、职业是指从业人员为获取主要生活来源所从事的社会工作类别。(正确) 2、职业活动以获得现金或实物等报酬为目的,这属于职业特征的(A)。 A、目的性 B、社会性 C、稳定性 D、规范性 解析:…