Confusing myself with Cox de boor's algorithm












1












$begingroup$


I am using the recursive definition to understand the algorithm, mainly:



$$ B_{i,0}(t) = begin{cases}
1 & text{if} & t_i leq t < t_{i+1} \
0 & text{otherwise}
end{cases}\
B_{i,p}(t) = frac{t-t_i}{t_{i+p} - t_i}B_{i,p-1}(t)+frac{t_{i+1}-t}{t_{i+p}-t_i}B_{i+1, p-1}(t)
$$



Now my intuition/expectation is that a degree 1 (p=1) B-spline is nothing but a bunch of straight lines put together. In other words I expect the evaluation of a degree one section on the B-spline to be a linear interpolation of the 2 values. Mathematically I expect something equivalent to:



$B_{i,1}(t) = (1-t')cdot c_i + t'cdot c_{i+1}$ for some $t'=kcdot t - c$



However I am not getting that at all.



If I simply do symbole replacement:



$B_{i,1}(t) = frac{t-t_i}{t_{i+1} - t_i}B_{i,0}(t)+frac{t_{i+1}-t}{t_{i+1}-t_i}B_{i+1, 0}(t)$



Which means that exactly one and only one of the two terms in the sum may be non-zero and the other one must be 0.



Which is not a linear interpolation.



So either my intuition is completely broken, in which case I want to be explained why, or my understanding of the recursive formula is wrong and I would like to be explained what the problem is.



EDIT: I understand what my issue is now, I wrote the definition slightly wrong, making it closer to a Lagrange polynomial than a B-spline polynomial.










share|cite|improve this question











$endgroup$

















    1












    $begingroup$


    I am using the recursive definition to understand the algorithm, mainly:



    $$ B_{i,0}(t) = begin{cases}
    1 & text{if} & t_i leq t < t_{i+1} \
    0 & text{otherwise}
    end{cases}\
    B_{i,p}(t) = frac{t-t_i}{t_{i+p} - t_i}B_{i,p-1}(t)+frac{t_{i+1}-t}{t_{i+p}-t_i}B_{i+1, p-1}(t)
    $$



    Now my intuition/expectation is that a degree 1 (p=1) B-spline is nothing but a bunch of straight lines put together. In other words I expect the evaluation of a degree one section on the B-spline to be a linear interpolation of the 2 values. Mathematically I expect something equivalent to:



    $B_{i,1}(t) = (1-t')cdot c_i + t'cdot c_{i+1}$ for some $t'=kcdot t - c$



    However I am not getting that at all.



    If I simply do symbole replacement:



    $B_{i,1}(t) = frac{t-t_i}{t_{i+1} - t_i}B_{i,0}(t)+frac{t_{i+1}-t}{t_{i+1}-t_i}B_{i+1, 0}(t)$



    Which means that exactly one and only one of the two terms in the sum may be non-zero and the other one must be 0.



    Which is not a linear interpolation.



    So either my intuition is completely broken, in which case I want to be explained why, or my understanding of the recursive formula is wrong and I would like to be explained what the problem is.



    EDIT: I understand what my issue is now, I wrote the definition slightly wrong, making it closer to a Lagrange polynomial than a B-spline polynomial.










    share|cite|improve this question











    $endgroup$















      1












      1








      1


      1



      $begingroup$


      I am using the recursive definition to understand the algorithm, mainly:



      $$ B_{i,0}(t) = begin{cases}
      1 & text{if} & t_i leq t < t_{i+1} \
      0 & text{otherwise}
      end{cases}\
      B_{i,p}(t) = frac{t-t_i}{t_{i+p} - t_i}B_{i,p-1}(t)+frac{t_{i+1}-t}{t_{i+p}-t_i}B_{i+1, p-1}(t)
      $$



      Now my intuition/expectation is that a degree 1 (p=1) B-spline is nothing but a bunch of straight lines put together. In other words I expect the evaluation of a degree one section on the B-spline to be a linear interpolation of the 2 values. Mathematically I expect something equivalent to:



      $B_{i,1}(t) = (1-t')cdot c_i + t'cdot c_{i+1}$ for some $t'=kcdot t - c$



      However I am not getting that at all.



      If I simply do symbole replacement:



      $B_{i,1}(t) = frac{t-t_i}{t_{i+1} - t_i}B_{i,0}(t)+frac{t_{i+1}-t}{t_{i+1}-t_i}B_{i+1, 0}(t)$



      Which means that exactly one and only one of the two terms in the sum may be non-zero and the other one must be 0.



      Which is not a linear interpolation.



      So either my intuition is completely broken, in which case I want to be explained why, or my understanding of the recursive formula is wrong and I would like to be explained what the problem is.



      EDIT: I understand what my issue is now, I wrote the definition slightly wrong, making it closer to a Lagrange polynomial than a B-spline polynomial.










      share|cite|improve this question











      $endgroup$




      I am using the recursive definition to understand the algorithm, mainly:



      $$ B_{i,0}(t) = begin{cases}
      1 & text{if} & t_i leq t < t_{i+1} \
      0 & text{otherwise}
      end{cases}\
      B_{i,p}(t) = frac{t-t_i}{t_{i+p} - t_i}B_{i,p-1}(t)+frac{t_{i+1}-t}{t_{i+p}-t_i}B_{i+1, p-1}(t)
      $$



      Now my intuition/expectation is that a degree 1 (p=1) B-spline is nothing but a bunch of straight lines put together. In other words I expect the evaluation of a degree one section on the B-spline to be a linear interpolation of the 2 values. Mathematically I expect something equivalent to:



      $B_{i,1}(t) = (1-t')cdot c_i + t'cdot c_{i+1}$ for some $t'=kcdot t - c$



      However I am not getting that at all.



      If I simply do symbole replacement:



      $B_{i,1}(t) = frac{t-t_i}{t_{i+1} - t_i}B_{i,0}(t)+frac{t_{i+1}-t}{t_{i+1}-t_i}B_{i+1, 0}(t)$



      Which means that exactly one and only one of the two terms in the sum may be non-zero and the other one must be 0.



      Which is not a linear interpolation.



      So either my intuition is completely broken, in which case I want to be explained why, or my understanding of the recursive formula is wrong and I would like to be explained what the problem is.



      EDIT: I understand what my issue is now, I wrote the definition slightly wrong, making it closer to a Lagrange polynomial than a B-spline polynomial.







      calculus geometry polynomials curves spline






      share|cite|improve this question















      share|cite|improve this question













      share|cite|improve this question




      share|cite|improve this question








      edited Dec 8 '18 at 18:51







      Makogan

















      asked Dec 8 '18 at 1:19









      MakoganMakogan

      786217




      786217






















          1 Answer
          1






          active

          oldest

          votes


















          2












          $begingroup$

          Intuitively the formula transitions between 2 successive basis functions of the previous degree extending the support by one knot. The continuity order increments unless duplicate knots are encountered, but I don't think that fact is intuitive from the recurrence relation. See Theorem 3.19 for a proof.



          Note that the denominators can be zero, though only if $B_{i(+1),p-1}$ is zero, so you get a $0/0$ expression. These expression can sensibly be replaced by $0$, because if you adjust the knots and $t$ slightly (less than some $delta>0$) to avoid the zero-division, then the $0/0$ expression will remain closer to zero than any $varepsilon>0$ whenever $delta$ is chosen sufficiently small. You need the theory of generalized functions (distributions) or divided differences to make a definition where the zero-division doesn't appear.



          For the first order B-spline you should use half-open intervals e.g. $$B_{i,0}(t)=begin{cases} 1 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}$$ such that the basis functions sum to 1 when evaluated at the knots. In fact there is the more precise formula $$B_{i,0}(t) = begin{cases} 1/2 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}+ begin{cases} 1/2 & t_i< tleq t_{i+1} \ 0 & text{else}end{cases}$$ which is necessary to make the inner product formula from On Calculating with B-Splines II work. When using this definition for evaluation, you will get the arithmetic mean of the right and left limit at the points of discontinuity (exactly like the limit of the fourier series).



          You anticipate the basis functions to be like $ (1-t)cdot c_i + tcdot c_{i+1}$ and $ (1-t)cdot c_{i+1} + tcdot c_{i+2}$, etc... But then $c_i$ would only be the start/end-points of the line segments if the basis coefficients were all equal to one. The terms you have included are kind of right, but you must gather them differently for the $c_i$s to factor.



          The degree 1 B-Spline basis coefficients are the start/end-points $c_i$. The basis function gives you the weights for a particular $c_i$. The weights are something like $t$ in the first knot interval and $1-t$ in the next. Hence if you want to adjust one of the start/end-points, you just change the coefficient while the basis functions remain unchanged.






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            None of this answers the question. Is an order 1 b-spline a sequence of straight segments? And if yes, why doesn;t the formula return that?
            $endgroup$
            – Makogan
            Dec 8 '18 at 16:46











          Your Answer





          StackExchange.ifUsing("editor", function () {
          return StackExchange.using("mathjaxEditing", function () {
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
          });
          });
          }, "mathjax-editing");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "69"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          noCode: true, onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3030589%2fconfusing-myself-with-cox-de-boors-algorithm%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2












          $begingroup$

          Intuitively the formula transitions between 2 successive basis functions of the previous degree extending the support by one knot. The continuity order increments unless duplicate knots are encountered, but I don't think that fact is intuitive from the recurrence relation. See Theorem 3.19 for a proof.



          Note that the denominators can be zero, though only if $B_{i(+1),p-1}$ is zero, so you get a $0/0$ expression. These expression can sensibly be replaced by $0$, because if you adjust the knots and $t$ slightly (less than some $delta>0$) to avoid the zero-division, then the $0/0$ expression will remain closer to zero than any $varepsilon>0$ whenever $delta$ is chosen sufficiently small. You need the theory of generalized functions (distributions) or divided differences to make a definition where the zero-division doesn't appear.



          For the first order B-spline you should use half-open intervals e.g. $$B_{i,0}(t)=begin{cases} 1 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}$$ such that the basis functions sum to 1 when evaluated at the knots. In fact there is the more precise formula $$B_{i,0}(t) = begin{cases} 1/2 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}+ begin{cases} 1/2 & t_i< tleq t_{i+1} \ 0 & text{else}end{cases}$$ which is necessary to make the inner product formula from On Calculating with B-Splines II work. When using this definition for evaluation, you will get the arithmetic mean of the right and left limit at the points of discontinuity (exactly like the limit of the fourier series).



          You anticipate the basis functions to be like $ (1-t)cdot c_i + tcdot c_{i+1}$ and $ (1-t)cdot c_{i+1} + tcdot c_{i+2}$, etc... But then $c_i$ would only be the start/end-points of the line segments if the basis coefficients were all equal to one. The terms you have included are kind of right, but you must gather them differently for the $c_i$s to factor.



          The degree 1 B-Spline basis coefficients are the start/end-points $c_i$. The basis function gives you the weights for a particular $c_i$. The weights are something like $t$ in the first knot interval and $1-t$ in the next. Hence if you want to adjust one of the start/end-points, you just change the coefficient while the basis functions remain unchanged.






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            None of this answers the question. Is an order 1 b-spline a sequence of straight segments? And if yes, why doesn;t the formula return that?
            $endgroup$
            – Makogan
            Dec 8 '18 at 16:46
















          2












          $begingroup$

          Intuitively the formula transitions between 2 successive basis functions of the previous degree extending the support by one knot. The continuity order increments unless duplicate knots are encountered, but I don't think that fact is intuitive from the recurrence relation. See Theorem 3.19 for a proof.



          Note that the denominators can be zero, though only if $B_{i(+1),p-1}$ is zero, so you get a $0/0$ expression. These expression can sensibly be replaced by $0$, because if you adjust the knots and $t$ slightly (less than some $delta>0$) to avoid the zero-division, then the $0/0$ expression will remain closer to zero than any $varepsilon>0$ whenever $delta$ is chosen sufficiently small. You need the theory of generalized functions (distributions) or divided differences to make a definition where the zero-division doesn't appear.



          For the first order B-spline you should use half-open intervals e.g. $$B_{i,0}(t)=begin{cases} 1 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}$$ such that the basis functions sum to 1 when evaluated at the knots. In fact there is the more precise formula $$B_{i,0}(t) = begin{cases} 1/2 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}+ begin{cases} 1/2 & t_i< tleq t_{i+1} \ 0 & text{else}end{cases}$$ which is necessary to make the inner product formula from On Calculating with B-Splines II work. When using this definition for evaluation, you will get the arithmetic mean of the right and left limit at the points of discontinuity (exactly like the limit of the fourier series).



          You anticipate the basis functions to be like $ (1-t)cdot c_i + tcdot c_{i+1}$ and $ (1-t)cdot c_{i+1} + tcdot c_{i+2}$, etc... But then $c_i$ would only be the start/end-points of the line segments if the basis coefficients were all equal to one. The terms you have included are kind of right, but you must gather them differently for the $c_i$s to factor.



          The degree 1 B-Spline basis coefficients are the start/end-points $c_i$. The basis function gives you the weights for a particular $c_i$. The weights are something like $t$ in the first knot interval and $1-t$ in the next. Hence if you want to adjust one of the start/end-points, you just change the coefficient while the basis functions remain unchanged.






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            None of this answers the question. Is an order 1 b-spline a sequence of straight segments? And if yes, why doesn;t the formula return that?
            $endgroup$
            – Makogan
            Dec 8 '18 at 16:46














          2












          2








          2





          $begingroup$

          Intuitively the formula transitions between 2 successive basis functions of the previous degree extending the support by one knot. The continuity order increments unless duplicate knots are encountered, but I don't think that fact is intuitive from the recurrence relation. See Theorem 3.19 for a proof.



          Note that the denominators can be zero, though only if $B_{i(+1),p-1}$ is zero, so you get a $0/0$ expression. These expression can sensibly be replaced by $0$, because if you adjust the knots and $t$ slightly (less than some $delta>0$) to avoid the zero-division, then the $0/0$ expression will remain closer to zero than any $varepsilon>0$ whenever $delta$ is chosen sufficiently small. You need the theory of generalized functions (distributions) or divided differences to make a definition where the zero-division doesn't appear.



          For the first order B-spline you should use half-open intervals e.g. $$B_{i,0}(t)=begin{cases} 1 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}$$ such that the basis functions sum to 1 when evaluated at the knots. In fact there is the more precise formula $$B_{i,0}(t) = begin{cases} 1/2 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}+ begin{cases} 1/2 & t_i< tleq t_{i+1} \ 0 & text{else}end{cases}$$ which is necessary to make the inner product formula from On Calculating with B-Splines II work. When using this definition for evaluation, you will get the arithmetic mean of the right and left limit at the points of discontinuity (exactly like the limit of the fourier series).



          You anticipate the basis functions to be like $ (1-t)cdot c_i + tcdot c_{i+1}$ and $ (1-t)cdot c_{i+1} + tcdot c_{i+2}$, etc... But then $c_i$ would only be the start/end-points of the line segments if the basis coefficients were all equal to one. The terms you have included are kind of right, but you must gather them differently for the $c_i$s to factor.



          The degree 1 B-Spline basis coefficients are the start/end-points $c_i$. The basis function gives you the weights for a particular $c_i$. The weights are something like $t$ in the first knot interval and $1-t$ in the next. Hence if you want to adjust one of the start/end-points, you just change the coefficient while the basis functions remain unchanged.






          share|cite|improve this answer











          $endgroup$



          Intuitively the formula transitions between 2 successive basis functions of the previous degree extending the support by one knot. The continuity order increments unless duplicate knots are encountered, but I don't think that fact is intuitive from the recurrence relation. See Theorem 3.19 for a proof.



          Note that the denominators can be zero, though only if $B_{i(+1),p-1}$ is zero, so you get a $0/0$ expression. These expression can sensibly be replaced by $0$, because if you adjust the knots and $t$ slightly (less than some $delta>0$) to avoid the zero-division, then the $0/0$ expression will remain closer to zero than any $varepsilon>0$ whenever $delta$ is chosen sufficiently small. You need the theory of generalized functions (distributions) or divided differences to make a definition where the zero-division doesn't appear.



          For the first order B-spline you should use half-open intervals e.g. $$B_{i,0}(t)=begin{cases} 1 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}$$ such that the basis functions sum to 1 when evaluated at the knots. In fact there is the more precise formula $$B_{i,0}(t) = begin{cases} 1/2 & t_ileq t<t_{i+1} \ 0 & text{else}end{cases}+ begin{cases} 1/2 & t_i< tleq t_{i+1} \ 0 & text{else}end{cases}$$ which is necessary to make the inner product formula from On Calculating with B-Splines II work. When using this definition for evaluation, you will get the arithmetic mean of the right and left limit at the points of discontinuity (exactly like the limit of the fourier series).



          You anticipate the basis functions to be like $ (1-t)cdot c_i + tcdot c_{i+1}$ and $ (1-t)cdot c_{i+1} + tcdot c_{i+2}$, etc... But then $c_i$ would only be the start/end-points of the line segments if the basis coefficients were all equal to one. The terms you have included are kind of right, but you must gather them differently for the $c_i$s to factor.



          The degree 1 B-Spline basis coefficients are the start/end-points $c_i$. The basis function gives you the weights for a particular $c_i$. The weights are something like $t$ in the first knot interval and $1-t$ in the next. Hence if you want to adjust one of the start/end-points, you just change the coefficient while the basis functions remain unchanged.







          share|cite|improve this answer














          share|cite|improve this answer



          share|cite|improve this answer








          edited Dec 9 '18 at 10:35

























          answered Dec 8 '18 at 9:46









          MeMyselfIMeMyselfI

          624319




          624319












          • $begingroup$
            None of this answers the question. Is an order 1 b-spline a sequence of straight segments? And if yes, why doesn;t the formula return that?
            $endgroup$
            – Makogan
            Dec 8 '18 at 16:46


















          • $begingroup$
            None of this answers the question. Is an order 1 b-spline a sequence of straight segments? And if yes, why doesn;t the formula return that?
            $endgroup$
            – Makogan
            Dec 8 '18 at 16:46
















          $begingroup$
          None of this answers the question. Is an order 1 b-spline a sequence of straight segments? And if yes, why doesn;t the formula return that?
          $endgroup$
          – Makogan
          Dec 8 '18 at 16:46




          $begingroup$
          None of this answers the question. Is an order 1 b-spline a sequence of straight segments? And if yes, why doesn;t the formula return that?
          $endgroup$
          – Makogan
          Dec 8 '18 at 16:46


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Mathematics Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3030589%2fconfusing-myself-with-cox-de-boors-algorithm%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Plaza Victoria

          Puebla de Zaragoza

          Musa