## 3 B-Spline Neural Network
### B-Spline Curve Definitions  
**Definition 2**[39]. : _Given \(n+1\) control points \(P_{i}\), a knot vector \(T=\{t_{0}\leq t_{1}\leq\cdots\leq t_{m}\}\) and B-spline basis functions \(B_{i,k}(t)\), a B-spline curve is given by:_  
\[C(t)=\sum_{i=0}^{n}B_{i,k}(t)P_{i} \tag{22}\]  
**Remark 2**. : _Indexes \(m,n,k\) must satisfy \(m=n+k+1\)._  
**Remark 3**. : _If the first knot and the last knot have multiplicity with value \(k+1\), the B-spline curve is called closed clamped; otherwise, it is called an open clamped B-spline curve. More specific illustrations can be seen in Figure 3._  
Figure 3: (**a**) Order 3 B-spline basis function in which the internal knot vector is \(\left[ \begin{array}{cccccccccccc}1&2&3&4&5&6&\end{array} \right]\); (**b**) Order 3 B-spline basis function that has multiple knots in which the internal knot vector is \(\left[ \begin{array}{cccccccccccc}1&1&1&2&3&4&5&6&6&\end{array} \right]\); (**c**) Order 3 B-spline functions with multiple knots; the internal knot vector is \(\left[ \begin{array}{cccccccccccc}1&1&1&2&3&4&5&6&6&\end{array} \right]\); (**d**) Amplitude standardization of c; the internal knot vector is \(\left[ \begin{array}{cccccccccccc}1&1&1&2&3&4&5&6&6&\end{array} \right]\). From Equation (22) on the \(i\)th vector the B-spline function can be written as:  
\[ \begin{array}{ll}C_{i}(t)&=\Big{[}B_{0,k}^{i}\ B_{1,k}^{i}\ \cdots\ B_{n,k}^{i} \Big{]}[P_{0}\ P_{1}\ \cdots\ P_{n}]^{T}\\ &=v_{t}M_{e}t[P_{0}\ P_{1}\ \cdots\ P_{n}]^{T}\\ &=v_{t}M_{e}t[(Px_{0},Py_{0})\ (Px_{1},Py_{1})\ \cdots\ (Px_{n},Py_{n})]^{T} \end{array}  \tag{23}\]  
If the horizontal value \(x_{in}\) of an arbitrary point \((x_{in},y_{in})\) on the B-spline curve is known, the following formula can be obtained by:  
\[x_{in}=v_{t}M_{e}t[Px_{0}\ Px_{1}\ \cdots\ Px_{n}]^{T} \tag{24}\]  
Therefore, the unknown internal vector \(v_{\hat{t}}\) can be calculated. Furthermore, the vertical value \(y_{in}\) can be obtained:  
\[y_{in}=v_{\hat{t}}M_{e}t[Py_{0}\ Py_{1}\ \cdots\ Py_{n}]^{T} \tag{25}\]  
In this paper, order 3 B-spline curve is adopted. Then Equation (23) can be simplified to the following form:  
\[ \begin{array}{ll}C_{j}(u)&=\left[t^{2}\ t^{1}\ 1\right]\left[\begin{array}{ c c c}a_{1}^{1}&a_{2}^{2}&a_{3}^{2}\\ a_{1}^{1}&a_{1}^{2}&a_{1}^{3}\\ a_{0}^{1}&a_{0}^{2}&a_{0}^{3}\end{array}\right]\left[P_{j}\ P_{j+1}\ P_{j+2} \right]^{T}\\ &=\left[t^{2}\ t^{1}\ 1\right]M_{e}t[P_{j}\ P_{j+1}\ P_{j+2}]^{T}\end{array}  \tag{26}\]  
\(x_{in}\) can be represented as \(x_{in}=\left[\ t^{2}\ t\ \ 1\ \right]A\beta\), in which \(M_{e}^{\prime}=(\alpha_{1},\alpha_{2},\alpha_{3})^{T}\), \(\beta=\left[ \begin{array}{ c c c}Px_{0}\ \ \ \ px_{1}\ \ \ px_{2}\end{array} \right]^{T}\). According to the known horizontal coordinate value \(x_{in}\), the corresponding internal knot \(\hat{t}\) can be obtained:  
\[\hat{t}=\frac{-(\alpha_{2}\cdot\beta)\pm\sqrt{(\alpha_{2}\cdot\beta)^{2}-4( \alpha_{1}\cdot\beta)[(\alpha_{3}\cdot\beta)-x_{in}]}}{2(\alpha_{1}\cdot\beta) },\ (\alpha_{1}\cdot\beta)\
eq 0 \tag{27}\]  
Furthermore:  
\[ \begin{array}{ll}y_{in}&=\left[\begin{array}{ c c c}\hat{t}^{2}\ \ \ \ \ \ 1\end{array}\right]\left[\begin{array}{ c c c}(\alpha_{1}\cdot\gamma)\ \ \ \ (\alpha_{2}\cdot\gamma)\ \ \ (\alpha_{3}\cdot\gamma)\end{array}\right]^{T}\\ &=(\alpha_{1}\cdot\gamma)\hat{t}^{2}+(\alpha_{2}\cdot\gamma)\hat{t}+(\alpha_{3 }\cdot\gamma)\end{array}  \tag{28}\]  
in which \(\gamma=\left[ \begin{array}{ c c c}Py_{0}\ \ \ \ Py_{1}\ \ \ Py_{2}\end{array} \right]^{T}\). According to the Definition 2, the B-spline function is improved in this paper by proposing two deformation factors called translation factor and scaling factor. Definition 3: Given \(n+1\) control points \(P_{i}\) and a knot vector \(T=\{t_{0}\leq t_{1}\leq\cdots\leq t_{m}\}\), a new B-spline function of degree \(k\) can be written as:  
\[