2011-08-14 14 views
6

पायथन में उत्तल झुकाव के पहलू अनुपात का अनुमान लगाने का सबसे अच्छा तरीका क्या होगा? मैंने पहले से ही एक अंडाकार के साथ उत्तल झुकाव के शिखर को फिट करके और अर्द्ध और प्रमुख धुरी का अनुपात ले कर ऐसा करने की कोशिश की है। परिणाम हालांकि संतोषजनक नहीं हैं, इसलिए अब मैं उत्तल हॉल से पहलू अनुपात को प्राप्त करने में देख रहा हूं। किसी भी विचार या समाधान की सराहना की जाएगी।उत्तल झुकाव के पहलू अनुपात का आकलन

चीयर्स

+0

आप पहलू के साथ क्या मतलब है इस संदर्भ में अनुपात और आप इसे उत्तल हल से सीधे कैसे प्राप्त करना चाहते हैं? –

+1

आप उत्तल हल के पहलू अनुपात को कैसे परिभाषित करते हैं? क्या आप विभिन्न कोणों को अनुमति देना चाहते हैं, तो आप घूर्णन आयत के पहलू अनुपात प्राप्त कर सकते हैं? यदि आप अक्षों के लिए 0 डिग्री और 9 0 डिग्री का उपयोग करना चाहते हैं, तो पहलू अनुपात गणना करना आसान है। –

+0

0 और 9 0 डिग्री सेल्सियस, क्या आप निम्नलिखित के आधार पर पहलू अनुपात ढूंढने का मतलब रखते हैं? 1) उत्तल हल (मुख्य केंद्र के माध्यम से उत्तल हल में सबसे लंबा संभव पथ) में प्रमुख अक्ष खोजें और 2) मामूली धुरी को मापें जो प्रमुख धुरी के लिए ऑर्थोगोनल है। यदि ऐसा है, तो यह काम करना चाहिए। – ebressert

उत्तर

7

आमतौर पर, आप बिंदु बादल के सहप्रसरण मैट्रिक्स के eigenvectors पाते हैं। पहलू अनुपात सबसे बड़ा सबसे छोटा eigenvalues ​​का अनुपात है।

(आप बस, अपने उत्तल पतवार को एक ही बात लागू होगी केवल कोने का प्रयोग करके) यादृच्छिक अंक का एक समूह के लिए एक उदाहरण के रूप में:

import matplotlib.pyplot as plt 
import numpy as np 

# Random data 
num = 100 
xy = np.random.random((2,num)) + 0.01 * np.arange(num) 

eigvals, eigvecs = np.linalg.eig(np.cov(xy)) 

fig, (ax1, ax2) = plt.subplots(nrows=2) 
x,y = xy 
center = xy.mean(axis=-1) 
for ax in [ax1, ax2]: 
    ax.plot(x,y, 'ro') 
    ax.axis('equal') 

for val, vec in zip(eigvals, eigvecs.T): 
    val *= 2 
    x,y = np.vstack((center + val * vec, center, center - val * vec)).T 
    ax2.plot(x,y, 'b-', lw=3) 

plt.show() 

enter image description here

+0

यह एक अच्छा समाधान है। मैं अभी भी अपने डेटा पर इस कोड का परीक्षण कर रहा हूं, लेकिन अब तक परिणाम अच्छे हैं। धन्यवाद! – ebressert

संबंधित मुद्दे