标签: logarithm

对数图中的负轴

我正在使用matplotlib绘制日志图.我的值从1到35.

fig=plt.figure(figsize=(7,7))
fig.subplots_adjust(top=0.75, right=0.9)
ax=fig.add_subplot(111)
ax.plot(x, y, marker='o', color='black', ls='')
ax.set_xscale('log')
ax.set_yscale('log')
Run Code Online (Sandbox Code Playgroud)

我想从低于1的值开始设置x轴和y轴,但是如果我使用的话

ax.axis([-10,45,-10,45])
Run Code Online (Sandbox Code Playgroud)

它不起作用.我知道这是因为我使用的是对数刻度,但有没有办法解决问题,获得我想要的轴?

python logarithm matplotlib axis-labels

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

pyplot 和半对数刻度:如何使用变换绘制圆

我想在用 pyplot 绘制的图中有一个圆,但我需要在 x 轴上使用对数刻度。

我愿意:

ax = plt.axes()

point1 = plt.Circle((x,y), x, color='r',clip_on=False, 
                    transform = ax.transAxes, alpha = .5)

plt.xscale('log')

current_fig = plt.gcf()

current_fig.gca().add_artist(point1)
Run Code Online (Sandbox Code Playgroud)

如您所见,我希望圆的半径等于 x 坐标。

我的问题是,如果我使用,就像这里写的那样transAxes,那么我得到的圆实际上是一个圆(否则它在x上拉伸,看起来像一个切成两半的椭圆),但x坐标是0。如果,另一方面,我使用transData代替transAxes,然后我得到了 x 坐标的正确值,但圆再次被拉伸并切成两半。

我不太介意拉伸,但我不喜欢切割,我希望它至少是一个完整的椭圆。

知道如何获得我想要的东西吗?

geometry logarithm matplotlib

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

自定义对数Lua(答案有几乎可用于任何语言的技巧)

我正在研究lua的基本转换器,它可以将任何数字的基数转换为另一个基数.为此,我需要一个对数计算器.示例函数(其中logarithm(100, 10)等于log 10(100),等于2):

function logarithm(value, base)
    ... -- Algorithm here
end
print(logarithm(100, 10))
Run Code Online (Sandbox Code Playgroud)

哪个会输出:

2
Run Code Online (Sandbox Code Playgroud)

PS:我希望算法接受任何基数,任何值.

math lua logarithm

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

d3 对数刻度不显示

我想在两个轴上显示对数刻度的等高线图。我找到了这个很好的例子来执行这个任务:

http://plnkr.co/edit/f1VThUpkHxUzxOBXmTCr?p=preview

但是,当我将刻度更改为对数刻度时

var x = d3.scale.log()
    .range([0, width]);
Run Code Online (Sandbox Code Playgroud)

代替

var x = d3.scale.linear()
    .range([0, width]);
Run Code Online (Sandbox Code Playgroud)

轴只是消失了。我认为问题在于 log(0) = -infinity 但是如果我从 1 开始它不会改变任何东西。

问题是什么?

logarithm scale d3.js

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

尝试在没有 Math.h 的情况下计算以 10 为底的对数(非常接近)只是在连接函数时遇到问题

我正在尝试学习如何计算我通过 scanf 输入到我的代码中的任何数字的对数以 10 为底。我想我可以计算出 ln(a) a 是输入的数字。我有一个计算这个的工作代码;但是现在我只想将我的 ln(a) 代码输出的任何数字除以定义的 LN10。这是因为数字的自然对数除以 10 的自然对数将输出我正在努力实现的所需的以 10 为底的对数值。这是我目前的混乱情况。非常感谢任何帮助!

#define _CRT_SECURE_NO_WARNINGS
#define ALMOSTZERO 0.0000000000000000001
#define LN10 2.3025850929940456840179914546844

#include <stdio.h>

double log10(double);
double ln(double);

