कम / हल आदि के साथ बेवकूफ जटिल पैरामीट्रिक गैर रेखीय समीकरण को हल करने का सबसे अच्छा तरीका
मेरे पास एक पैरामीट्रिक नॉनलाइनियर फ़ंक्शन है जो शाब्दिक रूप से एक बुरा सपना है। मुझे पता है कि जड़ें मौजूद हैं, वे वास्तविक हैं और दो पैरामीटर हैं, p,e
दोनों सकारात्मक हैं। मैथेमेटिका से जो मैं उम्मीद कर रहा था, वह एक समाधान प्राप्त करना था (जड़ के रूप में, कोई बंद रूप नहीं) लेकिन यहां तक कि कार्यक्रम को पूरी रात काम करने देने से मैंने आत्मसमर्पण कर दिया। मैं समझ नहीं पा रहा हूं कि क्या यह समस्या का कुशल तरीके से समाधान नहीं कर रहा है, यह मेरा पीसी है जिसे गंभीर उन्नयन या समस्या की आवश्यकता है जो कि रिड्यूस या सॉल्यूशन जैसी विधियों के लिए बहुत कठिन है। यदि मामला बाद का है, तो मुझे लगता है कि मैं बर्बाद हूँ ... अन्य दो की ओर कोई संकेत? सहायता के लिए धन्यवाद।
मेरे प्रयास और समीकरण:
f[x_]:=(1/(8 (p^2+x^2)^3))p^2 (-2 p^6+p^5 (4-8 x)+2 p^3 (3-8 x) x^2-6 p x^4+p^4 (80000+2 x-9 x^2)+2 p^2 x (40000+60000 x+x^2-5 x^3)-3 x^3 (-80000+40000 x+x^3)+(4 Sqrt[10] e x (p^2+x^2)^2 (2 p x^3+p^4 (-2+3 x)+2 p^3 x (-3+4 x)+x^2 (-80000+40000 x+x^3)+2 p^2 (40000-60000 x-x^2+2 x^3)))/Sqrt[-e p^2 (-1+x) x^2 (p^2+x^2)^2 (-40000+p^2+2 p x+x^2)])
Reduce[f[x]==0 && x>=0 &&p>=0 && e>=0,x,Reals] (*stuck running*)
Solve[f[x]==0 && x>=0 &&p>=0 && e>=0,x,Reals] (*stuck running*)
जवाब
यदि आप एक अनुमानित उत्तर से संतुष्ट हैं, तो आप उपयोग करने का प्रयास कर सकते हैं NDSolveValue। आपका कार्य:
f[x_] := (1/(8 (p^2+x^2)^3))p^2 (-2 p^6+p^5 (4-8 x)+2 p^3 (3-8 x) x^2-6 p x^4+p^4 (80000+2 x-9 x^2)+2 p^2 x (40000+60000 x+x^2-5 x^3)-3 x^3 (-80000+40000 x+x^3)+(4 Sqrt[10] e x (p^2+x^2)^2 (2 p x^3+p^4 (-2+3 x)+2 p^3 x (-3+4 x)+x^2 (-80000+40000 x+x^3)+2 p^2 (40000-60000 x-x^2+2 x^3)))/Sqrt[-e p^2 (-1+x) x^2 (p^2+x^2)^2 (-40000+p^2+2 p x+x^2)])
उपयोग करने के लिए NDSolveValue, हमें एक सीमा स्थिति जानने की आवश्यकता है। उदाहरण के लिए, यहाँ का मान x
कब p
है 1
:
x1 = x /. Block[{p=1}, First @ Solve[f[x] == 0, x]]
रूट [256006399839996 + 1023948800640 ई + (255942399200020 - 3071999998080 ई) # 1 + (511955203840004 + 2304217598880 ई # # 1 ^ 2 + (1279846402079976 - 2048025605760 e) # # # # # # # # # # # # # # # # # # # # # ################################ चक्करियाना। (19212961715961515 + 4095897593600 e) # 1 ^ 5 + (-384151995680463 - 512486397600 e) # 1 ^ 6 + (-34556783952038075 + 2047846414080 e) # 1 ^ 7 + (2880427177397393) - # 1 ^ 1024102385280 e) # 1 ^ 9 + (43199520578 + 256064008800 e) # 1 ^ 10 + (-14402879738 - 25598080 e) # 1 ^ 11 + (-359829 + 12802240 e) # 1 ^ 12 + 360087 # 1 ^ 13 + (+ 13 +)। 9 + 160 ई) # 1 ^ 14 + 9 # 1 ^ 15 और, 1]
अब, हम उपयोग कर सकते हैं NDSolveValue:
sol = NDSolveValue[
{
D[f[x[p,e]]==0, p], x[1, e] == x1},
x,
{p,.1,100},
{e,.1,10000},
MaxStepFraction->.0005,
PrecisionGoal->10
]; //AbsoluteTiming
{19.2292, नल}
कुछ यादृच्छिक नमूने देखें:
Block[{p = 50, e = 200}, f[sol[p, e]]]
Block[{p = 10, e = 2000}, f[sol[p, e]]]
6.42413 * 10 ^ -9
8.0893 * 10 ^ -9
दृश्य:
Plot3D[sol[p,e], {p,.1,100}, {e,.1,10000}]
एफडब्ल्यूआईडब्ल्यू, यहां आधा समाधान है: अंश ले लो, इसे तर्कसंगत बनाएं ताकि यह एक बहुपद हो, और जड़ों को ढूंढें। क्या करें छोड़ दिया है लोगों को जो सकारात्मक जब कर रहे हैं का चयन करने के लिए है p
और e
सकारात्मक रहे हैं। इस चरण में समय लगता है (यदि यह बिल्कुल किया जा सकता है), सिवाय इसके कि जब विशिष्ट संख्यात्मक मान दिए जाते हैं p
और e
।
num = Simplify[ff, x >= 0 && p >= 0 && e >= 0] // Together //
Numerator // Simplify[#, x >= 0 && p >= 0 && e >= 0] & //
FactorList // #[[-1, 1]] & // Simplify
(* p Sqrt[-e (-1 + x) (-40000 + p^2 + 2 p x + x^2)] (2 p^6 + 6 p x^4 + p^5 (-4 + 8 x) + 2 p^3 x^2 (-3 + 8 x) + p^4 (-80000 - 2 x + 9 x^2) + 3 x^3 (-80000 + 40000 x + x^3) + 2 p^2 x (-40000 - 60000 x - x^2 + 5 x^3)) - 4 Sqrt[10] e (2 p x^5 + 4 p^3 x^3 (-1 + 2 x) + p^6 (-2 + 3 x) + 2 p^5 x (-3 + 4 x) + p^2 x^3 (-80000 - 2 x + 5 x^2) + x^4 (-80000 + 40000 x + x^3) + p^4 (80000 - 120000 x - 4 x^2 + 7 x^3)) *)
जाँच करें कि दो शब्द हैं (पहले स्पष्ट रूप से युक्त कट्टरपंथी):
Length@num
(* 2 *)
rat = num*MapAt[-# &, num, 1] // Expand // Simplify
(* e (p^2 (-1 + x) (-40000 + p^2 + 2 p x + x^2) (2 p^6 + 6 p x^4 + p^5 (-4 + 8 x) + 2 p^3 x^2 (-3 + 8 x) + p^4 (-80000 - 2 x + 9 x^2) + 3 x^3 (-80000 + 40000 x + x^3) + 2 p^2 x (-40000 - 60000 x - x^2 + 5 x^3))^2 + 160 e (2 p x^5 + 4 p^3 x^3 (-1 + 2 x) + p^6 (-2 + 3 x) + 2 p^5 x (-3 + 4 x) + p^2 x^3 (-80000 - 2 x + 5 x^2) + x^4 (-80000 + 40000 x + x^3) + p^4 (80000 - 120000 x - 4 x^2 + 7 x^3))^2) *)
Solve[rat == 0, x]
(* <15 Root objects> *)
इन जड़ों में विलुप्त समाधान होते हैं, और किसी को उनके साथ काम करने के लिए मापदंडों के लिए संख्यात्मक मूल्यों को प्रतिस्थापित करने की आवश्यकता होती है। यदि ऐसा दृष्टिकोण उपयोगी है, तो शायद मापदंडों को प्रतिस्थापित करना f[x]
और परिणामी समीकरण से निपटना f[x] == 0
बेहतर हो सकता है।