电力系统潮流计算的计算机算法(二)——牛顿-拉夫逊法的原理

本篇为本科课程《电力系统稳态分析》的笔记。

本篇为这一章的第二篇笔记。上一篇传送门,下一篇传送门

潮流计算的牛顿-拉夫逊方法

牛顿-拉夫逊法的原理

牛顿-拉夫逊法是求解非线性方程的最好方法之一。先从一维非线性方程式的解来说明他的意义和推导过程。

牛顿-拉夫逊法的意义和推导

设一维方程为: f ( x ) = 0 f(x)=0 f(x)=0。假设其准确解为 x ( ∗ ) x^{(*)} x(),而 x ( k ) x^{(k)} x(k)是其近似解,他和准确解之间的差值为 Δ x ( k ) \Delta x^{(k)} Δx(k),所以有:
x ( ∗ ) = x ( k ) + Δ x ( k ) x^{(*)}=x^{(k)}+\Delta x^{(k)} x()=x(k)+Δx(k)

将上式带入方程中,可得:
f ( x ( ∗ ) ) = f ( x ( k ) + Δ x ( k ) ) = 0 f(x^{(*)})=f(x^{(k)}+\Delta x^{(k)})=0 f(x())=f(x(k)+Δx(k))=0

将上式在 x ( k ) x^{(k)} x(k)处进行泰勒展开,得到:
f ( x ( k ) + Δ x ( k ) ) = f ( x ( k ) ) + f ′ ( x ( k ) ) Δ x ( k ) + ⋯ = 0 f(x^{(k)}+\Delta x^{(k)})=f(x^{(k)})+f'(x^{(k)})\Delta x^{(k)}+\cdots=0 f(x(k)+Δx(k))=f(x(k))+f(x(k))Δx(k)+=0

略去上面展开的高次项,可得到线性部分:
f ( x ( k ) ) + f ′ ( x ( k ) ) Δ x ( k ) = 0 f(x^{(k)})+f'(x^{(k)})\Delta x^{(k)}=0 f(x(k))+f(x(k))Δx(k)=0

