小编faz*_*zan的帖子

numpy 的 sin(x) 有多精确?我怎么知道?[需要它来数值求解 x=a*sin(x)]

我正在尝试在 python 中数值求解方程x=a*sin(x),其中a是一些常数。我已经尝试先象征性地求解方程,但似乎这种特殊的表达形式并没有在 sympy 中实现。我也尝试使用 sympy.nsolve(),但它只给了我它遇到的第一个解决方案。

我的计划是这样的:

x=0
a=1
rje=[]
while(x<a):
    if (x-numpy.sin(x))<=error_sin:
        rje.append(x)
    x+=increment

print(rje)
Run Code Online (Sandbox Code Playgroud)

我不想浪费时间或冒丢失解决方案的风险,所以我想知道如何找出我的设备上 numpy 的窦性有多精确(这将成为 error_sin)。

编辑:我尝试使 error_sin 和 increment 都等于我设备的机器 epsilon,但它 a) 需要很长时间,并且 b) sin(x) 不如 x 精确,所以我得到了很多非解决方案(或相当重复的解,因为 sin(x) 的增长比 x 慢得多)。因此这个问题。

编辑2:你能帮我回答一下关于numpy.sin(x)精度的问题吗?我提供有关目的的信息纯粹是为了上下文。

python precision trigonometry numpy numerical-methods

3
推荐指数
1
解决办法
2073
查看次数

在python中找到浮点数量级的最有效方法

我必须进行一些迭代计算,并且每次都需要找到浮点数的数量级(科学记数法中 e 之后的那个位)。目前我正在用一个循环来做这件事,但它占用了很多时间,我的计算需要永远。

while n<1.0:
    order=order-1
    n=n*10
Run Code Online (Sandbox Code Playgroud)

是否有一些函数可以用来从 python 存储浮点数的方式中快速提取这些信息?我被教导浮点数分别存储值和指数。

编辑:它不是重复的,因为我要求最有效的方法。提出的对数实际上比循环慢三倍。

python floating-point performance loops processing-efficiency

1
推荐指数
1
解决办法
8111
查看次数

如何在 jupyter notebook markdown 中编写分段函数?

我正在尝试在 jupyter 上的降价中编写一个分段函数,而 jupyter 令人毛骨悚然。在三个函数中,它只正确显示了一个($n_o$ 一个),即使它们都以相同的方式编写。

有没有更优雅的方式来写这个?

$$ N(a)=  \left\{
\begin{array}{ll}
      n_o & A>A_{krit} \\
      n_o+2 & A=A_{krit} \\
      n_o+4 & A<A_{krit} \\
\end{array} 
\right, $$

gdje je: $$A=\frac{1}{|a|},$$ 

$$ A_{krit}(a)=  \left\{
\begin{array}{ll}
      \frac{\sin(2\pi*floor(\frac{|a|}{2*\pi})+\frac{\pi}{2})}{2\pi*floor(\frac{|a|}{2*\pi})+\frac{\pi}{2}} & a>0 \\
      \frac{\sin(2\pi*floor(\frac{|a|}{2*\pi})+\frac{3\pi}{2})}{2\pi*floor(\frac{|a|}{2*\pi})+\frac{3\pi}{2}} & a<0\\
\end{array} 
\right, $$ i

$$ n_o(a)=  \left\{
\begin{array}{ll}
      |floor(\frac{|a|}{2*\pi})-1| & a>2\pi \\
      |floor(\frac{|a|}{2*\pi})-1|-2 & 0<a<2\pi \land A\leq A_{krit} \\
      floor(\frac{|a|}{2*\pi})+1 & a<0 \\
\end{array} 
\right. $$ 
Run Code Online (Sandbox Code Playgroud)

latex tex python-3.x jupyter jupyter-notebook

1
推荐指数
1
解决办法
4211
查看次数