Опубликован: 19.11.2012 | Уровень: для всех | Доступ: платный | ВУЗ: Национальный исследовательский университет "Высшая Школа Экономики"
Лекция 12:

Системы компьютерной математики (СКМ)

Здесь нетрудно догадаться, что в символике MathCad (logax) и tg(x) изображаются как log(x,a) и tan(x) соответственно. Успешно решается и более сложный пример:

\lim_{\delta \to 0} \frac{(ln(tan(x+\delta))-ln(tan(x)))}{\delta} \to \frac{tan(x)^2+1}{tan(x)}

А вот совсем простую задачу:

\lim_{\delta \to 0} \frac{\left[(x+\delta)^n-x^n \right]}{\delta}

в общем виде решить не получается – нужно задать конкретное значение n.

Для показательной функции a^x:

a^{x+\delta}-a^x parfrac, a^x \to a^{\delta} \cdot a^x-a^x

\lim_{\delta \to 0} \frac{\left(a^{x+\delta}-a^x \right)}{\delta} \to a^x \cdot ln(a)

А теперь еще забавней – проинтегрируем функцию:

y=a^x

по определению через предел интегральной суммы. Здесь особенность – верхний предел зададим параметрически через Х. Для этого составим интегральную сумму:

\lim_{n \to \infty} \sum_{k=0}^n \left[ \left( \frac{x}{n} \right) \cdot a^{x{\frac{k}{n}}} \right]

и вычислим ее в MathCad:

\lim_{n \to \infty} \sum_{k=0}^n \left[ \left( \frac{x}{n} \right) \cdot a^{x{\frac{k}{n}}} \right] \to \frac{a^x-1}{ln(a)}

При этом все константы следует собрать вместе в постоянную интегрирования С:

 \frac {a^x-1}{ln(a)}=\frac{a^x}{ln(a)}+C

и тогда имеем первообразную, а заодно и красивую демонстрацию теоремы Ньютона-Лейбница.

Теперь вычисление суммы ряда. Все очень просто и правильно:

 \sum_{n=0}^{\infty} \frac{x^n}{n!} \to e^x

Воспользуемся известным многим поколениям абитуриентов пособием СканавиС.И.[ 8] – задача № 4.077 из раздела "В", решение которой показывает не только "более высокое качество усвоения школьной программы <...> но и позволит экзаменующемуся обнаружить способность к самостоятельному логическому мышлению" [9].

\sum_{n=1}^{m} \left[n \left(2^n \right) \right] \to 2^{m+1} \cdot (m-1) -\frac{m(m+1)}{2}+2

Рассмотрим разложение в ряд Тейлора. Оно выполняется при помощи оператора Series c панели Simbolic. В маркеры оператора Series последовательно заносятся через запятую: исходная функция, имя аргумента, количество членов ряда.

(cos(x)) series,x=0,6 \to 1-\frac{x^2}{2} +\frac{x^4}{24}d(x)

Теперь зададим 44 члена

(cos(x)) series,x=0,44 \to 1-\frac{x^2}{2} +\frac{x^4}{24} -\frac{x^6}{720}d(x)

Решение уравнений – одна из самых актуальных и одновременно самых сложных задач в среде MathCad. Оно может быть выполнено аналитически, численно или графическим способом. Аналитический способ решения предпочтителен, поскольку, не говоря об отсутствии погрешностей вычисления, его вид позволяет детально проанализировать результаты и легко и наглядно использовать их в последующих исследованиях либо в практических целях. К сожалению, возможность аналитического решения диктует жесткие условия, которые мы не будем обсуждать. Отметим, например, что переменные должны быть в степени не выше четвертой (за исключением частных случаев), а используемые функции – одинакового вида. На практике, в прикладных задачах, любое соотношение, полученное в виде композиции элементарных функций (а не как решение сложной системы дифференциальных уравнений), является ярким событием. Вся масса уравнений, приводимых в учебных пособиях, является материалом, специально подобранным в чисто учебных целях.

Самым универсальным способом решения уравнений является графический, возможности использования которого в MathCad обширны.

Найдем в общем виде корни полиномиального уравнения одной переменной (степенного многочлена) – это наиболее часто встречающаяся практическая задача. Зададим исходный полином четвертой степени

a \bullet x^4+b \bullet x^3+c \bullet x^2+d \bullet x+g=0

Среда MathCad выполняет поиск решения уравнения одной переменой посредством оператора salve c панели "Simbolic". Задача успешно выполняется, и хотя выдается сообщение, что не хватает ресурсов для вывода решения на экран, и полюбоваться им нельзя,