这一个方程就是修正方程,利用他可以解出:
Δ x ( k ) = − f ( x ( k ) ) f ′ ( x ( k ) ) \Delta x^{(k)}=-\frac{f(x^{(k)})}{f'(x^{(k)})} Δx(k)=f(x(k))f(x(k))

Δ x ( k ) \Delta x^{(k)} Δx(k)被称为修正量。这样就可以得到迭代下一回的解,它有望更加接近于准确解:
x ( k + 1 ) = Δ x ( k ) + x ( k ) x^{(k+1)}=\Delta x^{(k)}+x^{(k)} x(k+1)=Δx(k)+x(k)

然后通过相同的接法求出 Δ x ( k + 1 ) \Delta x^{(k+1)} Δx(k+1),得到有望更加接近于准确解的 x ( k + 2 ) x^{(k+2)} x(k+2)

上面就是牛顿拉夫逊法的步骤,这样继续迭代下去,直到满足$|\Delta x^{(k)}|\leqslant \varepsilon $ (精度),所求出来的解就是最终结果。

上面的迭代过程可以整理成下面的迭代形式:
Δ x ( k ) = − f ( x ( k ) ) f ′ ( x ( k ) ) x ( k + 1 ) = Δ x ( k ) + x ( k ) ( k = 0 , 1 , ⋯   ) \Delta x^{(k)}=-\frac{f(x^{(k)})}{f'(x^{(k)})}\\\\ x^{(k+1)}=\Delta x^{(k)}+x^{(k)}\\\\ (k=0,1,\cdots) Δx(k)=f(x(k))f(x(k))x(k+1)=Δx(k)+x(k)(k=0,1,)
初值 x ( 0 ) x^{(0)} x(0)需要用户给定。

牛拉法的特点

  1. 它是迭代法,是逐步逼近的方法。
  2. 修正方程式线性化的方程,体现在把非线性方程在 x ( k ) x^{(k)} x(k)处进行泰勒展开,并略去了高阶小量。
  3. 它对于初值是敏感的,如果初始值远离准确解,会导致不收敛。

多变量非线性方程的解

设n维非线性方程组为:
{ f 1 ( x 1 , x 2 , ⋯   , x n ) = 0 f 2 ( x 1 , x 2 , ⋯   , x n ) = 0 ⋮ f n ( x 1 , x 2 , ⋯   , x n ) = 0 \begin{cases} f_1\left(x_1,x_2,\cdots,x_n\right)=0\\ f_2\left(x_1,x_2,\cdots,x_n\right)=0\\ \vdots\\ f_n\left(x_1,x_2,\cdots,x_n\right)=0 \end{cases} f1(x1,x2,,xn)=0f2(x1,x2,,xn)=0fn(x1,x2,,xn)=0

假设初始值给定为 x 1 ( 0 ) , x 2 ( 0 ) , . . . , x n ( 0 ) x_1^{(0)},x_2^{(0)},...,x_n^{(0)} x1(0),x2(0),...,xn(0),并令各变量的修正量为 Δ x 1 ( 0 ) , Δ x 2 ( 0 ) , ⋯   , Δ x n ( 0 ) \Delta x_1^{(0)},\Delta x_2^{(0)},\cdots,\Delta x_n^{(0)} Δx1(0),Δx2(0),,Δxn(0),那么对于上面的n个方程,在初始值附近展开成泰勒级数,并忽略修正量二次和更高次数的项,得到:
f 1 ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯ x n ( 0 ) ) + ( ∂ f 1 ∂ x 1 ∣ 0 Δ x 1 ( 0 ) + ∂ f 1 ∂ x 2 ∣ 0 Δ x 2 ( 0 ) + ⋯ + ∂ f 1 ∂ x n ∣ 0 Δ x n ( 0 ) ) = 0 f 2 ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯ x n ( 0 ) ) + ( ∂ f 2 ∂ x 1 ∣ 0 Δ x 1 ( 0 ) + ∂ f 2 ∂ x 2 ∣ 0 Δ x 2 ( 0 ) + ⋯ + ∂ f 2 ∂ x n ∣ 0 Δ x n ( 0 ) ) = 0 ⋮ f n ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯ x n ( 0 ) ) + ( ∂ f n ∂ x 1 ∣ 0 Δ x 1 ( 0 ) + ∂ f n ∂ x 2 ∣ 0 Δ x 2 ( 0 ) + ⋯ + ∂ f n ∂ x n ∣ 0 Δ x n ( 0 ) ) = 0 f_{1}\left(x_{1}^{(0)},x_{2}^{(0)},\cdots x_{n}^{(0)}\right)+\left(\frac{\partial f_{1}}{\partial x_{1}}\bigg|_{0}\Delta x_{1}^{(0)}+\frac{\partial f_{1}}{\partial x_{2}}\bigg|_{0}\Delta x_{2}^{(0)}+\cdots+\frac{\partial f_{1}}{\partial x_{n}}\bigg|_{0}\Delta x_{n}^{(0)}\right)=0\\\\ f_{2}\left(x_{1}^{(0)},x_{2}^{(0)},\cdots x_{n}^{(0)}\right)+\left(\frac{\partial f_{2}}{\partial x_{1}}\bigg|_{0}\Delta x_{1}^{(0)}+\frac{\partial f_{2}}{\partial x_{2}}\bigg|_{0}\Delta x_{2}^{(0)}+\cdots+\frac{\partial f_{2}}{\partial x_{n}}\bigg|_{0}\Delta x_{n}^{(0)}\right)=0\\\\ \vdots\\\\ f_{n}\left(x_{1}^{(0)},x_{2}^{(0)},\cdots x_{n}^{(0)}\right)+\left(\frac{\partial f_{n}}{\partial x_{1}}\bigg|_{0}\Delta x_{1}^{(0)}+\frac{\partial f_{n}}{\partial x_{2}}\bigg|_{0}\Delta x_{2}^{(0)}+\cdots+\frac{\partial f_{n}}{\partial x_{n}}\bigg|_{0}\Delta x_{n}^{(0)}\right)=0 f1(x1(0),x2(0),xn(0))+(x1f1 0Δx1(0)+x2f1 0Δx2(0)++xnf1 0Δxn(0))=0f2(x1(0),x2(0),xn(0))+(x1f2 0Δx1(0)+x2f2 0Δx2(0)++xnf2 0Δxn(0))=0fn(x1(0),x2(0),xn(0))+(x1fn 0Δx1(0)+x2fn 0Δx2(0)++xnfn 0Δxn(0))=0

