标签: exponential

使用 Scipy.Optimise Curve_fit 进行指数拟合不起作用

我正在尝试使用 Scipy.Optimise Curve_fit 按照此处的简单示例对某些数据进行指数拟合。

脚本运行时没有错误,但是拟合很糟糕。当我在 curve_fit 的每一步查看 popt 的输出时,从初始参数跳到一系列 1.0s 似乎并没有很好地迭代,尽管它似乎让第三个参数回到了一个有点像样的值:

92.0 0.01 28.0
1.0 1.0 1.0
1.0 1.0 1.0
1.0 1.0 1.0
1.00012207031 1.0 1.0
1.0 1.00012207031 1.0
1.0 1.0 1.00012207031
1.0 1.0 44.3112882656
1.00012207031 1.0 44.3112882656
1.0 1.00012207031 44.3112882656
1.0 1.0 44.3166973584
1.0 1.0 44.3112896048
1.0 1.0 44.3112882656
Run Code Online (Sandbox Code Playgroud)

我不确定是什么导致了这种情况,除了模型可能不太适合数据,尽管我强烈怀疑它应该(物理就是物理)。有人有任何想法吗?我在下面发布了我的(非常简单的)脚本。谢谢。

#!/usr/bin/python

import matplotlib.pyplot as plt
import os
import numpy as np
from scipy.optimize import curve_fit
from matplotlib.ticker import*
from glob import glob
from matplotlib.backends.backend_pdf import PdfPages
import …
Run Code Online (Sandbox Code Playgroud)

python numpy curve-fitting scipy exponential

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

PHP如何将数字指数数转换为字符串?

我有一个以科学计数法存储的数字

2.01421700079E+14

我尝试过使用 float、string、int,但无法得到

0201421700079085来自2.01421700079E+14

1. echo (float)$awb;
2. echo number_format($awb, 0, '', '');
3. echo (int)$awb;
4. echo (string)$awb;
Run Code Online (Sandbox Code Playgroud)
  1. 2.01421700079E+14 = 浮动
  2. 201421700079085 = 数字
  3. 201421700079085=整数
  4. 2.01421700079E+14 = 字符串

php string floating-point number-formatting exponential

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

x87 FPU 计算 e 驱动 x,也许带有泰勒级数?

我正在尝试在 x87 中计算函数 e^x(x 是单精度浮点数)。为了实现这一点,我使用泰勒级数(作为提醒:e^x = 1 + (x^1)/1! + (x^2)/2! + ... + (x^n)/n !)

当我使用 x87 时,我可以计算扩展精度(80 位而不是单精度 32 位)的所有值。

到目前为止,我的认识是:我在 FPU 的两个单独寄存器中拥有被加数和总和(以及其他一些不太重要的东西)。我有一个循环,它不断更新被加数并将其添加到总和中。所以在模糊的伪代码中:

loop:
;update my summand
n = n + 1
summand = summand / n
summand = summand * x
;add the summand to the total sum
sum = sum + summand
Run Code Online (Sandbox Code Playgroud)

我现在的问题是循环的退出条件。我想以一种方式设计它,一旦将被加数添加到总和不会影响单精度总和的值,它就会退出循环,即使我正在找出实现这种退出条件的艰难方法非常复杂,占用大量指令 -> 计算时间。

到目前为止,我唯一的好主意是: 1.:通过 FXTRACT 获取总和和被加数的指数。如果 (exp(sum) - exp(summand)) > 23,被加数将不再影响单精度中的位表示(因为单精度中的尾数有 23 位)--> 所以退出。2.:将被加数与0比较,如果是0显然也不会影响结果了。

我的问题是,对于现有条件,是否有人会比我有更有效的想法?

x86 assembly exponentiation x87 exponential

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

求 R 中的 N 次方根

我们如何找到R中的N次方根?

4^2 = sqrt(16)
Run Code Online (Sandbox Code Playgroud)

但是相反转换的代码片段是什么;

4^7 = ???
Run Code Online (Sandbox Code Playgroud)

r radix exponential

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

如何在 R 中生成负指数分布

我今天手动创建负指数分布,并试图找出更快/更简单的解决方案。首先,我只是手动制作了一个几何序列,如下所示,不断乘以 0.60 直到接近零:

x <- 400
x*.60
Run Code Online (Sandbox Code Playgroud)

这样做大约 20 次,我得到了这个解向量并绘制了分布图,如下所示:

y <- c(400,240,144,86.4, 51.84, 31.104, 18.6624, 11.19744, 6.718464, 4.031078,
       2.418647, 1.451188, .8707129, .5224278, .3134567, .188074, .1128444,
       .06770664, .04062398, .02437439)
plot(y)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然而,我试图找出用 来执行此操作的更简单方法seq,但我只知道如何用算术序列来执行此操作。我尝试重现我在下面所做的事情:

plot(seq(from=400,
    to=1,
    by=-.60))
Run Code Online (Sandbox Code Playgroud)

这显然不会产生相同的效果,绘制时会导致非常线性的下降:

在此输入图像描述

有更简单的解决方案吗?我不得不想象这是 R 中相当基本的函数。

math r exponential

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

3
推荐指数
2
解决办法
3151
查看次数

指数中大O的含义

这是什么表达˚FÑ)= 2 ÖÑ平均,以精确的正式的方式?

big-o exponent asymptotic-complexity exponential

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

对于给定的整数Z,检查Z是否可以写为P ^ Q,其中Q和P是正整数

这是我尝试过的,但它给了我错误的输出.任何人都可以指出错误是什么?

function superPower($n) {
    $response = false;
    $n = abs($n);
    if ($n < 2) { 
       $response = true;
    }
    for ($i=2;$i<$n;$i++) {    
        for ($j=2;$j<$n;$j++) {
            if (pow($i,$j) == $n) {
                $response = true;
            }
        }
    }  

    return $response;   
}
Run Code Online (Sandbox Code Playgroud)

例如,如果我给它编号25,它给出1作为输出.//正确但如果我给它26它仍然给我1错了.

php math exponential

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

如何绘制指数分布

我想绘制指数分布,例如: 在此处输入图片说明

但是我只知道如何模拟遵循指数分布的数据框并绘制它。

data =  data.frame(x=rexp(n = 100000, rate = .65))
m <- ggplot(data, aes(x=data$x))
m + geom_density()
Run Code Online (Sandbox Code Playgroud)

从中我得到: 在此处输入图片说明

如何绘制真实的指数分布而不是样本的分布图?

plot r exponential

3
推荐指数
3
解决办法
2万
查看次数

如何在动作脚本3中将指数数转换为十进制数?

我正面临着在flex中乘以两个十进制数的问题.

当我乘以两个十进制数时,结果就像一个指数数字,所以我不知道如何得到十进制数作为结果,而不是得到一个指数数字.

我使用以下代码进行乘法运算:

var num1:Number = 0.00005;
var num2:Number = 0.000007;
var result:Number = num1 * num2;
Run Code Online (Sandbox Code Playgroud)

在结果变量中,我得到的值为3.5000000000000003E-10.

所以我不知道如何获得十进制数作为结果,而不是如上所述获得指数.

如果有人知道如何解决这个问题请帮我解决.

apache-flex decimal actionscript-3 flex4 exponential

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