数值计算——牛顿插值法

相关知识:拉格朗日插值

一般牛顿插值

①考虑两个点的情况, f 1 ( x ) = f ( x 0 ) + k 1 ( x − x 0 ) f_1(x)=f(x_0)+k_1(x-x_0) f1(x)=f(x0)+k1(xx0),带入 ( x 1 , f ( x 1 ) ) (x_1,f(x_1)) (x1,f(x1)),得
k 1 = f ( x 1 ) − f ( x 0 ) x 1 − x 0 ∴ f 1 ( x ) = f ( x 0 ) + f ( x 1 ) − f ( x 0 ) x 1 − x 0 ( x − x 0 ) k_1=\frac{f(x_1)-f(x_0)}{x_1-x_0}\\ \therefore f_1(x)=f(x_0)+\frac{f(x_1)-f(x_0)}{x_1-x_0}(x-x_0) k1=x1x0f(x1)f(x0)f1(x)=f(x0)+x1x0f(x1)f(x0)(xx0)
②考虑三个点的情况, f 2 ( x ) = f 1 ( x ) + k 2 ( x − x 0 ) ( x − x 1 ) f_2(x)=f_1(x)+k_2(x-x_0)(x-x_1) f2(x)=f1(x)+k2(xx0)(xx1),带入 ( x 2 , f ( x 2 ) ) (x_2,f(x_2)) (x2,f(x2)),得
k 2 = f ( x 2 ) − f 1 ( x 2 ) ( x 2 − x 0 ) ( x 2 − x 1 ) = [ f ( x 2 ) − f ( x 0 ) ] − [ f ( x 1 ) − f ( x 0 ) x 1 − x 0 ( x 2 − x 0 ) ] ( x 2 − x 0 ) ( x 2 − x 1 ) = [ f ( x 2 ) − f ( x 0 ) ] ( x 1 − x 0 ) − [ f ( x 1 ) − f ( x 0 ) ] ( x 2 − x 0 ) ( x 2 − x 0 ) ( x 2 − x 1 ) ( x 1 − x 0 ) = [ f ( x 2 ) − f ( x 1 ) ] ( x 1 − x 0 ) − [ f ( x 1 ) − f ( x 0 ) ] ( x 2 − x 1 ) ( x 2 − x 0 ) ( x 2 − x 1 ) ( x 1 − x 0 ) = f ( x 2 ) − f ( x 1 ) x 2 − x 1 − f ( x 1 ) − f ( x 0 ) x 1 − x 0 x 2 − x 0 ∴ f 2 ( x ) = f ( x 0 ) + f ( x 1 ) − f ( x 0 ) x 1 − x 0 ( x − x 0 ) + f ( x 2 ) − f ( x 1 ) x 2 − x 1 − f ( x 1 ) − f ( x 0 ) x 1 − x 0 x 2 − x 0 ( x − x 0 ) ( x − x 1 ) \begin{aligned}k_2&=\frac{f(x_2)-f_1(x_2)}{(x_2-x_0)(x_2-x_1)}\\ &=\frac{[f(x_2)-f(x_0)]-[\frac{f(x_1)-f(x_0)}{x_1-x_0}(x_2-x_0)]}{(x_2-x_0)(x_2-x_1)}\\ &=\frac{[f(x_2)-f(x_0)](x_1-x_0)-[f(x_1)-f(x_0)](x_2-x_0)}{(x_2-x_0)(x_2-x_1)(x_1-x_0)}\\ &=\frac{[f(x_2)-f(x_1)](x_1-x_0)-[f(x_1)-f(x_0)](x_2-x_1)}{(x_2-x_0)(x_2-x_1)(x_1-x_0)}\\ &=\frac{\frac{f(x_2)-f(x_1)}{x_2-x_1}-\frac{f(x_1)-f(x_0)}{x_1-x_0}}{x_2-x_0} \end{aligned}\\ \therefore f_2(x)=f(x_0)+\frac{f(x_1)-f(x_0)}{x_1-x_0}(x-x_0)+\frac{\frac{f(x_2)-f(x_1)}{x_2-x_1}-\frac{f(x_1)-f(x_0)}{x_1-x_0}}{x_2-x_0}(x-x_0)(x-x_1) k2=(x2x0)(x2x1)f(x2)f1(x2)=(x2x0)(x2x1)[f(x2)f(x0)][x1x0f(x1)f(x0)(x2x0)]=(x2x0)(x2x1)(x1x0)[f(x2)f(x0)](x1x0)[f(x1)f(x0)](x2x0)=(x2x0)(x2x1)(x1x0)[f(x2)f(x1)](x1x0)[f(x1)f(x0)](x2x1)=x2x0x2x1f(x2)f(x1)x1x0f(x1)f(x0)f2(x)=f(x0)+x1x0f(x1)f(x0)(xx0)+x2x0x2x1f(x2)f(x1)x1x0f(x1)f(x0)(xx0)(xx1)

