最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

插值及其误差

IT圈 admin 23浏览 0评论

2024年3月7日发(作者:康新觉)

插值及其误差

x sin x cos x tan x

992 8 796 3 25

996 1 796 3 06

998 4 796 3 98

999 7 796 3 59

用表中的数据和任一插值公式求:

(1)用tan x表格直接计算tan 5。

(2)用sin 5和cos 5来计算tan 5。并讨论这两个结果中误差变化的原因。

插值:求过已知有限个数据点的近似函数。

1 插值方法

下面介绍几种基本的、常用的插值:拉格朗日多项式插值、牛顿插值、分段线性插

值、Hermite 插值和三次样条插值。

拉格朗日多项式插值

1.1.1 插值多项式

用多项式作为研究插值的工具,称为代数插值。其基本问题是:已知函数fx在区间a,b上n1个不同点x0,x1,yifxii0,1,,xn处的函数值,n,求一个至多n次多项式

anxn(1)

nxa0a1x使其在给定点处与fx同值,即满足插值条件

nxifxiyi(2)

nxi称为插值多项式,xii0,1,,n称为插值节点,简称节点,a,b称为插值区间。从几何上看,n次多项式插值就是过n1个点xi,fxii0,1,作一条多项式曲线ynx近似曲线yfx。

n次多项式(1)有n1个待定系数,由插值条件(2)恰好给出n1个方程

,n,a0a1x0a0a1x1aax01nnanx0y0anx1ny1nanxnyn(3)

记此方程组的系数矩阵为A,则

1x0detA1x11xnnx0x1nnxn

是范德蒙特(Vandermonde)行列式。当x0,x1,,xn互不相同时,此行列式值不为零。因此方程组(3)有唯一解。这表明,只要n1个节点互不相同,满足插值要求(2)的插值多项式(1)是唯一的。

插值多项式与被插函数之间的差

Rnxfxnx

称为截断误差,又称为插值余项。当fx充分光滑时,

RnxfxLnxnfn1n1!n1x,a,b

其中n1xxxj。

j01.1.2 拉格朗日插值多项式

实际上比较方便的作法不是解方程(3)求待定系数,而是先构造一组基函数

lixxx0xxi1xxi1xxnxix0xixi1xixi1xixnnxxjxixj

j0ji,i0,1,,nlix是n次多项式,满足

0lixj1令

njiji

nxxj(4)

Lnxyilixyij0jixixji0i0上式称为n次 Lagrange 插值多项式,由方程(3)解的唯一性,n1个节点的n次Lagrange 插值多项式存在唯一。

1.1.3 用Matlab作Lagrange插值

Matlab中没有现成的Lagrange插值函数,必须编写一个M文件实现Lagrange插值。

nm个插值点以数组x输入, 设n个节点数据以数组x0,y0输入,输出数组y为

m个插值。编写一个名为的M文件:

function y=lagrange(x0,y0,x);

n=length(x0);m=length(x);

for i=1:m

z=x(i);

s=;

for k=1:n

p=;

for j=1:n

if j~=k

p=p*(z-x0(j))/(x0(k)-x0(j));

end

end

s=p*y0(k)+s;

end

y(i)=s;

end

sin =0.

cos =

tan =

分段线性插值

1.2.1 插值多项式的振荡

用Lagrange插值多项式Lnx近似fxaxb,虽然随着节点个数的增加,Lnx的次数n变大,多数情况下误差Rnx会变小。但是n增大时,Lnx的光滑性变坏,有时会出现很大的振荡。理论上,当n,在a,b内并不能保证Lnx处处收敛于fx。Runge给出了一个有名的例子:

fx1,21xx5,5

对于较大的x,随着n的增大,Lnx振荡越来越大,事实上可以证明,仅当x3.63时,才有limLnxfx,而在此区间外,Lnx是发散的。

n 高次插值多项式的这些缺陷,促使人们转而寻求简单的低次多项式插值。

1.2.2 分段线性插值

简单地说,将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数,记作Inx,它满足Inxiyi,且Inxiyi在每个小区间xi,xi1上是线性函数i0,1,

Inx可以表示为

,n。

Inxyilix

i0nxxi1xx,ii1xxi+1

lix,xxii+10,xxi-1,xii0时舍去xxi,xi1in时舍去

