Логарифмический интервал числа - PullRequest
4 голосов
/ 15 октября 2011

Я хотел бы проверить несколько значений интенсивности.

Мне нужно, чтобы они были логарифмически разнесены от 1 до 1000. Все же я просто использую 1, 10, 100, 1000, но я хотел бы иметь больше данных, скажем, 10.

Как я могу найти 10 логарифмически разнесенных чисел от 1 до 1000 в Mathematica?

Ответы [ 3 ]

17 голосов
/ 15 октября 2011

Если a - начало, c - конец, а b - количество интервалов:

{a, b, c} = {1, 10, 1000};
t = (c/a)^(1/b) // N
a*t^Range[b]

1.99526
{1.99526, 3.98107, 7.94328, 15.8489, 31.6228, 63.0957, 125.893, 251.189, 501.187, 1000.}

Я использовал N, чтобы лучше видеть, что у нас есть.

7 голосов
/ 15 октября 2011

Вот один из способов:

In[11]:= base = Block[{a}, a /. NSolve[a^9 == 1000, a][[-1, 1]]]
Out[11]= 2.15443

In[13]:= base^Range[0, 9]
Out[13]= {1., 2.15443, 4.64159, 10., 21.5443, 46.4159, 100., 
  215.443,464.159, 1000.}

EDIT

Вот гораздо более короткий и прямой способ получить то же самое:

In[18]:= N[10^Range[0, 3, 1/3]]

Out[18]= {1., 2.15443, 4.64159, 10., 21.5443, 46.4159, 100., 
215.443, 464.159, 1000.}
4 голосов
/ 15 октября 2011

Решите уравнение x ** 9 = 1000 - тогда ваши числа будут: x ** 0, x ** 1, ... x ** 9.

Примечание: где x ** y означает x для властииз y

...