其中, ∂ f i ∂ x j ∣ 0 \frac{\partial f_{i}}{\partial x_{j}}\bigg|_{0} xjfi 0是函数 f i ( x 1 , x 2 , ⋯   , x n ) f_i(x_1,x_2,\cdots,x_n) fi(x1,x2,,xn)对自变量 x j x_j xj的偏导数在 ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯   , x n ( 0 ) ) (x_1^{(0)},x_2^{(0)},\cdots,x_n^{(0)}) (x1(0),x2(0),,xn(0))处的值。

将上方程组表示为矩阵形式,可得:
[ f 1 ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯   , x n ( 0 ) ) f 1 ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯   , x n ( 0 ) ) ⋮ f n ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯   , x n ( 0 ) ) ] = − [ ∂ f 1 ∂ x 1 ∣ 0 ∂ f 1 ∂ x 2 ∣ 0 . . . ∂ f 1 ∂ x n ∣ 0 ∂ f 2 ∂ x 1 ∣ 0 ∂ f 2 ∂ x 2 ∣ 0 . . . ∂ f 2 ∂ x n ∣ 0 ⋮ ∂ f n ∂ x 1 ∣ 0 ∂ f n ∂ x 2 ∣ 0 . . . ∂ f n ∂ x n ∣ 0 ] [ Δ x 1 ( 0 ) Δ x 2 ( 0 ) ⋮ Δ x n ( 0 ) ] \begin{bmatrix} f_1(x_1^{(0)},x_2^{(0)},\cdots,x_n^{(0)})\\ f_1(x_1^{(0)},x_2^{(0)},\cdots,x_n^{(0)})\\ \vdots\\ f_n(x_1^{(0)},x_2^{(0)},\cdots,x_n^{(0)}) \end{bmatrix} =- \begin{bmatrix} \frac{\partial f_1}{\partial x_1}\Big|_0\frac{\partial f_1}{\partial x_2}\Big|_0&...&\frac{\partial f_1}{\partial x_n}\Big|_0\\ \frac{\partial f_2}{\partial x_1}\Big|_0\frac{\partial f_2}{\partial x_2}\Big|_0&...&\frac{\partial f_2}{\partial x_n}\Big|_0\\ \vdots\\ \frac{\partial f_n}{\partial x_1}\Big|_0\frac{\partial f_n}{\partial x_2}\Big|_0&...&\frac{\partial f_n}{\partial x_n}\Big|_0 \end{bmatrix} \begin{bmatrix}\Delta x_1^{(0)}\\\Delta x_2^{(0)}\\\vdots\\\Delta x_n^{(0)}\end{bmatrix} f1(x1(0),x2(0),,xn(0))f1(x1(0),x2(0),,xn(0))fn(x1(0),x2(0),,xn(0)) = x1f1 0x2f1 0x1f2 0x2f2 0x1fn 0x2fn 0.........xnf1 0xnf2 0xnfn 0 Δx1(0)Δx2(0)Δxn(0)

使用向量 x , x ( 0 ) , Δ x ( 0 ) \boldsymbol{x},\boldsymbol{x}^{(0)},\Delta\boldsymbol{x}^{(0)} x,x(0),Δx(0)分别代表变量、变量的初值和修正量所组成的向量,则将上面的矩阵可以化为:
J ( 0 ) Δ x ( 0 ) = − f ( x ( 0 ) ) \boldsymbol{J}^{(0)}\Delta\boldsymbol{x}^{(0)}=-\boldsymbol{f}(\boldsymbol{x}^{(0)}) J(0)Δx(0)=f(x(0))

其中, J \boldsymbol{J} J是雅可比矩阵,为向量 f ( x ) \boldsymbol{f}(\boldsymbol{x}) f(x)对变量 x \boldsymbol{x} x的一阶偏导数矩阵。

