Git Product home page Git Product logo

bsplineoptimmatlab's Introduction

B-Spline optimization methods in Matlab

This project contains various algorithms which can be used in approximation of 1-dimensional data with fitted B-splines. B-splines only depend on their rank and the knot array used to generate them, so optimalizing the approximation means findong the knot array on whch we get the best fitting splines.

Methods used

Nelder-Mead

The inner knots of the initial array are optimized with the classic Nelder-Mead algorithm.

VarPro

Variable projection method based on trust regions.

Nullad

The menthod "Nullad" (translates to zero rank) is based on the special characteristics of zero rank B-splines. Because these splines are basically constant functions with 0 value outside a certain interval, their linear combination yields a step function which's integral can be easily computed. The algorithm approximates with zero rank B-splines, which is greatly faster than the other examined methods. Although this approximation is not too precise, the resulting knot array can be used to fit higher rank B-splines resulting a better estimate.

Knot reduction

As the name suggests, we get the resulting knot array by reducing the whole interval of the test data one data point at a time.

Contents

The contents of the repo are the following:

  • Explicit_Bspline: Functions used for computing B-spline values.
  • Nullad: Implementation of the Nullad method along with test files and a matlab example file showcasing the algorithm.
  • VarPro: Implementation of the VarPro method along with test files and a matlab example file showcasing the algorithm.
  • EcgTests: Tests and results on varoius ECG data. Initial knot set was generated by an iteration of Nullad.
  • EcgTest_Rand_Eq: Tests and results o various ECG data. Initial knot set was either a random array or a uniform partitioning of the data nterval.
  • SyntTest, SyntTest_Rand_Eq: Same as the tests conducted in ECGTests and EcgTests_Rand_Eq, but instead of using Ecg signals, the data was constructed by us, from B-Splines.

bsplineoptimmatlab's People

Contributors

andifekete avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.