2008-09-24 5 views
5

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

उत्तर

6

मैं पहली बार समीकरण 2 डी में परवलयिक चाप के लिए रोटेशन के बिना निर्धारित करेंगे: एक रोटेशन मैट्रिक्स का निर्माण करके

x(t) = ax² + bx + c 
    y(t) = t; 

अब आप रोटेशन लागू कर सकते हैं:

s = sin(angle) 
    c = cos(angle) 

    matrix = | c -s | 
      | s c | 

कि मैट्रिक्स लागू करें और आपको घुमावदार पैरामीट्रिक समीकरण मिलेगा:

x' (t) = x(t) * c - s*t; 
y' (t) = x(t) * s + c*t; 

यह आपको दो समीकरण देगा (एक्स और वाई के लिए) आपके परवलयिक चाप के।

अपने दोनों घुमावदार आर्कों के लिए ऐसा करें और उन्हें घटाना। यह आपको इस तरह समीकरण देता है:

xa'(t) = rotated equation of arc1 in x 
    ya'(t) = rotated equation of arc1 in y. 
    xb'(t) = rotated equation of arc2 in x 
    yb'(t) = rotated equation of arc2 in y. 
    t1 = parametric value of arc1 
    t2 = parametric value of arc2 

    0 = xa'(t1) - xb'(t2) 
    0 = ya'(t1) - yb'(t2) 

इनमें से प्रत्येक समीकरण केवल एक आदेश 2 बहुपद है। ये हल करने में आसान हैं।

छेड़छाड़ बिंदु खोजने के लिए आप उपरोक्त समीकरण (उदा। जड़ों को ढूंढें) को हल करते हैं।

आपको प्रत्येक धुरी के लिए दो जड़ें मिलेंगी। एक्स और वाई के बराबर कोई भी रूट वक्र के बीच एक चौराहे बिंदु है।

स्थिति प्राप्त करना अभी आसान है: बस रूट को अपने पैरामीट्रिक समीकरण में प्लग करें और आप सीधे एक्स और वाई प्राप्त कर सकते हैं।

+0

सी ++ में समीकरणों की इस प्रणाली को कैसे हल करें (इसलिए इनबिल्ट मैटलैब फ़ंक्शंस के साथ नहीं) http://math.stackexchange.com/questions/1894043/solve-squared-non-linear-system-with-two -equations –

+0

@ श्रीशेप क्षमा करें, मैं आपको समाधान के माध्यम से नहीं चलूंगा। मैंने कभी भी मैटलैब का उपयोग नहीं किया है, इसलिए मैं यहां या तो मदद कर सकता हूं। –

+0

मैं इसे समझूंगा, हालांकि मैं वास्तव में यहां आपके समाधान की सराहना करता हूं- धन्यवाद। –

1

दुर्भाग्य से, सामान्य उत्तर को चौथे क्रम बहुपद के समाधान की आवश्यकता होती है। यदि हम निर्देशांक बदलते हैं तो दो पैराबोलस में से एक मानक रूप y = x^2 में है, तो दूसरा पैराबोला संतुष्ट करता है (ax + by)^2 + cx + dy + e == 0। चौराहे को खोजने के लिए, दोनों एक साथ हल करें। Y = x^2 में सबस्टिट्यूटिंग हम देखते हैं कि परिणाम चौथा क्रम बहुपद है: (कुल्हाड़ी + बीएक्स^2)^2 + सीएक्स + डीएक्स^2 + ई == 0। इसलिए नील समाधान काम नहीं करेगा (उसकी गलती: प्रत्येक एक अलग क्रम में बहुपद क्रमशः दूसरा क्रम है, लेकिन एक साथ वे नहीं हैं)।

1

यदि आपके पास सीएएस है तो यह आसान है।

गणित में समाधान देखें।

एक पैराबोला चुनें और निर्देशांक बदलें ताकि इसकी समीकरण y (x) = x^2 (सामान्य रूप) हो।

A x^2 + B x y + CC y^2 + DD x + EE y + F == 0 

where B^2-4 A C ==0 (so it's a parabola) 

के एक अंकीय मामले को हल करते हैं:

अन्य परवलय सामान्य रूप होगा

p = {a -> 1, A -> 1, B -> 2, CC -> 1, DD -> 1, EE -> -1, F -> 1}; 
p1 = {[email protected]@Reduce[ 
     (A x^2 + B x y + CC y^2 + DD x + EE y +F /. {y -> a x^2 } /. p) == 0, x]} 

{{x -> -२.११,७६९} {x -> -.६,४१,४४५}, {x -> 0.379567- 0.76948 I}, {x -> 0.379567+ 0।76,948 मैं}}

आइए यह साजिश:

Show[{ 
    Plot[a x^2 /. p, {x, -10, 10}, PlotRange -> {{-10, 10}, {-5, 5}}], 
    ContourPlot[(A x^2 + B x y + CC y^2 + DD x + EE y + F /. p) == 
    0, {x, -10, 10}, {y, -10, 10}], 
    Graphics[{ 
    PointSize[Large], Pink, Point[{x, x^2} /. p /. p1[[1]]], 
    PointSize[Large], Pink, Point[{x, x^2} /. p /. p1[[2]]] 
    }]}] 

enter image description here

सामान्य समाधान की जड़ों की गणना शामिल है: जो किसी भी कैस में आसानी से किया जाता है

4 A F + 4 A DD x + (4 A^2 + 4 a A EE) x^2 + 4 a A B x^3 + a^2 B^2 x^4 == 0 

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