上面这个方程就是修正量的线性方程。从上式中可以解出 Δ x 1 ( 0 ) , Δ x 2 ( 0 ) , ⋯   , Δ x n ( 0 ) \Delta x_1^{(0)},\Delta x_2^{(0)},\cdots,\Delta x_n^{(0)} Δx1(0),Δx2(0),,Δxn(0),然后就可以计算出修正后的值:
{ x 1 ( 1 ) = x 1 ( 0 ) + Δ x 1 ( 0 ) x 2 ( 1 ) = x 2 ( 0 ) + Δ x 2 ( 0 ) ⋮ x n ( 1 ) = x n ( 0 ) + Δ x n ( 0 ) \begin{cases} x_1^{(1)}=x_1^{(0)}+\Delta x_1^{(0)}\\ x_2^{(1)}=x_2^{(0)}+\Delta x_2^{(0)}\\ \vdots\\ x_n^{(1)}=x_n^{(0)}+\Delta x_n^{(0)} \end{cases} x1(1)=x1(0)+Δx1(0)x2(1)=x2(0)+Δx2(0)xn(1)=xn(0)+Δxn(0)

然后将求出来的 x 1 ( 1 ) , x 2 ( 1 ) , . . . , x n ( 1 ) x_1^{(1)},x_2^{(1)},...,x_n^{(1)} x1(1),x2(1),...,xn(1)作为新的初值,带入式子重新形成并求解新的修正方程式,这样就可以得到新的修正量 Δ x 1 ( 1 ) , Δ x 2 ( 1 ) , ⋯   , Δ x n ( 1 ) \Delta x_1^{(1)},\Delta x_2^{(1)},\cdots,\Delta x_n^{(1)} Δx1(1),Δx2(1),,Δxn(1),然后按照同样的步骤继续。

那么整个过程可以总结为,给定 x ( 0 ) \boldsymbol{x}^{(0)} x(0)
J ( k ) Δ x ( k ) = − f ( x ( k ) ) x ( k + 1 ) = x ( k ) + Δ x ( 0 ) ( k = 0 , 1 , ⋯   ) \boldsymbol{J}^{(k)}\Delta\boldsymbol{x}^{(k)}=-\boldsymbol{f}(\boldsymbol{x}^{(k)})\\\\ \boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}+\Delta\boldsymbol{x}^{(0)}\\\\ (k=0,1,\cdots) J(k)Δx(k)=f(x(k))x(k+1)=x(k)+Δx(0)(k=0,1,)

迭代的收敛判断依据为:
∣ ∣ f ( x ( k ) ) ∣ ∣ ∞ = max ⁡ i ∣ f i ( x ( k ) ) ∣ ⩽ ε ||\boldsymbol{f}(\boldsymbol{x}^{(k)})||_{\infty}=\max_i|f_i(\boldsymbol{x}^{(k)})|\leqslant \varepsilon ∣∣f(x(k))=imaxfi(x(k))ε

其中 ∣ ∣ f ( x ( k ) ) ∣ ∣ ∞ ||\boldsymbol{f}(\boldsymbol{x}^{(k)})||_{\infty} ∣∣f(x(k))代表的是向量 f ( x ( k ) ) \boldsymbol{f}(\boldsymbol{x}^{(k)}) f(x(k))无穷范数,即 f ( x ( k ) ) \boldsymbol{f}(\boldsymbol{x}^{(k)}) f(x(k))中绝对值最大的那个元素, ε \varepsilon ε为所给定的容许误差。

牛拉法主要计算量在于修正方程的求解,下面说明一般线性方程组的基本求解方法。对于n阶线性方程组 A x = b \boldsymbol{A}\boldsymbol{x}=\boldsymbol{b} Ax=b,通过高斯消去,并记录消去过程中的因子,可以将系数矩阵 A \boldsymbol{A} A分解成两个三角矩阵的乘积,即:
A = L U \boldsymbol{A}=\boldsymbol{L}\boldsymbol{U} A=LU