其它 Inx有良好的收敛性,即对于xa,b,

limInxfx

n 用Inx计算x点的插值时,只用到x左右的两个节点,计算量与节点个数n无关。但n越大,分段越多,插值误差越小。实际上用函数表作插值计算时,分段线性插值就

足够了,如数学、物理中用的特殊函数表,数理统计中用的概率分布表等。

1.2.3 用Matlab实现分段线性插值

用 Matlab 实现分段线性插值不需要编制函数程序,Matlab 中有现成的一维插值函数interp1。

y=interp1(x0,y0,x,'method')

method指定插值的方法,默认为线性插值。其值可为:

'nearest' 最近项插值

'linear' 线性插值

'spline' 逐段3次样条插值

'cubic' 保凹凸性3次插值。

所有的插值方法要求x0是单调的。

当 x0 为等距时可以用快速插值法,使用快速插值法的格式为'*nearest'、'*linear'、'*spline'、'*cubic'。

样条插值

许多工程技术中提出的计算问题对插值函数的光滑性有较高要求,如飞机的机翼外形,内燃机的进、排气门的凸轮曲线,都要求曲线具有较高的光滑程度,不仅要连续,而且要有连续的曲率,这就导致了样条插值的产生。

1.3.1 样条函数的概念

所谓样条(Spline)本来是工程设计中使用的一种绘图工具,它是富有弹性的细木条或细金属条。绘图员利用它把一些已知点连接成一条光滑曲线(称为样条曲线),并使连接点处有连续的曲率。

数学上将具有一定光滑性的分段多项式称为样条函数。具体地说,给定区间a,b的一个分划

:ax0x1xn1xnb

如果函数sx满足:

(1)在每个小区间xi,xi1i0,1,,n1上sx是k次多项式;

(2)sx在a,b上具有k1阶连续导数。

x0,x1,则称sx为关于分划的k次样条函数,其图形称为k次样条曲线。,xn称为样条节点,x1,x2,,xn1称为内节点,x0,xn称为边界点,这类样条函数的全体记做SP,k,称为k次样条函数空间。

显然,折线是一次样条曲线。

若sxSP,k,则sx是关于分划的k次多项式样条函数。k次多项式样条函数的一般形式为

skxi0kixii!j0n1ik!xxj

k其中ii0,1,k,k和jj1,2,,n1均为任意常数,而

kxxj,xxjxx,j1,2,,n1

j,xxj0在实际中最常用的是k =2和3的情况,即为二次样条函数和三次样条函数。

二次样条函数:对于a,b上的分划:ax0x1s2x01xxn1xnb,则

22!x2j0n1i2!xxjSP,2(5)

2其中xxj22xxj,xxj,j1,2,,xxj0,n1。

xn1xnb,则 三次样条函数:对于a,b上的分划:ax0x1s3x01x22!x233!x3j0n1ixx2!3jSP,3(6)

33xxj,xxj其中xxj,j1,2,,n1。

,xxj0利用样条函数进行插值,即取插值函数为样条函数,称为样条插值。例如分段线性插值是一次样条插值。下面我们介绍二次、三次样条插值。

1.3.2 二次样条函数插值

首先,我们注意到s2xSP,2中含有n2个特定常数,故应需要n2个插值条件,因此,二次样条插值问题可分为两类:

问题(1):

已知插值节点xi和相应的函数值yii0,1,数值y'0(或)y'n,求s2xSP,2使得

,n以及端点x0(或xn)处的导s2xiyii0,1,2,,n(7)

s'2x0y0或s'nxnyn 事实上,可以证明这两类插值问题都是唯一可解的。

对于问题(1),由条件(7)

12sxxxy020010202sxx1x2y011211212

211n12sxxxxx,n01j2jijiyjj2,3,2j22j0s'2x012x0y'0 引入记号X0,1,2,1,知向量。

11A110x0x1x212x0212x1212x2212xn2x00012x2x1212xnx1200

012xnxn1200,n1为未知向量,Cy0,y1,T,yn,y'0为已xn1 于是,问题转化为求方程组AXC的解X0,1,2,1,即可得到二次样条函数s2x的表达式。

1.3.3 三次样条函数插值

