Максимумы и преобразование вывода переменной в плавающее

Я могу получить максимумы для решения уравнения, но не могу понять, почему он не покажет его числовое значение без ввода дополнительной команды / шага с плавающей точкой (%). Есть ли возможность автоматически конвертировать решенную переменную в числовой формат.

Пример уравнения ниже:

kill(all); alpha:float(.0014931); endfreq:50; dursec:1200; solve(alpha=log(startfreq/endfreq)/dursec,float(startfreq));

то, что возвращается, являетсяstartfreq=50%e(44793/25000)

Я бы хотел сказать 299,988 вместо

1 ответ

Итак, Maxima предпочитает точные результаты (т. Е. Целые числа, рациональные числа и символические константы), а не неточные (т. Е. Числа с плавающей и большой чисел). Если вы хотите работать только с числовыми решениями, взгляните на find_root, Например:

(%i1) [alpha, endfreq, dursec] : [0.0014931, 50, 1200] $
(%i2) find_root (alpha = log(startfreq / endfreq)/dursec, startfreq, 1, 500);
(%o2)                          299.9881594652534

Обратите внимание, что использовать find_root Вы должны знать интервал (здесь от 1 до 500), который содержит корень уравнения.

Другие вопросы по тегам