salve

но само решение получено и для дальнейших вычислений им можно пользоваться.

Попробуем получить это решение другим способом: через пункт Simbolic главного меню. Решение получено и в этом случае выводится на экран, но его размеры (более 40-ка страниц текста) превышают возможности буфера ОС, и даже скопировать его по частям не удается. Так проявляется еще одна проблема символьных расчетов, особенно для решений в общем виде – громоздкие выражения, как правило, неудобные для анализа и последующих преобразований. Выход – упрощать выражения, например, разложением в степенные ряды.

Как иллюстрация, на рис.12.6 приводится для кубического уравнения: формула для одного из корней – целиком, а для другого корня – только фрагмент формулы. Размеры и здесь впечатляют.

Теперь попробуем решить полиномиальное уравнение с заданными постоянными коэффициентами. Составим заготовку

(x-11)(x-222)(x-3333)(x-44444)(x-5555555) ( *)

и при помощи оператора expand получим полином:

(x-11)(x-222)(x-3333)(x-44444)(x-5555555) expand \to x^5-5603564x^4+266881461885x^3-884847515133875x^2+19239696969998319834x-2009655257834454120

Первый корень и фрагмент второго корня кубического уравнения

Рис. 12.6. Первый корень и фрагмент второго корня кубического уравнения

Полученные коэффициенты перенесем через буфер ОС в текстовый файл .txt, созданный, например, при помощи приложения ОС "Блокнот", а оттуда вернем обратно через буфер ОС в MathCad, который перед тем перезагрузим, чтобы исключить возможность "подсказки" (заодно убедимся, как легко и удобно переносить числа в текстовый документ и обратно. А вот простейшее выражение, содержащее, например, символ радикала, запомнить можно, но вернуть не получится).

Никаких трудностей не возникло, хотя размеры чисел значительно превосходят представление данных целого типа для многих алгоритмических языков высокого уровня. Даже в случае полинома пятой степени решение легко получается в символьном виде, для этого следует: вставить оператор solve c панели Symbolic, через запятую указать имя аргумента "х" и нажать Enter.

x^5-5603564x^4+266881461885x^3-884847515133875x^2+19239696969998319834x-2009655257834454120 solve,x \to $$\begin{pmatrix}
11\\
222\\
3333\\
44444\\
5555555
\end{pmatrix}$$

В том, что решение найдено именно в символьном виде, а не численно, легко убедиться, записав исходный полином с иррациональными корнями, например:

  1. Подготовим полином:

    (x- \sqrt{5})(x-2)(x-3)(x-4)(x-5) expand,x \to 120x-71\sqrt{5}x^2+14 \sqrt{5}x^3-\sqrt{5}x^4-154x^2+71x^3-14x^4+x^5+154 \sqrt{5}x-120 \sqrt{5} collect \to x^5+(-\sqrt{5}-14)x^4 +(14 \sqrt{5}+71)x^3+(-71\sqrt{5-154})x^2+(154 \sqrt{5}+120)x-120 \sqrt{5}

  2. Найдем решение:

    x^5+(-\sqrt{5}-14)x^4 +(14 \sqrt{5}+71)x^3+(-71\sqrt{5-154})x^2+(154 \sqrt{5}+120)x-120 \sqrt{5} solve,x \to  $$\begin{pmatrix}
2\\
3\\
4\\
5\\
-\sqrt{5}
\end{pmatrix}$$

Очевидно, что ответ получен в символьной форме.

По данным [6], СКМ MathCad при аналитическом решении сначала пытается найти ответ в символьном виде, а в случае неудачи переходит к численному решению задачи автоматически.

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

Пример, неверно решаемый в СКМ MathCad 13:

\frac{\sqrt{x}-3}{x-2} > 0 solve,x \to $$\begin{pmatrix}
x < 2\\
9 < x
\end{pmatrix}$$

Х должен быть не меньше 0; правильно он решен в СКМ MathCad 14, да и ответ выглядит привлекательней:

\frac{\sqrt{x}-3}{x-2} > 0 solve,x \to 9 < x \lor 0 \le x < 2

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

\frac{d}{d \blacksquare} \blacksquare

с панели Symbolic и занесем в него исходное выражение Х^Х:

\frac{d}{dx} x^x

результат получается после выполнения оператора \to.

\frac{d}{dx} x^x \to x \cdot x^{x-1}+x^x \cdot ln(x)

