Часто задаваемые вопросы
Для чего нужна «Бумажка»?
«Бумажка» предназначена для несложных инженерных расчетов и, по сути, является командным калькулятором, написанным на языке Python. Программа работает с числами с плавающей запятой, включая комплексные, и реализует более удобный для пользователя (надеюсь) доступ к математическим функциям Питона. Собственно, пока программа находится в состоянии демонстрационной бета-версии. Программа для своей работы требует следующее:
интерпретатор языка Python версии 2.5 или 2.6;
модули math, cmath и random;
модуль Tkinter (и TCL/Tk, соответственно);
модули string, os и sys;
модуль pickle;
модуль random;
разрешение экрана не менее 800х400;
наличие графической оболочки (для *nix-систем);
наличие мыши и клавиатуры.
Как работать в программе?
Мысленно представляете последовательность расчета и пишете формулы и команды в специальной строке снизу, заканчивая ввод каждой нажатием клавиши Enter. По необходимости сохраняете расчет в файл с помощью пункта Save в соответствующем меню. Получится такой список выражений, реализующий Ваш расчет. При редактировании выражений расчет будет произведен повторно, начиная с отредактированного выражения.
Можно ли в программе объявлять переменные и функции?
Да. Для этого «Бумажка» и делалась. Переменная объявляется так:
x:=значение,
где x – имя переменной, а значение может быть числом или выражением, в том числе с использованием ранее объявленных переменных и функций.
Функция объявляется так:
y(x1;x2;...;xn):=выражение с переменными x1, x2 и т.д.
Ранее объявленные функции и переменные это те, что находятся выше в списке произведенных вычислений, а не те, что Вы написали или отредактировали последними.
Как получить ключ (серийный номер, кряк), чтобы программа перестала быть демонстрационной?
Никак. «Бумажка» открыта по определению, т. к. написана на Питоне и представляет собой сам исходник. Хочется больше функций и возможностей — пишите сами.
Зачем этот калькулятор, если есть Mathcad?
Вообще, практически любой математический пакет перекрывает возможности «Бумажки», но есть ряд моментов.
- Некоторые вещи для расчета не требуют мощности Mathcad.
- Кроссплатформенность.
- Бесплатность и возможность модификации.
- Легковесность (имеется в виду размер файлов самой программы, а не Питона).
В случае более серьезных или специфических расчетов можно порекомендовать нормальные продукты:
Maxima (типичная CAS - система компьютерной алгебры, GNUтый ответ Mapple и MuPad);
GAP (алгебра групп, весьма специфическая вещь);
Yacas;
Sage (еще один зверь на Питоне);
Eigenmath (легковесная, но довольно умелая CAS);
Smath Studio (мечта школьника и студента 1-2 курсов);
Xcas (мощная программа, объединяющая достоинства численных и символьных пакетов);
Yorik.
Как скопировать выражение?
Выделите выражение в поле ввода и нажмите Ctrl+C или среднюю кнопку мыши. Потом Ctrl+V для вставки в нужном месте. Под всякими линуксами комбинации клавиш могут быть иными, например, Shift+Ctrl+C и Shift+Ctrl+V.
Как вставить формулу или выражение между существующими?
Отметьте мышью или клавишами «Вверх» и «Вниз» выражение, перед которым Вы забыли вставить что-то нужное для расчета. Используйте сочетание клавиш <Alt+Insert> или команду «New place» (новое место) из меню команд.
Как нарисовать график?
Сформировать последовательности значений для оси абсцисс и оси ординат, присвоив им имена, как обычным переменным, например:
X:=-3;-2;-1;0;1;2;3
Y:=5;4;3;2;3;4;5
Выбрать нужное место для графика в нужном месте расчета (Alt+Ins и стереть появившуюся надпись «New», т. к. она нужна только для наглядности), но обязательно после объявленных последовательностей. Если график оказывается в конце расчета, Alt+Ins нажимать не надо, достаточно воспользоваться клавишей «Вниз».
Использовать команду plot из меню Commands. В появившемся окошке указать имена графика и сформированных последовательностей для осей и нажать кнопку «ОК». В строке ввода должна появиться команда: plot(“graph_name”;X;Y). Теперь ставим курсор в строку и нажимаем Enter.
Примечание.
Если точек должно быть много, то используйте для формирования последовательностей команды range и map.
Как нарисовать несколько графиков на одном рисунке?
Сложите команды для построения графиков:
plot(...)+plot (...)+...
Как вычислить выражение несколько раз?
Используйте команды chain, map и range.
Как решить систему линейных алгебраических уравнений?
Объявите матрицу коэффициентов A, вектор-столбец правых частей B, а дальше вычисляем A^(-1)*B, например.
Как сделать матрицу большого размера?
Если нужно сформировать большую матрицу, то можно поступить тремя способами:
использовать команду matrix и корячиться с вбиванием всех строк;
задать все строки матрицы в виде последовательностей и перечислить в качестве аргументов команды matrix все имена заданных последовательностей;
создать текстовый файл, в котором написать все содержимое матрицы по строкам (значения в строке должны быть отделены друг от друга одинаковыми разделителями, например, точкой с запятой) и использовать команду mfromfile.
Как получить обратную матрицу?
Задайте исходную квадратную матрицу и возведите ее в степень (-1) или разделите число 1 на эту матрицу или используйте функцию inv().
Как найти корни уравнения?
Использовать команду roots. Обязательно указывайте диапазон поиска корней, иначе программа найдет этот диапазон сама и результат Вам не понравится.
Как экспортировать данные расчета?
Данные следует оформить в виде матрицы, а затем использовать команду mtofile.
Как использовать в программе собственные функции?
Напишите на языке Питон программу, реализующую вашу функцию. Внутри Вашей программы объявите переменную (пусть это будет переменная z) и присвойте ей результат выполнения Вашей функции. Если функция должна принимать какие-то значения (пусть это будет число 1.2) в качестве аргумента из «Бумажки», то следует использовать некоторую переменную (например x), не объявляя ее заранее (т. е. в программе должна отсутствовать строка x=1.2). Понятно, что в таком виде Ваша программа не сможет выполниться. Поэтому в команде execfile следует указать используемую в качестве аргумента переменную:
execfile(“my_script.py”;”z”;”x”;1.2),
где z – переменная внутри Вашей программы, где хранится результат;
x – та самая переменная, которую «забыли» объявить;
my_script.py — имя файла с Вашей программой;
1.2 — то, чему должен быть равен x (перед выполнением Вашей программы будет выполнено exec(“x=1.2”), поэтому и не надо объявлять x внутри самой программы).
Помните, что в имени файла и внутри самого файла можно использовать только символы ASCII, в отличие от функций mtofile и mfromfile.
Как прервать вычисление?
Сделайте активным окно консоли (например, щелкнув по нему левой кнопкой мыши). Нажмите Ctrl+C.