File:Mspline order3.svg
Page contents not supported in other languages.
Tools
Actions
General
In other projects
Appearance
Size of this PNG preview of this SVG file: 720 × 540 pixels. Other resolutions: 320 × 240 pixels | 640 × 480 pixels | 1,024 × 768 pixels | 1,280 × 960 pixels | 2,560 × 1,920 pixels.
Original file (SVG file, nominally 720 × 540 pixels, file size: 44 KB)
This is a file from the Wikimedia Commons. Information from its description page there is shown below. Commons is a freely licensed media file repository. You can help. |
Summary
DescriptionMspline order3.svg |
English: Plot of M-splines of order 3. |
Date | |
Source | Own work |
Author | Skbkekas |
SVG development InfoField | This plot was created with Matplotlib. |
Source code InfoField | Python codefrom __future__ import division
import numpy as np
import matplotlib.pyplot as plt
def mspline(x, k, i, T):
"""Evaluate the kth order m-spline at x.
Arguments:
----------
x : the point at which the spline is evaluated
k : the order of the spline (k>=1)
i : the interval on which the spline is defined (i<len(T)-k)
T : the knots
Returns:
--------
The value of the spline at x
Note: Use mspline_knots(...) to create T.
"""
if x<T[i]: return 0.
if x>=T[i+k]: return 0.
if k==1: return 1/(T[i+1]-T[i])
d1 = x-T[i]
d2 = T[i+k]-x
v = d1*mspline(x, k-1, i, T) + d2*mspline(x, k-1, i+1, T)
v *= k
v /= (k-1)*(T[i+k]-T[i])
return v
def mspline_knots(xmin, xmax, k, m):
"""Create an order list of points in the interval (xmin,xmax)
suitable for use as knots in m-splines and i-splines.
Arguments:
----------
xmin : the lower bound of the interval
xmax : the upper bount of the interval
k : the order of the m-spline for which the knots will be used
m : the number of intervals into which (xmin,xmax) will be partitioned
"""
T = [xmin]*(k-1)
h = (xmax-xmin)/m
T.extend(np.arange(xmin, xmax, h))
T.extend([xmax]*k)
return T
def test_mspline():
plt.clf()
k = 3
T = mspline_knots(0, 1, k, 5)
A = []
for i in range(len(T)-k):
F = []
for x in np.arange(0,1,0.01):
F.append([x,mspline(x, k, i, T)])
F = np.array(F)
a = plt.plot(F[:,0], F[:,1], '-')
A.append(a)
plt.hold(True)
b = plt.legend(A, ("i=1", "i=2", "i=3", "i=4", "i=5", "i=6", "i=7"),\
'upper center')
b.draw_frame(False)
plt.xlabel(r"$x$")
plt.ylabel(r"$M_i(x
|
Licensing
I, the copyright holder of this work, hereby publish it under the following licenses:
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license. | ||
| ||
This licensing tag was added to this file as part of the GFDL licensing update.http://creativecommons.org/licenses/by-sa/3.0/CC BY-SA 3.0Creative Commons Attribution-Share Alike 3.0truetrue |
Copyleft: This work of art is free; you can redistribute it and/or modify it according to terms of the Free Art License. You will find a specimen of this license on the Copyleft Attitude site as well as on other sites. http://artlibre.org/licence/lal/enFALFree Art Licensefalsetrue |
You may select the license of your choice.
Items portrayed in this file
depicts
6 June 2009
image/svg+xml
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 22:11, 6 June 2009 | 720 × 540 (44 KB) | Skbkekas | {{Information |Description={{en|1=Plot of M-splines of order 3.}} |Source=Own work by uploader |Author=Skbkekas |Date=2009-06-06 |Permission= |other_versions= }} <!--{{ImageUpload|full}}--> |
File usage
The following page uses this file:
Retrieved from "https://en.wikipedia.org/wiki/File:Mspline_order3.svg"