ฉันจะแสดงแบบอักษรสไตล์ Latex โดยใช้ Jupyter Notebook Extension ใน VS Code ได้อย่างไร

ฉันกำลังทำการบ้านโดยใช้ Jupyter Notebook Extension และโมดูล Sympy ของ Python ใน VS Code ฉันกำลังพยายามแสดงสมการในฟอนต์ Latex แต่มันไม่ทำงานอย่างที่ฉันจินตนาการ มีใครพอจะเดาได้ไหมว่าปัญหาจะเป็นอย่างไร? ฉันได้เพิ่มภาพที่ถ่ายซึ่งเกี่ยวข้องกับปัญหาแล้ว

ฉันใช้

  • VS รหัส 1.52
  • Jupyter Notebook Extension v2020.12.414227025
  • ส่วนขยาย Python v2020.11.371526539

ขอขอบคุณและขอให้มีวันอาทิตย์ที่ดี!

เวลาผมพิมพ์สมการสุ่มตามข้างล่างนี้ก็จะแสดงผลออกมาแบบนี้

อย่างไรก็ตาม เมื่อฉันพิมพ์สมการบางอย่างที่พบในออนไลน์ สมการนั้นจะแสดงเป็นฟอนต์ลาเท็กซ์ที่เหมาะสม


person Sang MuMu    schedule 13.12.2020    source แหล่งที่มา


คำตอบ (2)


นั่นคือเอาต์พุต 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
comment
โอ้แน่นอน! ฉันควรจะดูให้ละเอียดกว่านี้ - person Oscar Benjamin; 14.12.2020

ฉันไม่รู้ว่าทำไมคุณถึงมีเอาต์พุตสองประเภทที่แตกต่างกัน (Unicode และ LaTeX) แต่ฉันสามารถบอกคุณได้ว่าคุณมั่นใจได้อย่างไรว่าการเรนเดอร์ LaTeX เป็นค่าเริ่มต้นที่ไม่ล้มเหลว

from sympy import *
init_printing(use_latex=True)
...
person gboffi    schedule 14.12.2020
comment
ฉันได้ลองวิธีนี้แล้ว แต่ก็ไม่ได้ผลเช่นกัน ;( แต่ขอบคุณสำหรับความช่วยเหลือของคุณนะ!! - person Sang MuMu; 14.12.2020