,n1的问题,T 由于s3xSP,3中含有n3个特定常数,故应需要n3个插值条件,已知插值节点xi和相应的函数值fxiyii0,1,,n,这里提供了n1个条

件,还需要2个边界条件。

常用的三次样条函数的边界条件有3种类型:

(1)s'3ay'0,s'3by'n。由这种边界条件建立的样条插值函数称为fx的完备三次样条插值函数。

特别地,y'0y'n0时,样条曲线在端点处呈水平状态。

如果f'x不知道,我们可以要求s'3x与f'x在端点处近似相等。这时以x0,x1,x2,x3为节点作一个三次Newton插值多项式Nax,以xn,xn1,xn2,xn3作一个三次 Newton插值多项式Nbx,要求

s'aN'aa,s'bN'bb

由这种边界条件建立的三次样条称为fx的Lagrange三次样条插值函数。

(2)s''3xy''0,s''3by''3。特别地y'ny''n0时,称为自然边界条件。

(3)(这里要求s3a0s3b0)s'3a0s'3b0,s''3a0s''3b0,此条件称为周期条件。

三次样条插值在Matlab中的实现

在Matlab中数据点称之为断点。如果三次样条插值没有边界条件,最常用的方法,就是采用非扭结(not-a-knot)条件。这个条件强迫第1个和第2个三次多项式的三阶导数相等。对最后一个和倒数第2个三次多项式也做同样地处理。

Matlab中三次样条插值也有现成的函数:

y=interp1(x0,y0,x,'spline');

y=spline(x0,y0,x);

pp=csape(x0,y0,conds),y=ppval(pp,x)。

其中x0,y0是已知数据点,x是插值点,y是插值点的函数值。

对于三次样条插值,提倡使用函数csape,csape的返回值是pp形式,要求插值点的函数值,必须调用函数ppval。

pp=csape(x0,y0):使用默认的边界条件,即Lagrange边界条件。

pp=csape(x0,y0,conds)中的conds指定插值的边界条件,其值可为:

'complete' 边界为一阶导数,即默认的边界条件

'not-a-knot' 非扭结条件

'periodic' 周期条件

'second' 边界为二阶导数,二阶导数的值[0, 0]。

'variational' 设置边界的二阶导数值为[0,0]。

对于一些特殊的边界条件,可以通过conds的一个1×2矩阵来表示,conds元素的取值为1,2。此时,使用命令

pp=csape(x0,y0_ext,conds)

其中y0_ext=[left, y0, right],这里left表示左边界的取值,right表示右边界的取值。

conds(i)=j的含义是给定端点i 的j 阶导数,即conds的第一个元素表示左边界的条件,第二个元素表示右边界的条件,conds=[2,1]表示左边界是二阶导数,右边界是一阶导数,对应的值由left和right给出。

2 源程序

clc

clear all

close all

x0=[ ];

% y0=[ ];

y00=[ ];

y0=[ ];

x=;

digits(16);

y1=vpa(lagrange(x0,y0,x)) %调用前面编写的Lagrange插值函数

y2=vpa(interp1(x0,y0,x)) %分段线性插值

y3=vpa(interp1(x0,y0,x,'spline')) %边界为一阶导数的三次样条插值

pp1=csape(x0,y0); y4=vpa(ppval(pp1,x)) %边界为一阶导数的三次样条插值

pp2=csape(x0,y0,'second'); y5=vpa(ppval(pp2,x)) %边界为二阶导数的三次样条插值

y1=vpa(lagrange(x0,y00,x))

y2=vpa(interp1(x0,y00,x))

y3=vpa(interp1(x0,y00,x,'spline'))

pp1=csape(x0,y00); y4=vpa(ppval(pp1,x))

pp2=csape(x0,y00,'second'); y5=vpa(ppval(pp2,x))

3 结果

Lagrange插值结果

sin 0.

cos

sin cos

tan

分段线性插值结果

sin

cos

sin cos

tan

边界为一阶导数的三次样条插值

sin 0.

cos

sin cos

tan

边界为一阶导数的三次样条插值(使用csape)

sin 0.

cos

sin cos

tan

边界为二阶导数的三次样条插值

sin 0.

cos

sin cos

tan

MATLAB计算的近似值(作为准确值)

sin

cos

tan

精心搜集整理,只为你的需要

