Parametric Curve Fitting with Iterative Parametrization

Parametric Curve Fitting with Iterative Parametrization

A common task in geometric modeling is to fit a smooth curve to set of 3D points. The usual approach of fitting an explicit function to given data is indeed not usable here since it cannot represent vertical lines and is only single-valued. Therefore, we will look for a curve in parametric representation to approximate the given points.

The problem is to guess how the points are meant to be parametrized since it strongly affects the quality of approximation. This is a difficult problem that so far has not been solved in a satisfactory way (according to my knowledge). One of the possible methods, discussed in this article, is to iteratively modify the initial parametrization to minimize the error of approximation.

Read more…

Linear Algebra with Python and NumPy (II)

Linear Algebra with Python and NumPy (II)

svd algorithm This post is a continuation of the previous post on using Python and NumPy package for linear algebra.

We will briefly cover topics such as:

  • Solving systems of linear equations
  • Eigenvalues, eigenvectors and matrix spectral decomposition
  • Singular value decomposition (SVD)
  • Solving overdetermined linear systems using method of least-squares
  • Moore-Penrose pseudoinverse matrix


Read more…

Linear Algebra with Python and NumPy (I)

Linear Algebra with Python and NumPy (I)

Recently, I've learned to use Python for creating Blender addons, which made me appreciate the simplicity and flexibility of this brilliant scripting language. Also, I've discovered there is lots of Python based tools like Jupyter Notebook (that I'm just using to write this post). Or Spyder, the complete IDE for scientific computing that is quite similar to well known Matlab, just with the difference that Spyder is Python based.

Although as a former user of Matlab/Octave language, I've faced few differences and difficulties related to algebraic structures. It's known that Matlab is probably the most intuitive language when it comes to numerical computing, but compared to Python it has other shortcomings. Besides, when the final code for my usage is going to by Python, it seems reasonable to use Python from start of development process, rather than try to develop an algorithm in Matlab and then need to translate it into Python. Therefore, this post is mainly focused on the differences one need to keep in mind when coming to Python from Matlab.

Read more…

Install Nikola on Windows 10

Because of the fact that Nikola site generator is written in Python scripting language, it should run on any major operating system. The installation process might vary depending on the system though. Here, I'm going to share how I've managed to install Nikola on Windows 10.

Read more…

Starting a Personal Blog with Nikola

nikola_tesla_quote.tn.jpg

Nikola Tesla, one of the greatest inventors ever.

Hello and welcome to my new personal blog that I'm just creating using a site generator called Nikola. Indeed! it's named after the famous scientist and inventor Nikola Tesla, but that wasn't the only reason why I've decided for this interesting tool. Recently, I was tempted to set a personal blog, where I could post things I'm currently working on, or my ideas before I totally forget them. Of course, I was faced with the problem what site engine I should choose, because there is truly lots of options in the year of 2016.

Before I start discussing my experience with Nikola, let me explain why I've decided for this tool. I'm a very picky person when it comes to customization, so I looked for a tool that would satisfy all my needs, particularly...

  • Have full control over every aspect of the style and layout.
  • I'm not a fan of phones, however smart they try to appear. So, mobile-first, ultra-responsive web designs that hide all control elements and relevant information cannot really attract me.
  • Enable to insert both blog posts and non-blog pages.
  • Be able to type math (ideally using Syntax of TeX), because mathematics is indeed the language of nature, thus the most universal language ever :)
  • Use native Jupyter files (.ipynb) as source files for the site. Jupyter is a very handy web application that allows you to create and share documents containing live code, equations, visualizations and explanatory text. It supports many languages including Python, which makes it a perfect tool for writing scientific articles.
  • Open source tool without any commercial ads is preferred (very important in todays over-commercialized world).

Read more…