gpt4 book ai didi

Python、数学和 Latex : Display + Compute?

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:18 25 4
gpt4 key购买 nike

假设我有一个依赖于变量 n 的方程组。我想做的是编写一个简单的代码,这样只需选择一个特定的 n,它就会生成该特定 n 值的方程。

这是我在 ipython 上编写的代码示例。它将显示我选择的任何 n 的调和级数的部分和(不对其进行评估)。

from IPython.display import display, Math, Latex

txt = "$1"
n = 100000
long = 0
for i in range(n):
if (i<3 or i > n -3):
str = "+\dfrac{{1}}"
temp = "{0}".format(i+2)
str +="{"+temp+"}"
txt+=str
else:
if long == 0:
txt +="+..."
long+=1
txt +="$"
display(Math(txt))

这会生成以下输出:

enter image description here

当然,我可以将 n 调整为我想要的任何值。

这段代码的编写方式并不能很好地适应其他类型的表达式。我还希望“=::无论值达到我想要的精度::”

有没有一种聪明的方法可以在 ipython 或 Latex 上执行此操作?

最佳答案

从 Python 生成 LaTeX 方程没有什么特别困难的。只是事实上,您必须转义字符串中的 \str.format 中的 {} 之类的内容,这使得它有点乏味。

您可以使用列表理解、列表串联和字符串的 join 方法将示例减少到三行代码。

In [1]: tmp = ['\dfrac{{1}}{{{:.1f}}}'.format(float(n)) for n in range(2, 12)]

In [2]: sl = ['$s'] + tmp[:3] + ['...'] + tmp[-3:]

In [3]: sl
Out[3]:
['$s',
'\\dfrac{1}{2.0}',
'\\dfrac{1}{3.0}',
'\\dfrac{1}{4.0}',
'...',
'\\dfrac{1}{9.0}',
'\\dfrac{1}{10.0}',
'\\dfrac{1}{11.0}']

In [4]: ' + '.join(sl) + '$'
Out[4]: '$s + \\dfrac{1}{2.0} + \\dfrac{1}{3.0} + \\dfrac{1}{4.0} + ... + \\dfrac{1}{9.0} + \\dfrac{1}{10.0} + \\dfrac{1}{11.0}$'

为了计算表达式的结果并对其进行格式化,我编写了一个名为 TeXcalc 的模块。从Python表达式开始,它使用eval来计算结果,并使用ast模块将它们格式化为LaTeX。请记住,eval 的使用使其不适合与不受信任的输入一起使用。

更新:

使用 +/- 的字符串格式可以这样完成;

In [1]: '{:+d}'.format(1)
Out[1]: '+1'

In [2]: '{:+d}'.format(-1)
Out[2]: '-1'

关于Python、数学和 Latex : Display + Compute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29451076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com