2024年3月7日发(作者:康新觉)

插值及其误差

x sin x cos x tan x

992 8 796 3 25

996 1 796 3 06

998 4 796 3 98

999 7 796 3 59

用表中的数据和任一插值公式求:

(1)用tan x表格直接计算tan 5。

(2)用sin 5和cos 5来计算tan 5。并讨论这两个结果中误差变化的原因。

插值:求过已知有限个数据点的近似函数。

1 插值方法

下面介绍几种基本的、常用的插值:拉格朗日多项式插值、牛顿插值、分段线性插

值、Hermite 插值和三次样条插值。

拉格朗日多项式插值

1.1.1 插值多项式

用多项式作为研究插值的工具,称为代数插值。其基本问题是:已知函数fx在区间a,b上n1个不同点x0,x1,yifxii0,1,,xn处的函数值,n,求一个至多n次多项式

anxn(1)

nxa0a1x使其在给定点处与fx同值,即满足插值条件

nxifxiyi(2)

nxi称为插值多项式,xii0,1,,n称为插值节点,简称节点,a,b称为插值区间。从几何上看,n次多项式插值就是过n1个点xi,fxii0,1,作一条多项式曲线ynx近似曲线yfx。

n次多项式(1)有n1个待定系数,由插值条件(2)恰好给出n1个方程

,n,a0a1x0a0a1x1aax01nnanx0y0anx1ny1nanxnyn(3)

记此方程组的系数矩阵为A,则

1x0detA1x11xnnx0x1nnxn

是范德蒙特(Vandermonde)行列式。当x0,x1,,xn互不相同时,此行列式值不为零。因此方程组(3)有唯一解。这表明,只要n1个节点互不相同,满足插值要求(2)的插值多项式(1)是唯一的。

插值多项式与被插函数之间的差

Rnxfxnx

称为截断误差,又称为插值余项。当fx充分光滑时,

RnxfxLnxnfn1n1!n1x,a,b

其中n1xxxj。

j01.1.2 拉格朗日插值多项式

实际上比较方便的作法不是解方程(3)求待定系数,而是先构造一组基函数

lixxx0xxi1xxi1xxnxix0xixi1xixi1xixnnxxjxixj

j0ji,i0,1,,nlix是n次多项式,满足

0lixj1令

njiji

nxxj(4)

Lnxyilixyij0jixixji0i0上式称为n次 Lagrange 插值多项式,由方程(3)解的唯一性,n1个节点的n次Lagrange 插值多项式存在唯一。

1.1.3 用Matlab作Lagrange插值

Matlab中没有现成的Lagrange插值函数,必须编写一个M文件实现Lagrange插值。

nm个插值点以数组x输入, 设n个节点数据以数组x0,y0输入,输出数组y为

m个插值。编写一个名为的M文件:

function y=lagrange(x0,y0,x);

n=length(x0);m=length(x);

for i=1:m

z=x(i);

s=;

for k=1:n

p=;

for j=1:n

if j~=k

p=p*(z-x0(j))/(x0(k)-x0(j));

end

end

s=p*y0(k)+s;

end

y(i)=s;

end

sin =0.

cos =

tan =

分段线性插值

1.2.1 插值多项式的振荡

用Lagrange插值多项式Lnx近似fxaxb,虽然随着节点个数的增加,Lnx的次数n变大,多数情况下误差Rnx会变小。但是n增大时,Lnx的光滑性变坏,有时会出现很大的振荡。理论上,当n,在a,b内并不能保证Lnx处处收敛于fx。Runge给出了一个有名的例子:

fx1,21xx5,5

对于较大的x,随着n的增大,Lnx振荡越来越大,事实上可以证明,仅当x3.63时,才有limLnxfx,而在此区间外,Lnx是发散的。

n 高次插值多项式的这些缺陷,促使人们转而寻求简单的低次多项式插值。

1.2.2 分段线性插值

简单地说,将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数,记作Inx,它满足Inxiyi,且Inxiyi在每个小区间xi,xi1上是线性函数i0,1,

Inx可以表示为

,n。

Inxyilix

i0nxxi1xx,ii1xxi+1

lix,xxii+10,xxi-1,xii0时舍去xxi,xi1in时舍去

其它 Inx有良好的收敛性,即对于xa,b,