L = [ 1 l 21 1 ⋮ ⋱ ⋱ l n − 1 , 1 ⋯ l n − 1 , n − 2 1 l n , 1 l n , 2 ⋯ l n , n − 1 1 ] ; U = [ u 11 u 12 ⋯ u 1 , n − 1 , u 1 , n u 22 ⋯ u 2 , n − 1 u 2 , n ⋱ ⋱ ⋮ u n − 1 , n − 1 u n − 1 , n u n n ] L=\begin{bmatrix}1&&&&&\\ l_{21}&1&&&&\\ \vdots&\ddots&\ddots&&\\ l_{n-1,1}&\cdots&l_{n-1,n-2}&1&\\ l_{n,1}&l_{n,2}&\cdots&l_{n,n-1}&1 \end{bmatrix} ;U=\begin{bmatrix} u_{11}&u_{12}&\cdots&u_{1,n-1,}&u_{1,n}\\ &u_{22}&\cdots&u_{2,n-1}&u_{2,n}\\ &&\ddots&\ddots&\vdots\\ &&&u_{n-1,n-1}&u_{n-1,n}\\ &&&&u_{nn} \end{bmatrix} L= 1l21ln1,1ln,11ln,2ln1,n21ln,n11 ;U= u11u12u22u1,n1,u2,n1un1,n1u1,nu2,nun1,nunn

其中, L \boldsymbol{L} L是单位下三角矩阵, U \boldsymbol{U} U是上三角矩阵。

该分解为Doolittle分解,其分解过程为:
u i j = a i j − ∑ k = 1 i − 1 l k u k j ( j = i , ⋯   , n ) l j i = ( a j i − ∑ k = 1 i − 1 l j k u k i ) / u i i ( j = i + 1 , ⋯   , n ) ( i = 1 , ⋯   , n ) u_{ij}=a_{ij}-\sum_{k=1}^{i-1}l_{k}u_{kj}\quad(j=i,\cdots,n)\\\\ l_{ji}=\left(a_{ji}-\sum_{k=1}^{i-1}l_{jk}u_{ki}\right)/u_{ii}\quad(j=i+1,\cdots,n)\\\\ (i=1,\cdots,n) uij=aijk=1i1lkukj(j=i,,n)lji=(ajik=1i1ljkuki)/uii(j=i+1,,n)(i=1,,n)

这个分解过程需要乘除的运算次数为 n 3 − n 3 \frac{n^3-n}{3} 3n3n

利用上面的分解,线性方程组的求解就变成了对两个三角方程的相继求解:
L y = b U x = y \boldsymbol{L}\boldsymbol{y}=\boldsymbol{b}\\\\ \boldsymbol{U}\boldsymbol{x}=\boldsymbol{y} Ly=bUx=y

上面第一个式子的求解称为前代,其求解过程为:
y 1 = b 1 y i = b i − ∑ j = 1 i − 1 l i j y j ( i = 2 , ⋯   , n ) y_{1}=b_{1}\\\\ y_{i}=b_{i}-\sum_{j=1}^{i-1}l_{ij}y_{j}\\\\ (i=2,\cdots,n) y1=b1yi=bij=1i1lijyj(i=2,,n)

上面第二个式子的求解称为回代,其求解过程为:
x n = y n / u m x i = ( y i − ∑ j = i + 1 n u i j x j ) / u i ( i = n − 1 , ⋯   , 1 ) x_{n}=y_{n}/u_{m}\\\\ x_{i}=\left(y_{i}-\sum_{j=i+1}^{n}u_{ij}x_{j}\right)/u_{i}\\\\ (i=n-1,\cdots,1) xn=yn/umxi=(yij=i+1nuijxj)/ui(i=n1,,1)

前代和回代总共需要乘除次数为 n 2 n^2 n2

A \boldsymbol{A} A为对称矩阵的时候,其三角分解师可以简化为: A = L D L T \boldsymbol{A}=\boldsymbol{L}\boldsymbol{D}\boldsymbol{L}^T A=LDLT。其中, L \boldsymbol{L} L是单位下三角矩阵, D \boldsymbol{D} D是对角矩阵, D = d i a g { d 1 , d 2 , ⋯   , d n } \boldsymbol{D}=\mathrm{diag}\{d_1,d_2,\cdots,d_n\} D=diag{d1,d2,,dn}