我们定义
f [ x 0 , x 1 ] = f ( x 1 ) − f ( x 0 ) x 1 − x 0 f [ x 0 , x 1 , x 2 ] = f [ x 1 , x 2 ] − f [ x 0 , x 1 ] x 2 − x 0 . . . f [ x 0 , x 1 , . . . , x k ] = f [ x 1 , x 2 , . . . , x k ] − f [ x 0 , x 1 , . . . , x k − 1 ] x k − x 0 \begin{aligned}&f[x_0,x_1]=\frac{f(x_1)-f(x_0)}{x_1-x_0}\\ &f[x_0,x_1,x_2]=\frac{f[x_1,x_2]-f[x_0,x_1]}{x_2-x_0}\\ &...\\ &f[x_0,x_1,...,x_k]=\frac{f[x_1,x_2,...,x_k]-f[x_0,x_1,...,x_{k-1}]}{x_k-x_0} \end{aligned} f[x0,x1]=x1x0f(x1)f(x0)f[x0,x1,x2]=x2x0f[x1,x2]f[x0,x1]...f[x0,x1,...,xk]=xkx0f[x1,x2,...,xk]f[x0,x1,...,xk1]

其中 f [ x 0 , x 1 ] f[x_0,x_1] f[x0,x1] f ( x ) f(x) f(x) ( x 0 , f ( x 0 ) ) , ( x 1 , f ( x 1 ) ) (x_0,f(x_0)),(x_1,f(x_1)) (x0,f(x0)),(x1,f(x1))的一阶差商,
f [ x 0 , x 1 , x 2 ] f[x_0,x_1,x_2] f[x0,x1,x2] f ( x ) f(x) f(x) ( x 0 , f ( x 0 ) ) , ( x 1 , f ( x 1 ) ) , ( x 2 , f ( x 2 ) ) (x_0,f(x_0)),(x_1,f(x_1)),(x_2,f(x_2)) (x0,f(x0)),(x1,f(x1)),(x2,f(x2))的二阶差商,

f [ x 0 , x 1 , . . . , x k ] f[x_0,x_1,...,x_k] f[x0,x1,...,xk] f ( x ) f(x) f(x) ( x 0 , f ( x 0 ) ) , ( x 1 , f ( x 1 ) ) , . . . , ( x k , f ( x k ) ) (x_0,f(x_0)),(x_1,f(x_1)),...,(x_k,f(x_k)) (x0,f(x0)),(x1,f(x1)),...,(xk,f(xk)) k k k阶差商。

归纳一下,得
∴ f [ x 0 , x 1 , . . . , x k ] = ∑ i = 0 k f ( x i ) ∏ j = 0 , j ≠ i k ( x i − x j ) ∴ f ( x ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) + f [ x 0 , x 1 , x 2 ] ( x − x 0 ) ( x − x 1 ) + . . . + f [ x 0 , x 1 , . . . , x k ] ( x − x 0 ) ( x − x 1 ) . . . ( x − x k − 1 ) \therefore f[x_0,x_1,...,x_k]=\sum_{i=0}^{k}\frac{f(x_i)}{\prod_{j=0,j\not =i}^{k}(x_i-x_j)}\\ \therefore f(x)=f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+...+f[x_0,x_1,...,x_k](x-x_0)(x-x_1)...(x-x_{k-1}) f[x0,x1,...,xk]=i=0kj=0,j=ik(xixj)f(xi)f(x)=f(x0)+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)+...+f[x0,x1,...,xk](xx0)(xx1)...(xxk1)
code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
#define mod 998244353
using namespace std;
	int n;
	LL k;
	struct node{LL x,y;} a[2010];
	LL times[2010][2010],delta[2010];