limInxfx

n 用Inx计算x点的插值时,只用到x左右的两个节点,计算量与节点个数n无关。但n越大,分段越多,插值误差越小。实际上用函数表作插值计算时,分段线性插值就

足够了,如数学、物理中用的特殊函数表,数理统计中用的概率分布表等。

1.2.3 用Matlab实现分段线性插值

用 Matlab 实现分段线性插值不需要编制函数程序,Matlab 中有现成的一维插值函数interp1。

y=interp1(x0,y0,x,'method')

method指定插值的方法,默认为线性插值。其值可为:

'nearest' 最近项插值

'linear' 线性插值

'spline' 逐段3次样条插值

'cubic' 保凹凸性3次插值。

所有的插值方法要求x0是单调的。

当 x0 为等距时可以用快速插值法,使用快速插值法的格式为'*nearest'、'*linear'、'*spline'、'*cubic'。

样条插值

许多工程技术中提出的计算问题对插值函数的光滑性有较高要求,如飞机的机翼外形,内燃机的进、排气门的凸轮曲线,都要求曲线具有较高的光滑程度,不仅要连续,而且要有连续的曲率,这就导致了样条插值的产生。

1.3.1 样条函数的概念

所谓样条(Spline)本来是工程设计中使用的一种绘图工具,它是富有弹性的细木条或细金属条。绘图员利用它把一些已知点连接成一条光滑曲线(称为样条曲线),并使连接点处有连续的曲率。

数学上将具有一定光滑性的分段多项式称为样条函数。具体地说,给定区间a,b的一个分划

:ax0x1xn1xnb

如果函数sx满足:

(1)在每个小区间xi,xi1i0,1,,n1上sx是k次多项式;

(2)sx在a,b上具有k1阶连续导数。

x0,x1,则称sx为关于分划的k次样条函数,其图形称为k次样条曲线。,xn称为样条节点,x1,x2,,xn1称为内节点,x0,xn称为边界点,这类样条函数的全体记做SP,k,称为k次样条函数空间。

显然,折线是一次样条曲线。

若sxSP,k,则sx是关于分划的k次多项式样条函数。k次多项式样条函数的一般形式为

skxi0kixii!j0n1ik!xxj

k其中ii0,1,k,k和jj1,2,,n1均为任意常数,而

kxxj,xxjxx,j1,2,,n1

j,xxj0在实际中最常用的是k =2和3的情况,即为二次样条函数和三次样条函数。

二次样条函数:对于a,b上的分划:ax0x1s2x01xxn1xnb,则

22!x2j0n1i2!xxjSP,2(5)

2其中xxj22xxj,xxj,j1,2,,xxj0,n1。

xn1xnb,则 三次样条函数:对于a,b上的分划:ax0x1s3x01x22!x233!x3j0n1ixx2!3jSP,3(6)

33xxj,xxj其中xxj,j1,2,,n1。

,xxj0利用样条函数进行插值,即取插值函数为样条函数,称为样条插值。例如分段线性插值是一次样条插值。下面我们介绍二次、三次样条插值。

1.3.2 二次样条函数插值

首先,我们注意到s2xSP,2中含有n2个特定常数,故应需要n2个插值条件,因此,二次样条插值问题可分为两类:

问题(1):

已知插值节点xi和相应的函数值yii0,1,数值y'0(或)y'n,求s2xSP,2使得

,n以及端点x0(或xn)处的导s2xiyii0,1,2,,n(7)

s'2x0y0或s'nxnyn 事实上,可以证明这两类插值问题都是唯一可解的。

对于问题(1),由条件(7)

12sxxxy020010202sxx1x2y011211212

211n12sxxxxx,n01j2jijiyjj2,3,2j22j0s'2x012x0y'0 引入记号X0,1,2,1,知向量。

11A110x0x1x212x0212x1212x2212xn2x00012x2x1212xnx1200

012xnxn1200,n1为未知向量,Cy0,y1,T,yn,y'0为已xn1 于是,问题转化为求方程组AXC的解X0,1,2,1,即可得到二次样条函数s2x的表达式。

1.3.3 三次样条函数插值

,n1的问题,T 由于s3xSP,3中含有n3个特定常数,故应需要n3个插值条件,已知插值节点xi和相应的函数值fxiyii0,1,,n,这里提供了n1个条

