Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

main_matan-2013-10Nov2013

.pdf
Скачиваний:
13
Добавлен:
21.05.2015
Размер:
396.21 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Ю. К. Тимошенко

РЕШЕНИЕ ИЗБРАННЫХ ЗАДАЧ МАТЕМАТИЧЕСКОГО АНАЛИЗА

В СИСТЕМЕ КОМПЬЮТЕРНОЙ МАТЕМАТИКИ MAXIMA

Примеры и задания для лабораторного практикума

ЧЕРНОВИК ВЕРСИЯ ОТ 10.11.2013

Воронежский государственный университет

2013

Кафедра математического и прикладного анализа, Тимошенко Ю.К.

1

Содержание

Содержание

1

1 MAXIMA: базовые понятия

2

1.1Общие сведения и установка . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2Числовые константы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Последовательности. Пределы последовательностей. Функции одной

 

переменной: пределы, графики, производные, экстремумы, ряд Тейло-

 

ра.

 

7

2.1

Примеры суммирования последовательностей . . . . . . . . . . . . . .

7

2.2

Примеры вычисления пределов последовательностей . . . . . . . . . .

7

2.3

Функции: простые преобразования . . . . . . . . . . . . . . . . . . . .

8

2.4

Примеры вычисления пределов функций . . . . . . . . . . . . . . . . .

9

2.5

Примеры вычисления производных . . . . . . . . . . . . . . . . . . . .

10

2.6

Примеры построения графиков функций . . . . . . . . . . . . . . . . .

11

2.7Примеры вычисления экстремумов функций . . . . . . . . . . . . . . . 18

2.8Примеры разложения функций в ряд Тейлора . . . . . . . . . . . . . . 18

2.9Примеры суммирования рядов с абсолютной и машинной точностью . 18

2.10Задания для самостоятельного решения . . . . . . . . . . . . . . . . . . 18

Предметный указатель

19

Список литературы

20

Кафедра математического и прикладного анализа, Тимошенко Ю.К.

2

1. MAXIMA: базовые понятия

1.1. Общие сведения и установка

За последние двадцать лет системы компьютерной математики (СКМ), которые также часто называют системами компьютерной алгебры, получили повсеместное распространение и являются неотъемлемым инструментом современных образовательных технологий и научных исследований. Под СКМ понимают программные продукты, позволяющие выполнять на компьютере численные расчеты, аналитические (символьные) преобразования, создавать и анализировать различные мультимедийные объекты. Наиболее популярны в настоящее время СКМ Mathematica, Maple, MATLAB и MathCad, являющиеся проприетарными компьютерными программами. Лицензии на обладание этими СКМ весьма дороги´. Это обстоятельство заставляет обращать взоры на СКМ со свободным кодом, распространяемые бесплатно. Качество и возможности некоторых таких СКМ в последние годы заметно возросли, хотя и всё ещё не достигают уровня коммерческих программ аналогичного назначения. В частности, это относится и к СКМ MAXIMA [1]. Эта программа написана на языке LISP (LISt Processing) и является кроссплатформенным программным продуктом, работающим под ОС Windows, Linux, UNIX, Mac OS и даже на КПК под управлением Windows CE/Mobile. Maxima – консольная программа. Имеется несколько графических интерфейсов для работы с СКМ MAXIMA: wxMaxima, xMaxima и TeXmacs.

В настоящем пособии будет рассмотрена работа с СКМ MAXIMA под ОС Windows XP. Использовался установочный файл maxima-5.25.1-gcl.exe, который был загружен с http://sourceforge.net/projects/maxima. Процесс установки программы чрезвычайно прост. По умолчанию устанавливаются графические интерфейсы wxMaxima и xMaxima. Пользователь имеет возможность отказаться от установки одного из графические интерфейсов или вообще не устанавливать их, а работать затем лишь в командной строке. Будем полагать, что выбран наиболее популярный графический интерфейс wxMaxima. Установленная программа имеет встроенную поддержку языка GNU COMMON LISP (один из диалектов LISP) и позволяет создавать графические объекты не только в wxMaxima, но и с помощью консольной графической утилиты gnuplot.

После запуска wxMaxima открывается окно, см. рис. 1. Разумеется, можно (и нужно) развернуть это окно на весь экран. Пункты меню «Уравнения», «Алгебра», «Анализ», «Упростить», «Графики», «Численные расчеты» позволяют использовать программу в режиме «научного калькулятора». Этот режим интуитивно понятен и здесь рассматриваться не будет. Для запуска собственно СКМ MAXIMA необходимо в окне wxMaxima выполнить любую операцию, например, арифметическую.

Кафедра математического и прикладного анализа, Тимошенко Ю.К.

3