LL dg(LL x,LL k)
{
	if(!k) return 1;
	LL op=dg(x,k>>1);
	if(k&1) return op*op%mod*x%mod; else return op*op%mod;
}
LL inv(LL x)
{
	return dg(x,mod-2);
}
void init()
{
	for(int i=0;i<n;i++)
	{
		if(i) times[i][0]=(a[i].x-a[0].x+mod)%mod; else times[i][0]=1;
		for(int j=1;j<n;j++)
			if(i!=j) times[i][j]=times[i][j-1]*((a[i].x-a[j].x+mod)%mod)%mod; else times[i][j]=times[i][j-1];
	}
	for(int i=1;i<n;i++)
		for(int j=0;j<=i;j++)
			delta[i]=(delta[i]+a[j].y*inv(times[j][i])%mod)%mod;
}
LL newton(LL k)
{
	LL ans=a[0].y,tmp=1;
	for(int i=1;i<n;i++)
	{
		tmp=(tmp*((k-a[i-1].x+mod)%mod))%mod;
		ans=(ans+delta[i]*tmp%mod)%mod;
	}
	return ans;
}
int main()
{
	scanf("%d %lld",&n,&k);
	for(int i=0;i<n;i++)
		scanf("%lld %lld",&a[i].x,&a[i].y);
	init(); 
	printf("%lld",newton(k));
}

等间距牛顿插值

规定取点的间距为固定值 Δ x \Delta x Δx,即满足 x 1 = x 0 + Δ x , x 2 = x 1 + Δ x , . . . , x k = x k − 1 + Δ x x_1=x_0+\Delta x,x_2=x_1+\Delta x,...,x_k=x_{k-1}+\Delta x x1=x0+Δx,x2=x1+Δx,...,xk=xk1+Δx
我们定义
Δ f ( x 0 ) = f ( x 0 + Δ x ) − f ( x 0 ) Δ 2 f ( x 0 ) = Δ f ( x 0 + Δ x ) − Δ f ( x 0 ) . . . Δ k f ( x 0 ) = Δ k − 1 f ( x 0 + Δ x ) − Δ k − 1 f ( x 0 ) \begin{aligned}&\Delta f(x_0)=f(x_0+\Delta x)-f(x_0)\\ &\Delta^2 f(x_0)=\Delta f(x_0+\Delta x)-\Delta f(x_0)\\ &...\\ &\Delta^kf(x_0)=\Delta^{k-1}f(x_0+\Delta x)-\Delta ^{k-1}f(x_0) \end{aligned} Δf(x0)=f(x0+Δx)f(x0)Δ2f(x0)=Δf(x0+Δx)Δf(x0)...Δkf(x0)=Δk1f(x0+Δx)Δk1f(x0)

其中 Δ f ( x 0 ) \Delta f(x_0) Δf(x0) f ( x ) f(x) f(x) ( x 0 , f ( x 0 ) ) (x_0,f(x_0)) (x0,f(x0))的一阶向前差分,
Δ 2 f ( x 0 ) \Delta^2 f(x_0) Δ2f(x0) f ( x ) f(x) f(x) ( x 0 , f ( x 0 ) ) (x_0,f(x_0)) (x0,f(x0))的二阶向前差分,