件,还需要2个边界条件。

常用的三次样条函数的边界条件有3种类型:

(1)s'3ay'0,s'3by'n。由这种边界条件建立的样条插值函数称为fx的完备三次样条插值函数。

特别地,y'0y'n0时,样条曲线在端点处呈水平状态。

如果f'x不知道,我们可以要求s'3x与f'x在端点处近似相等。这时以x0,x1,x2,x3为节点作一个三次Newton插值多项式Nax,以xn,xn1,xn2,xn3作一个三次 Newton插值多项式Nbx,要求

s'aN'aa,s'bN'bb

由这种边界条件建立的三次样条称为fx的Lagrange三次样条插值函数。

(2)s''3xy''0,s''3by''3。特别地y'ny''n0时,称为自然边界条件。

(3)(这里要求s3a0s3b0)s'3a0s'3b0,s''3a0s''3b0,此条件称为周期条件。

三次样条插值在Matlab中的实现

在Matlab中数据点称之为断点。如果三次样条插值没有边界条件,最常用的方法,就是采用非扭结(not-a-knot)条件。这个条件强迫第1个和第2个三次多项式的三阶导数相等。对最后一个和倒数第2个三次多项式也做同样地处理。

Matlab中三次样条插值也有现成的函数:

y=interp1(x0,y0,x,'spline');

y=spline(x0,y0,x);

pp=csape(x0,y0,conds),y=ppval(pp,x)。

其中x0,y0是已知数据点,x是插值点,y是插值点的函数值。

对于三次样条插值,提倡使用函数csape,csape的返回值是pp形式,要求插值点的函数值,必须调用函数ppval。

pp=csape(x0,y0):使用默认的边界条件,即Lagrange边界条件。

pp=csape(x0,y0,conds)中的conds指定插值的边界条件,其值可为:

'complete' 边界为一阶导数,即默认的边界条件

'not-a-knot' 非扭结条件

'periodic' 周期条件

'second' 边界为二阶导数,二阶导数的值[0, 0]。

'variational' 设置边界的二阶导数值为[0,0]。

对于一些特殊的边界条件,可以通过conds的一个1×2矩阵来表示,conds元素的取值为1,2。此时,使用命令

pp=csape(x0,y0_ext,conds)

其中y0_ext=[left, y0, right],这里left表示左边界的取值,right表示右边界的取值。

conds(i)=j的含义是给定端点i 的j 阶导数,即conds的第一个元素表示左边界的条件,第二个元素表示右边界的条件,conds=[2,1]表示左边界是二阶导数,右边界是一阶导数,对应的值由left和right给出。

2 源程序

clc

clear all

close all

x0=[ ];

% y0=[ ];

y00=[ ];

y0=[ ];

x=;

digits(16);

y1=vpa(lagrange(x0,y0,x)) %调用前面编写的Lagrange插值函数

y2=vpa(interp1(x0,y0,x)) %分段线性插值

y3=vpa(interp1(x0,y0,x,'spline')) %边界为一阶导数的三次样条插值

pp1=csape(x0,y0); y4=vpa(ppval(pp1,x)) %边界为一阶导数的三次样条插值

pp2=csape(x0,y0,'second'); y5=vpa(ppval(pp2,x)) %边界为二阶导数的三次样条插值

y1=vpa(lagrange(x0,y00,x))

y2=vpa(interp1(x0,y00,x))

y3=vpa(interp1(x0,y00,x,'spline'))

pp1=csape(x0,y00); y4=vpa(ppval(pp1,x))

pp2=csape(x0,y00,'second'); y5=vpa(ppval(pp2,x))

3 结果

Lagrange插值结果

sin 0.

cos

sin cos

tan

分段线性插值结果

sin

cos

sin cos

tan

边界为一阶导数的三次样条插值

sin 0.

cos

sin cos

tan

边界为一阶导数的三次样条插值(使用csape)

sin 0.

cos

sin cos

tan

边界为二阶导数的三次样条插值

sin 0.

cos

sin cos

tan

MATLAB计算的近似值(作为准确值)

sin

cos

tan

精心搜集整理,只为你的需要

发布评论

评论列表 (0)

  1. 暂无评论