该分解为Choleskey分解,其分解过程为:
d i = a i − ∑ k = 1 i − 1 l k 2 d k l j i = ( a j i − ∑ k = 1 i − 1 l k d k l j i ) / d i ( j = i + 1 , ⋯   , n ) ( i = 1 , ⋯   , n ) d_{i}=a_{i}-\sum_{k=1}^{i-1}l_{k}^{2}d_{k}\\ l_{ji}=\left(a_{ji}-\sum_{k=1}^{i-1}l_{k}d_{k}l_{ji}\right)/d_{i}\left(j=i+1,\cdots,n\right)\\\\ (i=1,\cdots,n) di=aik=1i1lk2dklji=(ajik=1i1lkdklji)/di(j=i+1,,n)(i=1,,n)

利用上面的分解,线性方程组的求解就变成了如下两个三角方程的相继求解:
L y = b L T x = D − 1 y \boldsymbol{L}\boldsymbol{y}=\boldsymbol{b}\\\\ \boldsymbol{L}^T\boldsymbol{x}=\boldsymbol{D}^{-1}\boldsymbol{y} Ly=bLTx=D1y

上面第一个式子的求解前面已经介绍过,为前代。上面第二个式子的求解过程为:
x n = y n / d n x i = y i / d i − ∑ j = i + 1 n l j i x j ( i = n − 1 , ⋯   , 1 ) x_{n}=y_{n}/d_{n}\\\\ x_{i}=y_{i}/d_{i}-\sum_{j=i+1}^{n}l_{ji}x_{j}\left(i=n-1,\cdots,1\right) xn=yn/dnxi=yi/dij=i+1nljixj(i=n1,,1)

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 电分实验是一种常用的电气实验,在实验室中使用电分仪来测量不同装置或电路的电压、电流和功率等电学量,借此来研究电路的性质与特性。电分实验广泛应用于电力系统、电子器件和通信系统等领域。 牛顿-拉夫逊法是一种用于求解非线性方程组的数值方法。该方法通过不断迭代,逐步逼近方程组的解。对于电力系统潮流计算来说,其物理模型可以用非线性方程组来描述。使用牛顿-拉夫逊法可以高效地求解该方程组,得到系统中各节点的电压和相应的功率。 Matlab是一种常用的科学计算软件,它提供了丰富的工具和函数用于数值计算、矩阵运算、数据可视化等。在电力系统领域,Matlab可以用于潮流计算的编程实现。通过编写相应的算法和使用Matlab提供的函数,可以利用牛顿-拉夫逊法求解电力系统潮流计算问题。 总而言之,电分实验是一种测量电学量的实验方法,牛顿-拉夫逊法是一种用于求解非线性方程组的数值方法,而Matlab是一种常用的科学计算软件,可以用于电力系统潮流计算的编程实现。这些方法和工具相互结合,能够有效地研究和解决电力系统中的问题。 ### 回答2: 电分实验是一种在电力系统中模拟各种故障情况和优化方案的实验方法。通过电分实验,可以得到电力系统中各节点的电压和电流分布情况,从而帮助电力系统工程师更好地了解系统的运行状态。 牛顿-拉夫逊法是一种用于求解非线性方程组的数值计算方法。在电力系统潮流计算中,常常需要求解电力系统中各节点的电压和功率的关系方程,这就需要用到牛顿-拉夫逊法。该方法通过迭代计算,逐步逼近方程组的根,从而得到方程组的可行解。 Matlab是一种用于科学计算和工程设计的软件平台。在电力系统中,可以利用Matlab编写程序,实现电力系统潮流计算以及其他电力系统相关的计算任务。Matlab具有强大的矩阵计算和数据可视化能力,能够帮助电力系统工程师更好地理解电力系统的工作原理和优化方案。 综上所述,电分实验是一种模拟电力系统故障和优化方案的实验方法;牛顿-拉夫逊法是一种求解非线性方程组的数值计算方法;Matlab是一种用于电力系统潮流计算的软件平台。这三者在电力系统工程中都起着重要的作用,能够提高电力系统的安全性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值