Δ k f ( x 0 ) \Delta^k f(x_0) Δkf(x0) f ( x ) f(x) f(x) ( x 0 , f ( x 0 ) ) (x_0,f(x_0)) (x0,f(x0)) k k k阶向前差分。
∴ f 1 ( x ) = f ( x 0 ) + Δ f ( x 0 ) Δ x ( x − x 0 ) f 2 ( x ) = f ( x 0 ) + Δ f ( x 0 ) Δ x ( x − x 0 ) + Δ 2 f ( x 0 ) 2 Δ 2 x ( x − x 0 ) ( x − x 1 ) . . . f k ( x ) = f ( x 0 ) + Δ f ( x 0 ) Δ x ( x − x 0 ) + Δ 2 f ( x 0 ) 2 Δ 2 x ( x − x 0 ) ( x − x 1 ) + . . . + Δ k f ( x 0 ) k ! Δ k x ( x − x 0 ) ( x − x 1 ) . . . ( x − x k − 1 ) \begin{aligned} \therefore &f_1(x)=f(x_0)+\frac{\Delta f(x_0)}{\Delta x}(x-x_0)\\ &f_2(x)=f(x_0)+\frac{\Delta f(x_0)}{\Delta x}(x-x_0)+\frac{\Delta^2f(x_0)}{2\Delta^2 x}(x-x_0)(x-x_1)\\ &...\\ &f_k(x)=f(x_0)+\frac{\Delta f(x_0)}{\Delta x}(x-x_0)+\frac{\Delta^2f(x_0)}{2\Delta^2 x}(x-x_0)(x-x_1)+...+\frac{\Delta^kf(x_0)}{k!\Delta^k x}(x-x_0)(x-x_1)...(x-x_{k-1}) \end{aligned} f1(x)=f(x0)+ΔxΔf(x0)(xx0)f2(x)=f(x0)+ΔxΔf(x0)(xx0)+2Δ2xΔ2f(x0)(xx0)(xx1)...fk(x)=f(x0)+ΔxΔf(x0)(xx0)+2Δ2xΔ2f(x0)(xx0)(xx1)+...+k!ΔkxΔkf(x0)(xx0)(xx1)...(xxk1)

证明同差商。
Δ x → 0 \Delta x\rightarrow0 Δx0,因此 Δ x 0 = Δ x 1 = . . . = Δ x k \Delta x_0=\Delta x_1=...=\Delta x_k Δx0=Δx1=...=Δxk,则有
f 1 ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) f 2 ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + f ′ ′ ( x 0 ) ( x − x 0 ) 2 . . . f k ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + . . . + f ( k ) ( x 0 ) k ! ( x − x 0 ) k \begin{aligned} &f_1(x)=f(x_0)+f'(x_0)(x-x_0)\\ &f_2(x)=f(x_0)+f'(x_0)(x-x_0)+f''(x_0)(x-x_0)^2\\ &...\\ &f_k(x)=f(x_0)+f'(x_0)(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+...+\frac{f^{(k)}(x_0)}{k!}(x-x_0)^k \end{aligned} f1(x)=f(x0)+f(x0)(xx0)f2(x)=f(x0)+f(x0)(xx0)+f′′(x0)(xx0)2...fk(x)=f(x0)+f(x0)(xx0)+2!f′′(x0)(xx0)2+...+k!f(k)(x0)(xx0)k
正是泰勒展开从 1 1 1 k k k阶的展开式。
而在此意义下,牛顿差值的误差 R k ( x ) = f ( k + 1 ) ( ξ ) ( k + 1 ) ! ( x − x 0 ) k + 1 ( x 0 < ξ < x ) R_k(x)=\frac{f^{(k+1)}(\xi)}{(k+1)!}(x-x_0)^{k+1}(x_0<\xi<x) Rk(x)=(k+1)!f(k+1)(ξ)(xx0)k+1(x0<ξ<x)也正是泰勒展开的拉格朗日余项。
也就是说,严格意义上, f ( x ) = f k ( x ) + R k ( x ) f(x)=f_k(x)+R_k(x) f(x)=fk(x)+Rk(x),但是在一般计算时不会考虑 R k ( x ) R_k(x) Rk(x),因此我们一般认为 f ( x ) = f k ( x ) f(x)=f_k(x) f(x)=fk(x)

牛顿向前&向后插值

无论是向前插值还是向后插值,都是等间距的插值。