Рис. 1. Окно wxMaxima.

Если набрать «2+3» и затем нажать Shift + Enter (как и в СКМ Mathematica), то получим результат выполнения этой операции. При наборе первого же символа в левой части окна появляется скобка. При нажатии Shift + Enter скобка обводится прямоугольной рамкой. Это означает, что выполняются вычисления. После их завершения окно приобретает вид, представленный на рис. 2.

Рис. 2. Выполнение арифметической операции.

Как видим, скобка разделилась на две части: в верхней части вводимая инструкция (input-скобка) получила номер (%i1) , а строка результата (output-скобка) снабжена номером (%o1) . Важно отметить, что инструкция в input-скобке автоматически завершена «;». Все инструкции СКМ MAXIMA должны завершаться либо «;», либо «$». В последнем случае вывод output-скобки подавляется. Упомянутые выше скобки также называются ячейками (cells). Для работы с ними предназначен пункт меню «Cell».

Заметим, что выполнение input-скобки можно вызвать нажатием клавиши Enter, если в меню «Правка | Настройка» отметить режим «Enter evaluates cells». При

Кафедра математического и прикладного анализа, Тимошенко Ю.К.

4

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

Документ wxMaxima представляет собой последовательность ячеек. Сохранить его в файл можно обычным образом. Файл получает расширение wxm. Использовать СКМ MAXIMA с максимальной эффективностью позволяет владение языком программирования этой системы. Для тех, кто привык программировать в СКМ Mathematica, обнаружит идеологически (и не только) схожие моменты в написании программ для этих систем. Основы программирования в СКМ MAXIMA изложены ниже.

1.2. Числовые константы

Числовые константы подразделяются на целые, рациональные дроби, вещественные с фиксированной точкой, вещественные с плавающей точкой обычной и заданной точности. Кроме того, имеются ещё комплексные константы вида a + %i b , где %i – мнимая единица, а a и b – целые или вещественные константы. Помимо %i имеются и другие встроенные константы: %pi - это 3.141592653589793, а %e - основание натурального логарифма.

Целые константы имеют обычный вид, то есть представляют собой положительные или отрицательные числа без десятичной точки. Пример:

12 100 1917

Рациональные дроби записываются с помощью знака «/»:

1=3

12=87

123=7

С числовыми константами и переменными можно выполнять арифметические операции, символы которых приведены в табл. 1. Пример:

(%i1) 1/5 + 3/11;

(%o1)

26

55

Вещественные числа с фиксированной точкой:

3:141592653589793

1:32

12:0

Далее, вещественные числа с плавающей точкой:

3:141592653589793e0

13E7 3:12345e 34

5:E0

Кафедра математического и прикладного анализа, Тимошенко Ю.К.

5

Таблица 1. Арифметические операторы.

+оператор сложения

оператор вычитания или изменения знака

оператор умножения

=оператор деления

^ или оператор возведения в степень

Действительные числа по умолчанию восьмибайтовые (имеют 16 значащих цифр). Запись 3:1e 3 означает 3:1 10 3 . Можно использовать как заглавную букву «E», так и строчную «e». Будем называть в этом пособии вещественные числа с фиксированной и плавающей точкой в описанном выше виде вещественными константами обычной точности. Заметим, что вещественные данные обычной точности в языках Fortran и C/C++ (ОС Windows) четырехбайтовые (7 значащих цифр). Необходимо принимать во внимание, что запись константы с фиксированной точкой в виде 12: , допустимая в некоторых языках программирования, в СКМ MAXIMA некорректна

– после десятичной точки необходимо явно прописать дробную часть. Однако для для вещественных чисел с плавающей точкой это несущественно. Пример:

(%i2) [2e0, 2.E0, 2., 2.0];

(%o2) [2:0; 2:0; 2; 2:0]

Здесь квадратные скобки обозначают объект, называемый «список» (о списках см. далее). Из приведенного примера видно, в частности, что 2: отображается в outputскобке как 2 .

Числовые константы с фиксированной точкой могут быть преобразованы к виду с плавающей точкой с помощью функций float и numer:

(%i3) 1/5 + 3/11, float;

(%o3) 0:47272727272727

(%i4) 1/5 + 3/11, numer;

(%o4) 0:47272727272727

СКМ MAXIMA дает возможность проводить вычисления с повышенной точностью. Количество разрядов задается через системную переменную fpprec. По умолчанию она содержит 16 , то есть, вещественные числа имеют шестнадцать разрядов.

Кафедра математического и прикладного анализа, Тимошенко Ю.К.

6

Об изменении разрядности вещественных чисел см. [1].

