นั่นคือเอาต์พุต LaTeX ที่ถูกต้องสำหรับนิพจน์นั้น นั่นคือผลลัพธ์ของอินทิกรัลที่แสดงในรูปของฟังก์ชันไฮเปอร์เรขาคณิต:
https://en.wikipedia.org/wiki/Generalized_hypergeometric_function
คุณอาจไม่รู้จักฟังก์ชันนี้ แต่เป็นฟังก์ชันทางคณิตศาสตร์ทั่วไป และคุณสามารถแทนค่าลงใน is และประเมินค่าได้ ฯลฯ:
In [17]: antiderivative = integrate(Si(x)/x, x)
In [18]: antiderivative
Out[18]:
⎛ │ 2 ⎞
┌─ ⎜ 1/2, 1/2 │ -x ⎟
x⋅ ├─ ⎜ │ ────⎟
2╵ 3 ⎝3/2, 3/2, 3/2 │ 4 ⎠
In [19]: antiderivative.subs(x, 1)
Out[19]:
┌─ ⎛ 1/2, 1/2 │ ⎞
├─ ⎜ │ -1/4⎟
2╵ 3 ⎝3/2, 3/2, 3/2 │ ⎠
In [20]: antiderivative.subs(x, 1).n()
Out[20]: 0.981810799391358
ฟังก์ชันทางคณิตศาสตร์ที่ดูธรรมดาๆ จำนวนมากสามารถแสดงออกมาในรูปของฟังก์ชันไฮเปอร์เรขาคณิตได้ และบางครั้งก็เป็นไปได้ที่จะทำให้ฟังก์ชันเหล่านี้ง่ายขึ้นให้กลายเป็นฟังก์ชันที่เป็นที่รู้จักมากขึ้น:
In [27]: hyper([], [S(1)/2], -x**2/4)
Out[27]:
⎛ │ 2 ⎞
┌─ ⎜ │ -x ⎟
├─ ⎜ │ ────⎟
0╵ 1 ⎝1/2 │ 4 ⎠
In [28]: hyperexpand(_)
Out[28]: cos(x)
การเขียนอินทิกรัลใหม่ในแง่ของฟังก์ชันไฮเปอร์เรขาคณิตจะมีประโยชน์ เนื่องจากรูทีนที่สามารถรวมฟังก์ชันไฮเปอร์เรขาคณิตสามารถทำงานกับอินทิแกรนด์ที่เป็นไปได้ที่หลากหลาย โดยเฉพาะอย่างยิ่งการใช้งานสำหรับฟังก์ชันพิเศษ (เช่น Si
) โดยไม่จำเป็นต้องมีกฎพิเศษสำหรับฟังก์ชันใหม่แต่ละฟังก์ชันที่เราอาจต้องการรวมเข้าด้วยกัน SymPy มีรูทีนการรวมเฉพาะ meijerg
ซึ่งทำสิ่งนี้โดยใช้ฟังก์ชัน Meijer G ทั่วไปยิ่งกว่า:
https://en.wikipedia.org/wiki/Meijer_G-function
SymPy ได้ใช้รูทีน meijerg
สำหรับอินทิกรัลนี้ แม้ว่าดูเหมือนว่าผลลัพธ์จะถูกแปลงเป็นฟังก์ชันไฮเปอร์เรขาคณิตแทนที่จะเป็นฟังก์ชัน G บางครั้งเป็นไปได้ที่จะทำให้ผลลัพธ์ของอินทิกรัลจำกัดเขตง่ายขึ้น แม้ว่าจะคำนวณโดยใช้แอนติเดริเวทีฟซึ่งสามารถแสดงได้ในรูปของฟังก์ชันไฮเปอร์จีโอเมตริก/G เท่านั้น
ในกรณีของอินทิกรัลนี้ ดูเหมือนว่า SymPy จะไม่สามารถแสดงมันโดยใช้ฟังก์ชันอื่นได้ ฉันตรวจสอบ WolframAlpha เช่นกัน ซึ่งให้การแสดงที่เรียบง่ายน้อยกว่า (แต่เทียบเท่า) ในแง่ของฟังก์ชันไฮเปอร์เรขาคณิตเช่นกัน:
https://www.wolframalpha.com/input/?i=integrate+Si%28x%29%2Fx
person
Oscar Benjamin
schedule
13.12.2020