void main()
{
    {
    double x, a;
    printf("Enter value: ");
    scanf("%lf", &x);
    while (x > 0)
    {
        double log10 = ln(x) * LN10;
        printf("log10(%lf)=%lf\n", x, a);
        printf("Enter value:  ");
        scanf("%lf", &x);
    }
    }
}

double ln(double x)
{
    double sum = 0.0;
    double xmlxpl = (x - 1) / (x + …
Run Code Online (Sandbox Code Playgroud)

c logarithm calculator

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

如何判断Kotlin或Java中的数字是10的幂?

我有一个数字(64位int),并想知道它是否是10的纯函数.也就是说,1跟随0或0以上的零.有没有一种有效的方法来做到这一点,而不涉及将其变成一个字符串?


目前我这样做:

科特林

fun isPowerOf10(n: Long): Boolean {
    val logN = Math.log10(myInt.toDouble())
    return logN != Math.floor(logN)
}
Run Code Online (Sandbox Code Playgroud)

Java的

static boolean isPowerOf10(long n) {
    double logN = Math.log10((double) myInt);
    return logN != Math.floor(logN);
}
Run Code Online (Sandbox Code Playgroud)

但它失败了isPowerOf10(999_999_999_999_999_999)(和负面版本),因为在转换为double并且log10正确输出时精度损失18.0.

java math logarithm kotlin

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

int 类型的算术溢出错误,值 = 4957500001.400178

我知道以前也有人问过类似的问题,但我认为我的情况略有不同。我有一个具有对数值的列,我正在尝试使用以下公式反转它们: SELECT POWER(10,CAST(9.695262723 AS NUMERIC(30,15)))

假设该值9.695262723是该列的值之一。尝试运行此查询时,我得到一个Arithmetic overflow error for type int, value = 4957500001.400178.

另一方面,相同的查询适用于较小的值,例如 SELECT POWER(10,CAST(8.662644523 AS NUMERIC(30,15)))

我如何克服该错误并计算我拥有的 log10 条目的倒数值?仅供参考,表中存在的较大值(以 log10 为单位)是12.27256096

t-sql sql-server casting logarithm arithmetic-overflow

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

如何计算矩阵的基数2对数?

我发现计算矩阵的日志而不是矩阵的每个组件的唯一函数是scipy的logm()函数,但它找到了带有基数e的日志,我需要基数为2的日志.

python logarithm matrix scipy

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

“向后”np.geomspace,因此随着对数函数变得更高,会出现更高的密度

我需要在 0.5 到 1 的对数空间中生成数字。

这段代码实现了:

IN: np.geomspace(.5, 1, num=10) OUT: [0.5, 0.540029869446153, 0.5832645197880583, 0.6299605249474366, 0.6803950000871885, 0.7348672461377994, 0.7937005259840997, 0.8572439828530728, 0.9258747122872905, 1.0]

然而,较小的增量接近 0.5。我希望它们接近 1(因此,向后看,我只是不完全确定正确的术语是什么)。

我已经尝试过了np.geomspace(1, .5, num=10),但它只是以相反的顺序给了我相同的输出。

python geometry numpy logarithm computational-geometry

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

两个整数的幂

我正在尝试解决有关两个整数的幂的问题。问题描述如下:

给定一个适合 32 位有符号整数的正整数,找出它是否可以表示为 A^P,其中 P > 1 和 A > 0。A 和 P 都应该是整数。
示例:
输入:n = 8
输出:true
8 可以表示为 2^3

输入:n = 49
输出:true
49 可以表示为 7^2

现在,我按照以下方法来解决问题。

int Solution::isPower(int A) {
    if(A == 1)
    {
        return true;
    }
    
    for(int x = 2; x <= sqrt(A); x++)
    {
        unsigned long long product = x * x;
        
        while(product <= A && product > 0)
        {
            if(product == A)
            {
                return true;
            }
            
            product = product * x;
        } …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm logarithm

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