Естественно, приведенной здесь информации совершенно недостаточно для понимания и выполнения заданий из последующих параграфов. В будущем эта часть пособия будет существенно расширена. А сейчас . . . нужно изучать литературу по MAXIMA [1–4] и использовать справочную систему этой СКМ.

Кафедра математического и прикладного анализа, Тимошенко Ю.К.

7

2.Последовательности. Пределы последовательностей. Функции одной переменной: пределы, графики, производные, экстремумы, ряд Тейлора.

2.1. Примеры суммирования последовательностей

Задание 1. Найти в аналитическом виде сумму из n членов последовательности нечетных чисел, начиная от 1.

Вариант решения.

(%i1)

(%i1) /* сумма n нечетных чисел, начиная от 1 */ kill(all)$

sum(2*i-1,i,1,n); ev(sum(2*i-1,i,1,n),simpsum);

 

n

2 i 1

(%o1)

X

 

i=1

 

(%o2)

n2

 

Задание 2. Найти в аналитическом виде сумму членов бесконечной последовательности

 

 

1

+

 

1

+

1

+

1

+ : : :

(1)

 

3

2

3

4

 

 

3

 

3

 

3

 

 

Вариант решения.

 

 

 

 

 

 

 

 

 

(%i6)

kill(all)$

 

 

 

 

 

 

 

 

 

 

sum (1/3^i, i, 1, inf);

 

 

 

 

 

 

sum (1/3^i, i, 1, inf), simpsum;

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

(%o1)

X

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3i

i=1

(%o2)

1

2

2.2. Примеры вычисления пределов последовательностей

Задание 3. Найти предел последовательности

1

 

n

 

1 +

 

 

; (n = 1; 2; 3; : : :)

(2)

n

Кафедра математического и прикладного анализа, Тимошенко Ю.К.

8

Вариант решения.

(%i3) /* предел последовательности */ kill(all)$ limit((1+1/n)^n,n,inf);

(%o1) %e

Задание 4. Показать, что

 

 

n

 

 

(3)

 

nlim

pn

 

 

= e:

 

n!

 

!1

 

 

 

 

Вариант решения.

 

 

 

 

 

 

(%i2)

/* предел последовательности

*/

 

 

kill(all)$

 

 

 

 

 

 

 

limit(n/(n!)^(1/n),n,inf);

 

 

 

(%o1)

%e

 

 

 

 

 

 

2.3. Функции: простые преобразования

 

 

 

Задание 5. Найти f[f(x)]; f[f(f(x))] , если

f(x) = 1=(1 x)

(см. [5], задача

#209).

 

 

 

 

 

 

 

Вариант решения.

(%i7) kill(all)$ f(x):=1/(1-x)$ print("f(x)=",f(x))$ res2:f(f(x)),ratsimp$ print("f(f(x))=",res2)$ res3:f(f(f(x))),ratsimp$

print("f(f(f(x)))=",res3)$

1 f(x) = 1 x

f(f(x)) = x 1 x

f(f(f(x))) = x

p

Задание 6. Пусть fn(x) = f[f(: : : f(x))] . Найти fn(x) , если f(x) = x= 1 + x2

| {z } n раз

(см. [5], задача #210).

Кафедра математического и прикладного анализа, Тимошенко Ю.К.

9

Вариант решения.

(%i5) kill(all)$ f(x):=x/sqrt(1+x^2); nmax:5$

xx1:x$ flist:[]$

for n:1 thru nmax step 1 do

(

xx2:ev(f(xx1),ratsimp),

flist:append(flist,[xx2]),

xx1:xx2

 

)$

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

flist;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(%o1)

f (x) :=

p

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 + x2

 

 

 

 

x

 

 

 

 

x

 

 

 

x

 

(%o6)

[

p

 

x

;

p

x

;

p

 

 

;

p

;

p

]

 

 

 

 

 

 

 

x2 + 1

2 x2 + 1

3 x2 + 1

4 x2 + 1

5 x2 + 1

Ответ: fn(x) = x=p

 

.

 

 

 

 

 

 

 

 

 

 

1 + nx2

 

 

 

 

 

 

 

 

 

 

2.4. Примеры вычисления пределов функций

 

Задание 7.

Найти предел функции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

lim

 

ln(1 + sin(4x))

:

(4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант решения.

 

 

x!0

 

 

esin(5x) 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(%i6)

/*

Предел функции

*/

 

 

 

 

 

 

 

 

 

kill(x)$

 

 

 

 

 

 

 

 

 

 

 

 

 

res:limit(log(1+sin(4*x))/(exp(sin(5*x))-1),x,0)$ print("result =",res)$

result = 45

Задание 8. Определить, имеет ли функция j2x 3j=(2x 3) скачок при x = 3=2 . Если имеет, то чему он равен.

Вариант решения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]