अशुभ पीडीई के सिस्टम के साथ पार्सिंग त्रुटि [बग?], गणितज्ञ 12.0.0
बग 12.0 में पेश किया गया और 12.1.1 के माध्यम से जारी रहा - संस्करण में फिक्स्ड: 12.2
मैं 12.0.0 का उपयोग करके निम्नलिखित व्यवहार पाता हूं। (EDIT: मैंने एक मित्र से इसे 12.1.1 में आज़माने के लिए कहा और उसे वही परिणाम मिला।)
यहाँ युग्मित nonlinear PDEs की एक प्रणाली है जो NDSolve
पार्स नहीं कर सकता है (सिस्टम के बारे में चिंता न करें, यह सिर्फ सबसे सरल उदाहरण है जो मैंने पाया है कि यह व्यवहार पैदा करता है):
c = {{1, 0}, {0, v[x, y]}};
alpha = {0, -u[x, y]};
NDSolveValue[{-Inactive[Div][c.Inactive[Grad][u[x, y], {x, y}], {x, y}] == 0,
-Inactive[Div][Inactive[Times][alpha, v[x, y]], {x, y}] ==0}, {u[x, y], v[x, y]},
Element[{x, y}, Disk[]]]
आउटपुट है
NDSolveValue :: स्वभाव: PDE div की त्रुटि [{{1,0}, {0, v}}}। ग्रेड $ 9730]। असंगत समीकरण आयाम।
यह एक बग होने के लिए अत्यंत बुनियादी कार्यक्षमता की तरह लगता है। शायद मुझे कुछ आसान याद आ रहा है। मैंने नकल करने वालों को कॉल करने की कोशिश की, Inactive
ताकि पार्सर को गुणांक की पहचान करने में कोई परेशानी न हो, जो कि नॉनलाइनर सिस्टम के साथ अस्पष्ट हो सकता है।
ध्यान दें कि पार्सिंग एक समान रैखिक समस्या के साथ कोई समस्या नहीं है:
c = {{1, 0}, {0, 1}};
alpha = {0, -1};
वहाँ भी कोई परेशानी नहीं पार्स जब एक आयाम (करने के लिए आश्रित चरों को कम करने है {u}
के बजाय {u,v}
), लेकिन यह (जैसे nonlinear रखने c1 = {{1, 0}, {0, u[x, y]}}
)। तो यह परेशानी कपल और नॉनलाइनर के संयोजन के कारण लगती है।
यह भी ध्यान दें कि एक स्पष्ट वर्कअराउंड है, जिसे "FEM प्रोग्रामिंग" मार्ग पर जाना है और बस के माध्यम से pde गुणांक निर्दिष्ट करना है InitializePDECoefficients
। लेकिन फिर भी ... यहाँ क्या है?
जवाब
यह एक बग है और संस्करण 12.2 में तय किया गया है
c = {{1, 0}, {0, v[x, y]}};
alpha = {0, -u[x, y]};
NDSolveValue[{-Inactive[Div][
c . Inactive[Grad][u[x, y], {x, y}], {x, y}] ==
0, -Inactive[Div][Inactive[Times][alpha, v[x, y]], {x, y}] ==
0}, {u[x, y], v[x, y]}, Element[{x, y}, Disk[]]]
आपको लापता सीमा स्थितियों के बारे में एक अपेक्षित चेतावनी मिलेगी लेकिन इसके अलावा यह एक समाधान देता है।
मैं NDSolve के साथ एक ही बग है। गणितज्ञ 11 के लिए, यह काम करता है। लेकिन एक ही नोटबुक Mathematica 12.0 में चलाया जाता है, यह उत्पादन करता है:
NDSolveValue::ndnum: Encountered non-numerical value for a derivative at t == 0.`.
In[2]:= $Version
Out[2]= "12.0.0 for Microsoft Windows (64-bit) (April 6, 2019)"