Вы можете использовать диапазон:
k_list = range(-4, 4)
Но это только делает целые числа, проблема здесь указав свой шаг. Очевидно, есть бесконечные десятичные числа между -4 и 4, поэтому вам нужно указать, сколько десятичных знаков вы хотите использовать.
Вы можете использовать numpy.arange
для того, чтобы составить список из диапазона и установите значение Инкрементирование
Например
k_list = numpy.arange(-4, 4, 0.5)
будет увеличиваться на 0,5
>>> numpy.arange(-4, 4, 0.5)
>>> [-4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4]
если вы хотите прирост на меньшую величину и, следовательно, получить больший диапазон значений, тогда сделайте 0.5 меньше.
Вам нужно указать приращение, потому что в этом диапазоне есть бесконечные десятичные числа, как указано ранее.
После того, как вы указали свой список, вы можете перебирать свой список с помощью своей функции, чтобы найти корни.
for k in k_list:
some_function(k)
return root
EDIT:
Для этой работы вы, конечно, нужна функция, которая находит корень к, однако, если я понял ваш вопрос правильно, это должно быть просто ваш линейное уравнение, чтобы использовать простой пример:. root = 2k
(математический способ написания это, конечно y=2x
Для простоты давайте просто скажем, ваша функция y=2x
в какой момент ваш сценарий станет
k_list = numpy.arange(-4, 4, 0.5)
for k in k_list:
root = 2*k
return root
И тогда вы просто указать собственное значение 0,5, чтобы решить, что десятичную ваши k
значения
Если, конечно, вы не смотрите на форму квадратичной.В этом случае у нас может быть что-то вроде
y = x^2 - 2x +2
Это делает ваш вопрос несколько более запутанным. Вы, очевидно, нашли корень x, установив y=0
, однако теперь у вас есть одна переменная, которую я себе представляю, что вы подразумеваете под k, которую вы указываете, оставляя сумму, а не формулу.
В этом случае я бы допустил y=k
, а затем укажите ваше значение k
и решите найти свой корень.
например:
y = 32x^2 - 7.2x + 12
let y = k
k = 32x^2 - 7.2x +12
let k = -4 (we'd iterate through your range in reality)
4 = 32x^2 - 7.2x + 12
0 = 32x^2 - 7.2x + 8
and solve for x (aka. root)
Я ожидаю, что есть numpy
или scipy
метод решения формул с несколькими экземплярами одной и той же переменной. Я не эксперт ни в одной из библиотек, хотя я бы не смог посоветовать вам в этом направлении.
Смотрите также: http://docs.scipy.org/doc/numpy/reference/generated/numpy.roots.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.polyval.html#numpy.polyval
очень сложная линейная функция одной переменной? если это не сообщение тролля, вам придется немного объяснить себя. –
Если вы дали мне функцию, я могу расширить свой ответ, чтобы сделать ее лучше. –