Проверим

\int x \cdot x^{x-1}+x^x \cdot ln(x) dx \to x^x

В случае аналитического интегрирования сложнее: и жестко заданного алгоритма нет, и, вообще, в элементарных функциях не для каждой существует первообразная. Интегрирование – это искусство. MathCad и здесь на высоте. Хотя при решении следующего интеграла в общем виде выдается только один вариант (для действительных корней знаменателя),

\int \frac{1}{x^2+bx+c}dx \to \frac {atan \left( \frac{ \frac{b}{2}+x}{\sqrt{c- \frac{b^2}{4}}} \right)}{\sqrt{c- \frac{b^2}{4}}}

при решении с конкретными значениями – все верно.

\int \frac{1}{x^2+4x+1}dx \to -  \frac {\sqrt{3} atanh \left[ \frac{\sqrt{3}(x+2)}{3} \right] }{3} - корни действительные,

\int \frac{1}{x^2+x+1}dx \to - \frac { 2 \sqrt{3} atan \left[ \frac{2 \sqrt{3} \left (x+\frac{1}{2} \right) }{3} \right] }{3} - корни мнимые.

Теперь сложнее:

\int \frac {1}{(x^2+4x+1)^2}dx \to \frac{\sqrt{3}ln(x+\sqrt{3}+2)}{36} - \frac{\sqrt{3}ln(x-\sqrt{3}+2)}{36} - \frac {\frac{x}{6} + \frac{1}{3}}{x^2+4x+1}

Проверим:

\frac{d}{dx} \left( \frac{\sqrt{3}ln(x+\sqrt{3}+2)}{36} - \frac{\sqrt{3}ln(x-\sqrt{3}+2)}{36} - \frac {\frac{x}{6} + \frac{1}{3}}{x^2+4x+1} \right) \to simplify \ to \frac {1}{(x^2+4x+1)^2}

Следующий пример демонстрирует интегрирование тригонометрических функций:

\int \frac{1}{a+b \cdot sin(x)+c \cdot cos(x)} dx \to \frac{2atan \left[ \frac {b+tan \left( \frac{x}{2} \right) \cdot (a-c)}{\sqrt{a^2-b^2-c^2}}   \right]}{\sqrt{a^2-b^2-c^2}}

Решается и такой интеграл:

\int e^{ax} cos(bx)dx \to \frac {e^{ax}(acos(bx)+bsin(bx))}{a^2+b^2}

Читатель, несомненно, вспомнит достаточно изощренный способ его нахождения, сводящийся к интегрированию по частям и в результате – к получению уравнения относительно самого этого интеграла; решение этого уравнения и дает искомый результат [10].

Среда MathCad также позволяет дифференцировать по параметру определенный интеграл с подынтегральной функцией и пределами интегрирования, зависящими от этого параметра:

\frac{d}{dy} \int^{2y}_y (e^xy)dx \to e^{2y}-e^y-y(e^y-2e^{2y})

Действия с матрицами охватывают весь стандартный набор операторов алгебры матриц. На панели Symbolic расположены три оператора: М^Т, М^(-1) и |M| для транспонирования, обращения и поиска определителя соответственно. Остальные операторы выполняются при помощи функций (в количестве 47 для MathCad 14) раздела Vector and Matrix меню Insert / Function.

В качестве примера приведем символьный расчет определителя матрицы 3*3:

|M| \to \left| \begin{pmatrix}
a & b & c\\
d & e & f\\
h & q & k
\end{pmatrix} \right| \to bfh-bdk-afg+cdq-che+ake

Связь с MS Excel достигается встроенными средствами и специальным расширением MathCad Add – In For Excel. В первом случае легко осуществляется вставка диапазона ячеек из Excel в переменную MathCad при помощи буфера ОС (команды "Копировать/Вставить"). Можно вставить и связать фрагмент таблицы Excel документ MathCad при помощи команды меню "Правка/Специальная вставка". При этом текущие изменения в документе Excel будут сразу же отражаться во вставленном в MathCad фрагменте, откуда их легко вручную можно скопировать в любую переменную MathCad. Но вот связать переменную MathCad с ячейкой Excel, чтобы все изменения выполнялись автоматически, можно только при помощи программного расширения MathCad Add – In For Excel.

Аннна Миллер
Аннна Миллер
Екатерина Дмитриева
Екатерина Дмитриева
Марина Сафонова
Марина Сафонова
Россия
Лидия Белова
Лидия Белова
Россия