gpt4 book ai didi

python - 数学表达式中类型字符串替换的字符串操作

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

想象一下

exp(49/200)+(x-49/200)

我想将任何不是加法或减法的操作作为函数“roundn”的参数传递于是我的表情变成了

roundn(exp(roundn(49/200, n)), n) + (x - roundn(49/200, n)

好吧,我要操作的表达式是这样的:

exp(49/200)+exp(49/200)*(x-49/200)+1/2*exp(49/200)*(x-49/200)^2+1/6*exp(49/200)*(x-49/200)^3+1/24*exp(49/200)*(x-49/200)^4+1/120*exp(49/200)*(x-49/200)^5+1/720*exp(49/200)*(x-49/200)^6+1/5040*exp(49/200)*(x-49/200)^7+1/40320*exp(49/200)*(x-49/200)^8+1/362880*exp(49/200)*(x-49/200)^9+1/3628800*exp(49/200)*(x-49/200)^10+1/39916800*exp(49/200)*(x-49/200)^11

最佳答案

也许你认为你想这样做,但你并不是真的想这样做。 Python 新手通常认为他们需要对 float 进行舍入,因为在计算时他们会得到意想不到的结果(比如 1.0/10 = 0.100000000000001)。我没有对您的表达式进行一些愚蠢的字符串替换,而是为 round(49/200,n) 创建了一个变量,并进行了一些格式清理。另外exp(49/200)不需要求13次,只求一次,引用计算值。

zz = round(49/200,n)
e_zz = exp(zz)
ans = (e_zz +
e_zz * (x-zz) +
1/2 * e_zz * (x-zz)**2 +
1/6 * e_zz * (x-zz)**3 +
1/24 * e_zz * (x-zz)**4 +
1/120 * e_zz * (x-zz)**5 +
1/720 * e_zz * (x-zz)**6 +
1/5040 * e_zz * (x-zz)**7 +
1/40320 * e_zz * (x-zz)**8 +
1/362880 * e_zz * (x-zz)**9 +
1/3628800 * e_zz * (x-zz)**10 +
1/39916800 * e_zz * (x-zz)**11)

将 e 提高到一个四舍五入的数字几乎是不合适的。同样,将四舍五入的数字提高到 11 次方。 (另请注意,在 Python 中,求幂运算符是 **,而不是 ^。)

已编辑:如果 S.Lott 没有建议代数简化,我会保持原样。但是 * e_zz 可以从每个术语中分解出来,给出更简单(并且可能更快)的方法:

zz = round(49/200,n)
e_zz = exp(zz)
ans = e_zz * (1 +
(x-zz) +
1/2 * (x-zz)**2 +
1/6 * (x-zz)**3 +
1/24 * (x-zz)**4 +
1/120 * (x-zz)**5 +
1/720 * (x-zz)**6 +
1/5040 * (x-zz)**7 +
1/40320 * (x-zz)**8 +
1/362880 * (x-zz)**9 +
1/3628800 * (x-zz)**10 +
1/39916800 * (x-zz)**11)

关于python - 数学表达式中类型字符串替换的字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4254420/

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