البيرثون المربعات الأقل المربعات الطبيعية

StackOverflow https://stackoverflow.com/questions/2441058

  •  19-09-2019
  •  | 
  •  

سؤال

أحاول أن أجد حزمة عدودية تناسب مجموعة طبيعية مما يقلل من المربعات الصغرى المرجحة.

هناك حزمة في SCIBY التي تفعل ما أريده عن الروايات غير الطبيعية.

import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate, randn

x = np.arange(0,5,1.0/6)
xs = np.arange(0,5,1.0/500)

y = np.sin(x+1) + .2*np.random.rand(len(x)) -.1

knots = np.array([1,2,3,4])
tck = interpolate.splrep(x,y,s=0,k=3,t=knots,task=-1)
ys = interpolate.splev(xs,tck,der=0)

plt.figure()
plt.plot(xs,ys,x,y,'x')
هل كانت مفيدة؟

المحلول

ملف spline.py داخل هذا ملف القطران من عند هذه الصفحة هل تناسب مجموعة مختطفات طبيعية افتراضيا. هناك أيضا بعض التعليمات البرمجية هذه الصفحة هذا يدعي أنه في الغالب ما تريد. ال PYD3D حزمة أيضا لديه وظيفة spline الطبيعية في لها pydatautils. وحدة. هذا الأخير يبدو الأكثر واعدة بالنسبة لي. ومع ذلك، لا يبدو أنه يحتوي على خيار إعداد عقدة خاصة بك. ربما إذا نظرت إلى المصدر، يمكنك العثور على وسيلة لتصحيح ذلك.

أيضا، وجدت هذه الرسالة في القائمة البريدية SCIPY التي تقول أن استخدام S = 0.0 (كما هو الحال في التعليمات البرمجية المعطاة) يجعل الجزهات مزودة باستخدام الإجراء أعلاه الطبيعي وفقا لكاتب الرسالة. لقد وجدت هذا splmake. وظيفة لديها خيار للقيام بإجراء شريحة مبتلة طبيعية، ولكن عند النظر إلى المصدر، وجدت أنه لم يتم تنفيذها بعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top