向前插值

其实上面讲的等间距插值就是用的向前插值。
h = Δ x , x = x 0 + h n h=\Delta x,x=x_0+hn h=Δx,x=x0+hn,有 x − x 0 = h n , x − x 1 = h ( n − 1 ) , . . . , x − x k − 1 = h ( n − k + 1 ) x-x_0=hn,x-x_1=h(n-1),...,x-x_{k-1}=h(n-k+1) xx0=hn,xx1=h(n1),...,xxk1=h(nk+1),上面的式子变为
f 1 ( x ) = f ( x 0 ) + Δ f ( x 0 ) h h n f 2 ( x ) = f ( x 0 ) + Δ f ( x 0 ) h h n + Δ 2 f ( x 0 ) 2 h 2 h n ⋅ h ( n − 1 ) . . . f k ( x ) = f ( x 0 ) + Δ f ( x 0 ) h h n + Δ 2 f ( x 0 ) 2 h 2 h n ⋅ h ( n − 1 ) + . . . + Δ k f ( x 0 ) k ! h k h n ⋅ h ( n − 1 ) ⋅ . . . ⋅ h ( n − k + 1 ) \begin{aligned} &f_1(x)=f(x_0)+\frac{\Delta f(x_0)}{h}hn\\ &f_2(x)=f(x_0)+\frac{\Delta f(x_0)}{h}hn+\frac{\Delta^2f(x_0)}{2h^2}hn\cdot h(n-1)\\ &...\\ &f_k(x)=f(x_0)+\frac{\Delta f(x_0)}{h}hn+\frac{\Delta^2f(x_0)}{2h^2}hn\cdot h(n-1)+...+\frac{\Delta^kf(x_0)}{k!h^k}hn\cdot h(n-1)\cdot...\cdot h(n-k+1) \end{aligned} f1(x)=f(x0)+hΔf(x0)hnf2(x)=f(x0)+hΔf(x0)hn+2h2Δ2f(x0)hnh(n1)...fk(x)=f(x0)+hΔf(x0)hn+2h2Δ2f(x0)hnh(n1)+...+k!hkΔkf(x0)hnh(n1)...h(nk+1)

化简一下,得
f 1 ( x ) = f ( x 0 ) + n 1 Δ f ( x 0 ) f 2 ( x ) = f ( x 0 ) + n 1 Δ f ( x 0 ) + n ( n − 1 ) 2 Δ 2 f ( x 0 ) . . . f k ( x ) = f ( x 0 ) + n 1 Δ f ( x 0 ) + n ( n − 1 ) 2 Δ 2 f ( x 0 ) + . . . + n ( n − 1 ) . . . ( n − k + 1 ) k ! Δ k f ( x 0 ) \begin{aligned} &f_1(x)=f(x_0)+\frac{n}{1}\Delta f(x_0)\\ &f_2(x)=f(x_0)+\frac{n}{1}\Delta f(x_0)+\frac{n(n-1)}{2}\Delta^2f(x_0)\\ &...\\ &f_k(x)=f(x_0)+\frac{n}{1}\Delta f(x_0)+\frac{n(n-1)}{2}\Delta^2f(x_0)+...+\frac{n(n-1)...(n-k+1)}{k!}\Delta^kf(x_0)\end{aligned} f1(x)=f(x0)+1nΔf(x0)f2(x)=f(x0)+1nΔf(x0)+2n(n1)Δ2f(x0)...fk(x)=f(x0)+1nΔf(x0)+2n(n1)Δ2f(x0)+...+k!n(n1)...(nk+1)Δkf(x0)

这就是前插公式。
其余项
R k ( x ) = n ( n − 1 ) . . . ( n − k ) ( k + 1 ) ! h k + 1 f k + 1 ( ξ ) , ξ ∈ ( x 0 , x k ) R_k(x)=\frac{n(n-1)...(n-k)}{(k+1)!}h^{k+1}f^{k+1}(\xi),\xi∈(x_0,x_k) Rk(x)=(k+1)!n(n1)...(nk)hk+1fk+1(ξ),ξ(x0,xk)

