Важнейшие математические константы — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Важнейшие математические константы

2017-11-16 337
Важнейшие математические константы 0.00 из 5.00 0 оценок
Заказать работу

 

Обратите внимание, что имена констант начинаются с больших букв

> Pi; evalf(");

> E; evalf(");

> I;

> infinity;

> gamma; evalf (");

Более подробно смотри в ininames.

Авторы всех систем символьных вычислений следуют принципу Кронекера - "Бог создал целые числа - все остальное дело рук человеческих".

Во всех языках представление целых чисел первично, так как в этом случае алгоритмы сложения и умножения становятся, по-крайней мере в принципе, довольно простыми.

Деление представляет значительно более сложную задачу, поскольку метод, изучаемый в школе, не является алгоритмом, так как он требует угадывания цифры частного. Knuth (1981) детально описал эту проблему и предложил алгоритм такого угадывания, который почти всегда является правильным.

В силу этого "ленивого" принципа Maple выдает только целые числа или имена без численных ответов до тех пор пока вы об этом не попросите. Основные команды "принудительного" вычисления

evalb - для булевых выражений,

evalc - для комплексных выражений,

evalf - для операций с плавающей запятой,

evalm - для вычисления матричных выражений.

Пример 3 (вычисление выражений).

> 25/15+23^3;

> evalf(");

> sin(36);

> evalf(");

> sqrt(2+3); evalf(");

Как видим, на экран выводятся только целые числа, пока не попросишь об обратном. Для операции с плавающей точкой можно задать число цифр после запятой, присвоив необходимое число переменной Digits (начальное значение 10).

Совет: не используйте числа с плавающей точкой в промежуточных вычислениях.

Это приводит к потере времени, точности и иногда приводит к совершенно неверным результатам.

Можно объявлять, что переменные зависят друг от друга, т.е. строить функции и отображения. Следует отметить, что зависимость является глобальным свойством, не подчиняющимся блочной структуре. Зависят ли переменные друг от друга можно узнать командой depends

Пример 4 (зависимость).

> depends(sin(x)+cos(z),{x,y});

> depends(int(f(x),x=a..b),x);

> depends(int(f(x),x=a..b),a);

Все наиболее распространенные математические функции уже определены в виде встроенных функций. Часть из них заданы изначально, другие собраны в библиотеки программ (пакеты), которые необходимо загружать по мере необходимости.

 

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

 

Список встроенных функций достаточно велик. Более того, используя дополнительные пакеты данный список можно расширить. Имена функций в пакетах символьных вычислений максимально приближены к стандартным математическим именам. Например, sin, cos, tan, exp, ln, GAMMA, Zeta, или binomial.

Список всех основных функций смотри в inifcns.

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

В пакете Maple это функции:

· simplify - упростить выражение,

· factor - факторизовать,

· expand - разложить (раскрыть все скобки),

· normal - привести выражение к "нормальному" виду,

· convert - переписать в заданном виде,

· coeff - выделить коэффициенты полинома,

· collect - собрать вместе части выражения.

Пока мы достаточно грубо описали эти функции. Используя их в дальнейшей работе, мы более детально изучим их свойства.

Слово "упрощение" допускает множество интерпретаций. Очевидно, что запись (x-1) более "простая", чем (x^2-1)/(x+1), но является ли выражение x^999 - x^998 + x^997 -... -1 более простым, чем (x^1000-1)/(x+1).

На практике каждому пользователю хочется большего, и именно здесь включается в игру субъективность.

Пример 5 (что такое "просто").

Рассмотрим выражение

> x^100-1; simplify(");

Вид этого выражениея "прост" и для компьютера и для пользователя.

Разложим этот полином на множители

> factor(x^100-1);

и попробуем упростить

> simplify(");

Как видно, это выражение так же "просто" для компьютера как и прежнее.

Но если вы получите это выражение в результате своих вычислений, то вряд ли

вид этого выражения удовлетворит вас. Чтобы упростить данное выражение раскроем все скобки

> expand("");

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

Пример 6 (упростить).

> simplify((x^a)^b+4^(1/2), power);

> simplify(exp(a+ln(b*exp(c))));

> simplify(sin(x)^2+cos(x)^2, trig);

Подстановка с помощью данной команды

> f:= -1/3*x^5*y + x^4*y^2 + 1/3*x*y^3 + 1:

> simplify(f, {x^3 = x*y, y^2 = x+1});

Работа с многозначными функциями требует большего труда

> g:=sqrt(x^2);

> simplify(g);

> simplify(g,assume=real);

> simplify(g,assume=positive);

Можно всегда максимально упрощать используемые выражения, это не только приятно для глаза, но и позволяет сократить время работы и размеры необходимой для работы памяти.

Однако и довольно часто, для пользователя различные представления формул могут ассоциироваться с другими формулами. Это позволяет продвинуться в работе значительно дальше и быстрее чем простой счет на компьютере.

Факторизация означает разложение выражения на множители. В лучших алгоритмах факторизации время счета растет медленнее, чем экспоненциально, но быстрее, чем полиномиально. На практике Maple трактует факторизацию достаточно широко.

Пример 7 (факторизовать).

> factor(x^3+5);

> factor(x^3+5, 5^(1/3));

> factor(x^3+5, {5^(1/3),(-3)^(1/2)});

> factor(x^3+5.0);

> factor(sin(x)^2-1);

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

Пример 8 (разложить).

> expand((x+1)*(x+2));

> sin(x+y); expand(");

> exp(x+y); expand(");

> expand(BesselJ(2,t));

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

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

Пример 9 (нормальный вид выражения).

> normal(1/x+x/(x+1));

> normal(1/x+x/(x+1), expanded);

> sin(x)+1/sin(x)^2; normal(");

Команда convert имеет следующий ситаксис: convert(x,type) или convert(x,type,option). Как всегда, типы и опции можно найти в справочнике.

Пример 10 (преобразовать).

> convert(1.23456, fraction);

> (x+a)/(x*(x-b)*(x^2+c)); convert(",parfrac,x);

> sin(x); convert(");

> exp(I*x); convert(",trig);

> convert(evalf(Pi),rational,exact);

Команды collect и coeff приводят выражение к нормальному виду и позволяют явно выделять коэффициенты полинома.

Пример 11 (работа с полиномами).

> f:= x*(x+1)+y*(x+1);

> g:= collect(f,x);

> coeff(g,x,1);

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

> p:= x*y+a*x*y+y*x^2-a*y*x^2+x+a*x:

> collect(p, [x,y], recursive);

> collect(p, [x,y], distributed);

> collect(p, [y,x],recursive);

> collect(p, [y,x], distributed);

Кроме этого, данная команда позволяет выделять часть из целого и не только в полиномах, например

> f:= a*ln(x)-ln(x)*x-x;

> collect(f,ln(x));

Команда combine является аналогом команды collect для функций общего положения, (математический алгоритм команды был разработан только в 1986 году!).

Пример 12 (комбинирование).

> f:=exp(sin(a)*cos(b)) * exp(cos(a)*sin(b));

> combine(f,exp);

> combine(f,[trig,exp]);

Последний вид, по-моему, наиболее приятен для пользователя. Кроме этого данное упрощение, проведенное в промежуточных расчетах, позволит сократить и время работы и размер необходимой памяти.

> combine(Psi(-x)+Psi(x),Psi);

Psi(x) - дигамма функция, определяемая как производная от логарифма гамма функции Psi(x) = diff(ln(GAMMA(x)), x).

 


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.026 с.