功能: 初始化分段多项式对象

格式:
[poly, er] = PiecePolyInitByOpt(x, y, b, n, m)
[poly, er] = PiecePolyInitByOpt(x, y, b, n)
[poly, er] = PiecePolyInitByOpt(x, y, b)

x   : 矩阵变量,存储训练数据的自变量
y   : 和x同维度矩阵变量,存储训练数据因变量
b   : 矩阵变量,存储分段值
n   : 数值,每个分段多项式最高次数,此参数大于等于1, 默认为2
m   : 数值,要求几阶连续,此参数默认为1

poly: 执行成功返回分段多项式对象
er  : 返回当前优化误差平方和

说明:
1、本函数主要建立如下分段模型
$$
y=\begin{cases}
\sum_{j=0}^n A_{0,j}x^j&,x < b_0
\\
\sum_{j=0}^n A_{1,j}x^j&,b_0\leq x < b_1
\\
\sum_{j=0}^n A_{2,j}x^j&,b_1\leq x < b_2
\\
...
\end{cases}
$$
2、参数m表示要求1里的数学模型x在分界点处具有m阶导数连续,如果m小于0,则不具备连续性。
3、b参数传入程序后,会自动排序,b当中的最大值会被替换为无穷大。
4、函数调用过程,会根据训练数据x,y以及分段节点b自动计算出最佳系数A,并且返回当前系数下的误差平方和。

例子:
x = 0:0.1:10;
n = size(x);
r = rand(0.5,1,n(2));
y = sin(x)-r + 0.25;
b = [2,5,7];
p = PiecePolyInitByOpt(x, y, b);//得到对象
z = {PiecePolyCalcY<矩阵运算/PiecePolyCalcY>}(p,x);//使用模型预测
{Plot<矩阵运算/Plot>}(x,y,x,z);//绘图查看模型结果