向后插值

同理,我们定义 ∇ f ( x 0 ) \nabla f(x_0) f(x0) f ( x ) f(x) f(x) ( x 0 , f ( x 0 ) ) (x_0,f(x_0)) (x0,f(x0))的一阶向后差分,
∇ 2 f ( x 0 ) \nabla^2 f(x_0) 2f(x0) f ( x ) f(x) f(x) ( x 0 , f ( x 0 ) ) (x_0,f(x_0)) (x0,f(x0))的二阶向后差分,

∇ k f ( x 0 ) \nabla^k f(x_0) kf(x0) f ( x ) f(x) f(x) ( x 0 , f ( x 0 ) ) (x_0,f(x_0)) (x0,f(x0)) k k k阶向后差分。
∇ f ( x 0 ) = f ( x ) − f ( x 0 − Δ x ) ∇ 2 f ( x 0 ) = ∇ f ( x 0 ) − ∇ f ( x 0 − Δ x ) . . . ∇ k f ( x 0 ) = ∇ k − 1 f ( x 0 ) − ∇ k − 1 f ( x 0 − Δ x ) \begin{aligned}&\nabla f(x_0)=f(x)-f(x_0-\Delta x)\\ &\nabla^2 f(x_0)=\nabla f(x_0)-\nabla f(x_0-\Delta x)\\ &...\\ &\nabla^kf(x_0)=\nabla^{k-1}f(x_0)-\nabla^{k-1}f(x_0-\Delta x) \end{aligned} f(x0)=f(x)f(x0Δx)2f(x0)=f(x0)f(x0Δx)...kf(x0)=k1f(x0)k1f(x0Δx)

同理,令 h = Δ x , x = x 0 + h n h=\Delta x,x=x_0+hn h=Δx,x=x0+hn,有 x − x 0 = h n , x − x 1 = h ( n − 1 ) , . . . , x − x k − 1 = h ( n − k + 1 ) x-x_0=hn,x-x_1=h(n-1),...,x-x_{k-1}=h(n-k+1) xx0=hn,xx1=h(n1),...,xxk1=h(nk+1)
后插公式如下:
f 1 ( x ) = f ( x 0 ) + n 1 Δ f ( x 0 ) f 2 ( x ) = f ( x 0 ) + n 1 Δ f ( x 0 ) + n ( n + 1 ) 2 Δ 2 f ( x 0 ) . . . f k ( x ) = f ( x 0 ) + n 1 Δ f ( x 0 ) + n ( n + 1 ) 2 Δ 2 f ( x 0 ) + . . . + n ( n + 1 ) . . . ( n + k − 1 ) k ! Δ k f ( x 0 ) \begin{aligned} &f_1(x)=f(x_0)+\frac{n}{1}\Delta f(x_0)\\ &f_2(x)=f(x_0)+\frac{n}{1}\Delta f(x_0)+\frac{n(n+1)}{2}\Delta^2f(x_0)\\ &...\\ &f_k(x)=f(x_0)+\frac{n}{1}\Delta f(x_0)+\frac{n(n+1)}{2}\Delta^2f(x_0)+...+\frac{n(n+1)...(n+k-1)}{k!}\Delta^kf(x_0)\end{aligned} f1(x)=f(x0)+1nΔf(x0)f2(x)=f(x0)+1nΔf(x0)+2n(n+1)Δ2f(x0)...fk(x)=f(x0)+1nΔf(x0)+2n(n+1)Δ2f(x0)+...+k!n(n+1)...(n+k1)Δkf(x0)

其余项
R k ( x ) = n ( n + 1 ) . . . ( n + k ) ( k + 1 ) ! h k + 1 f k + 1 ( ξ ) , ξ ∈ ( x 0 , x k ) R_k(x)=\frac{n(n+1)...(n+k)}{(k+1)!}h^{k+1}f^{k+1}(\xi),\xi∈(x_0,x_k) Rk(x)=(k+1)!n(n+1)...(n+k)hk+1fk+1(ξ),ξ(x0,xk)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值