Физический калькулятор

Данная программа представляет собой интерпретатор специального языка для задания математических выражений. Поддерживаются следующие функции:

  1. Арифметические операции с числами с плавающей точкой
  2. Поддержка переменных и функций
  3. Предопределенные математические и физические константы (π, e, k, g...) и функции (sin, log, arcsin...)
  4. Вычисление с учетом погрешностей в линейном приближении (5,1±0,3)
  5. Вычисление с векторами (поточечное применение любых числовых операций, и предопределенные функции для работы с целыми векторами)
  6. Функция загрузки программ из файла
  7. Загрузка данных из файла CSV
  8. Управление через консоль

Комманды

def

def var-name = expression-value
def func-name([arg1[, ...] ]) = expression-value
  Example:
def x=100
def len(x,y) = x^2 + y^2

Команда определяет новую переменную или функцию. Если объект с таким именем уже существует, возникает ошибка.

undef

undef name

Удаляет определение объекта name.

eval

eval expression

Вычисляет значение выражения. Результат печатает в консоль. Не влияет на определенные переменные или функции.

print

print name

Печатает определение объекта name.

help

Печатает справку по командам в консоль.

exit

Выход из программы.

load

load file-path

Загружает программу из файла file-path и импортировать символы из нее.

csv-load

csv-load file-path var1[,var2[, ...]]
   Example:
csv-load data1.csv id,x,y

Загружает CSV файл в переменные (вектора). file-path не должен содержать пробелов. Переменные, в которые будут загружены вектора значений соответсвующих столбцов CSV-файла, перечисляются через запятую без пробелов.

Пример:

csv-load data1.csv id,x,y

Содержимое файла data1.csv:

1,2.0,20.0
2,3.0,30.0
3,4.0,41.0

Результат:

eval id
{1,2,3}
eval x
{2,3,4}
eval y
{20,30,41}

Язык

Основы. Математические выражения записываются в инфиксной нотации. Для управления приоритетом опреаций используются круглые скобки. Аргументы при вызове функции передаются в круглый скобках через запятую.

4+5*(3+1)
Sin(x)

Арифметические операции. Приоритеты.

Приоритет Знак Операция
4^степень
3*умножение
/деление
2+сложение
-вычитание
1=присвоение

Запись чисел Число без погрешностей записывается десятичной записью с использованием точки (3.14159265), возможно с использованием экспоненциальной формы (6.02e+23). Для записи погрешностей используются два знака ' — для абсолютной погрешности, и ~ — для относительной погрешности (0.01 означает погрешность 1 %) (например, 3.142'0.001, 3.142~0.01). При указании погрешности в экспоненциальной форме, e пишется после указания погрешности (например, 6.02'0.01e+23).

Определения переменных и функций, например:

x = 1.5
y = x + 2.0
len(x,y) = Sqrt( x*x + y*y )

Встроенные константы

ОбозначениеНазваниеЗначениеЕдиницы
_PIЧисло π3.14159265358979323846
_EЧисло e2.71828182845904523536
_cСкорость света299792458м/с
_gГравитационное ускорение9.80665м/с
_GГравитационная постоянная6.67384·10−11Н·м2·кг−2
_VmМолярный объем ид. газа2.24141·10−2м3·моль−1
_NAЧисло Авогадро6.02214078·1023моль−1
_eЗаряд электрона1.60217656535·10−19Кл
_meМасса электрона9.1093829140·10−31кг
_mpМасса протона1.67262177774·10−27кг
_hПостоянная Планка6.6260692729·10−34Дж·с
_kПостоянная Больцмана1.380648813·10−23Дж·К−1

Встроенные функции

ВызовНазваниеОписание
Sqrt(x)Квадратный корень
Abs(x)Модуль числа
Log(x)Натуральный логарифм
Exp(x)Экспонента
Sin(x)СинусАргумент в радианах
Cos(x)КосинусАргумент в радианах
Tan(x)ТангенсАргумент в радианах
ArcSin(x)АрсинусРезультат в радианах
ArcCos(x)АрккосинусРезультат в радианах
ArcTan(x)АрктангенсРезультат в радианах
ArcTan2(y,x)Арктангенс=ArcTan(y/x), с сохранением четверти
Mean(x)Среднее арифм.Ошибка считает как стандартное отколонение
Average(x)Среднее арифм.Погрешность считает, как средняя погрешность элементов вектора
Length(x)Длина вектораВозвращает число элементов в векторе
Sum(x)СуммаСумма элементов вектора
Dot(x,y)Скалярное произведение
Norm(x)Эвклидова норма вектора

Сайт создан исключительно в образовательных целях. По всем вопросам с администрацией сайта можно связаться по электронной почте admin@dcsr.ru. Вход для редактора.