功能:求解第二类Volterra积分函数

格式:
[z,er,n]=IntegralEquVolterra2(x,K,F,a,n0,n1)
[z,er,n]=IntegralEquVolterra2(x,K,F,a,n0)
[z,er,n]=IntegralEquVolterra2(x,K,F,a)
[z,er,n]=IntegralEquVolterra2(x,K,F)

x:求解指定点的数值,此变量可以是矩阵变量可以是数据
K:符号变量出错积分方程的内核函数,里面的变量必须为x,y,其中y表示积分变量
F:符号变量存储的右边只含x变量名称的函数
a:积分区间的下限,默认为0
n0:采用高斯积分的初始复化数,默认为2
n1:采用高斯积分的最大复化数,默认为80

z:返回的与x值对应的计算结果
er:返回的相对误差
n:返回计算到此值时的高斯复化数

注意:本函数的参数x里的所有的值必须都大于等于a或者都小于等于a.如果想求解下限值a正负两边的值,则执行两次本函数即可.

原理:

1、本函数求解如下的问题

  z(x) = Int[K(x,y)*z(y) , y , a , x] + F(x)

  其中Int[K(x,y)*z(y) , y , a , b]表示函数K(x,y)*z(y)的变量y在[a，x]进行定积分.

2、本函数采用Day方法和3点辛普森公式进行启动求解,然后过程采用3点辛普森公式、4点辛普森公式、梯形公式相结合的方式进行后续求解,求解过程中采用前后两次计算结果作为相对误差判断计算的终止.

参考:现代应用数学手册-计算与数值分析卷[M].清华大学出版社,北京,2007:784-788 

例子:

kf = "x*y/5";
ff = "x";
x=[0,0.1,0.2,0.3,0.6,0.9,1.2,1.5,1.8,1.9,2.0];

[y,er,n]=IntegralEquVolterra2(x,kf,ff)//回车得到如下结果,真实结果是 y=x*exp(x^3/15)
y =
[ 0.00000000000000    0.10000666688889    0.20010669512925    0.30054048629174    0.60870250767669    0.94482031194692    1.34651740164395    1.87848407430932    2.65537706395036    3.00152518019025    3.40920973236942 ]
er =
[ 1.0159937300E-16 ]
n =
[ 1600.00000000000 ]