Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Функциональный анализ. Учебное пособие
.pdf
()()
;
(
)
(
)()
.
+2=5
,(0)=2;
−=
,
(0)=3;
−3=
,(0)=3;
+2=2+4
,(0)=−1
;
функционал определим на любой непрерывной функции с помощью
равенства
(
,)=(0).
Не существует обычной функции (), для которой равенство
(
,)=
)
(
т.е. ()≓1.
Хевисайда:
методом
методом, не используя теорему Хэвисайда:
()()=(0),
∫
выполняется при любой функции
. Из определения дельта-функции следуют равенства
(−)()=()
;
()=1,
13.7. Задачи для решения на занятии.
13.7.1. Найти оригиналы по изображениям, пользуясь теоремой
а)
б)
13.7.2. Решить дифференциальные уравнения операционным
а)
в)
д) −3+2=4,(0)=−1,
е) −−6=2,(0)=1,
ж) −25=
,(0)=2,
з) −=−4,(0)=1,
и) +6′+5=,(0)=1,
к) +4+3=−,(0)=0,
л) −3′+2=5,(0)=1,
м) −4=2−5,(0)=−2,
н) +4−5=3−3,(0)=1,
б)
г)
(0)
(0)
(0)
(0)
=0;
=4;
=−1;
(0)
(0)
=−1;
(0)
(0)
=−2;
=−2;
=−2;
=1;
(0)
=2.
13.7.3. Решить дифференциальные уравнения операционным
а) +=3,(0)=1,
(0)
=−1;
91

б) +=6sin2,(0)=−2;
(0)
(0)
=0;
=0;
(0)
=−1;
(0)
=2.
в) +9=,(0)=1,
г) +=3,(0)=1,
д) −3=1,(0)=−1,
е) −3=cos2,(0)=0;
ж) −2=2−,(0)=0;
з) +3+2=2−3,(0)=−1,
13.7.4. Найди решения систем ЛНДУ операционным методом:
+=0,
а)
+=0,
(0)=−2,(0)=1;
+3+2=0,
б)
−2+3=1,
(0)=0,(0)=0;
−−2=0,
в)
+=0,
(0)=1,(0)=2;
−2+′=0,
г)
−=1,
(0)=1,(0)=−1;
−−3=0,
д)
+−=1,
(0)=0,(0)=0;
−′=1,
е)
+=0,
(0)=0,(0)=0;
2+′=0,
ж)
+−=0,
(0)=−1,(0)=1;
−′=2,
з)
+=,
(0)=−2,(0)=1.
14. Решение задач функционального анализа с помощью
программы Maxima
Общая характеристика программы Maxima. Программа
92

позволяет производить аналитические и символьные вычисления,
строить графики, применять численные методы.
Хорошо известны аналогичные программы Mathematica и Maple.
Однако эти программы коммерческие. Стоимость лицензионных
версий может составлять несколько тысяч долларов. В отличие от них
Maxima распространяется совершенно свободно.
С помощью программы Maxima можно интегрировать,
дифференцировать, находить пределы, решать обыкновенные
дифференциальные уравнения, разлагать функции в ряд, решать
различные алгебраические уравнения и системы таких уравнений.
В данном пособии Maxima применяется для решения задач
функционального анализа. С ее помощью производится вычисление
норм, изучается сходимость частичных сумм ряда Фурье в разных
метриках, строится ряд Неймана и т.д.
Работа с программой. Рабочее окно, диалоговые окна.
После запуска программы «Maxima» появляется рабочее окно
программы, которое состоит из панели управления, рабочей области и
полос прокрутки.
Панель управления состоит из трех строк: строка заголовков,
строка основного меню и строка инструментов. Остановимся
подробнее на основном меню. Оно состоит из следующих названий:
«Файл», «Правка», «Cell», «Maxima», «Уравнения», «Алгебра»,
«Анализ», «Упростить», «Графики», «Численные расчеты»,
«Помощь». Если щелкнуть указкой мышки по одному из этих
названий, то появится меню второго уровня. Например, если
активизировать пункт «Уравнения», то появится меню с 15
названиями типа «Solve», «Solve (to_ poly…)» и т.д. С их помощью
можно решать уравнения, системы линейных уравнений, системы
алгебраических уравнений, дифференциальные уравнения.
Допустим, надо вычислить интеграл
так: «Анализ → Integrate». Второе слово мы находим в меню второго
уровня. После этого появляется диалоговое окно, которое выглядит
как пластинка с надписями и окошками. В этих окошках мы должны
написать ответы на следующие вопросы. Выражение: (надо написать
подынтегральную функцию); Переменная: поставить галочку в окошке
∫
. Это можно сделать
93

Определенное интегрирование; От 0; До 1; Нажимаем кнопку ОК. В
рабочей области появляется ответ. Точнее, мы видим две строки:
(
%1)integrate(x,x,0,1);
(
%1)1/4
В первой строке записан наш вопрос, а во второй ответ. Мы
могли бы решить эту задачу, не обращаясь к основному меню. Просто
набрать первую строчку и нажать одновременно клавиши «Shift»
«Enter». Нумерацию (%i1) и (%o1) Maxima напишет сама. Такая пара
«Вопрос» «Ответ» называется сессией. Если мы и дальше будем
задавать вопросы, то им будут присвоены обозначения (%i2), (%i3),…,
а ответам – (%o2), (%o3), … . Когда мы вызываем из меню диалоговое
окно, то в верхнем окошке появляется, как правило, знак %. Это
означает предложение проделать выбранную нами операцию с
результатом предыдущей сессии. Знак процента можно также
использовать в программе для ссылки на предыдущий результат.
Например, в ответ на вопрос
(
%2)%∗4;
мы получим ответ
(
%2)1
т.е. предыдущий результат 1/4 был умножен на 4.
Ссылки на результат (%o1) можно сделать и в следующих
сессиях. Например,
(
%3)%1^2;
Ответ:
Дело в том, что в дальнейшем мы можем внести изменения в
некоторые сессии. Тогда нумерация ответов может измениться. Более
надежно обозначить нужный нам в дальнейшем результат какойнибудь буквой.
переменной. Чтобы присвоить значение какой-нибудь величине,
используется знак «:». Например,
(
%4):6;
(
%4)6
(
%5)3∗+7;
(
%5)25
. Однако такой способ ссылки может привести к ошибке.
Как определить функцию или присвоить значение
Теперь вместо числа 6 можно писать в формуле s. Например,
94

Чтобы определить новую функцию используют знаки «:=».
Например, (,,)≔−4.
Точнее, в программе надо писать:
(
%6)(,,)≔^2−4∗∗;
(
%6)(,,)
Теперь эту функцию можно вычислить при конкретных
значениях ,,
(
%7)(2,4,6);
(
%7)−32
Как правило, для записи в программе специальных имен
используется знак «%». Например, % – мнимая единица, % – число
≈3,14, % – второй замечательный предел, %1,%2 –
произвольные постоянные при решении дифференциального
уравнения.
Присвоенные значения переменой сохраняются во время всего
сеанса работы с программой. Однако, в дальнейшем им можно
присвоить новые значения или можно отменить старые значения с
помощью команды kill. Например, (,). Для полной отмены:
(
использовать пункт «Помощь» из основного меню. При этом
возникает меню второго уровня. В этом меню, прежде всего,
интересны пункты «Maxima Help» и «Example».
оглавление этой книги и список дополнительных пакетов.
написать команду, по которой вы хотите получить справку выделить
эту команду, а затем нажать Example. Появятся описание формата
команды и примеры ее использования.
обращаясь к основному меню, просто написать команду, выделить ее,
а затем нажать клавишу F1.
функции приведены в табл. 14.1. Кроме того рассмотрим функции:
)
.
Получение справок. Для получения справок можно
«Maxima Help». Появляется справка в виде книге. Мы видим
«Example». Прежде чем обращаться к этому пункту, надо
«F1». Примерно такой же результат можно получить, если, не
Встроенные функции. Некоторые встроенные математические
signum() возвращает знак числа x. Определяется равенством:
95

Таблица 14.1
sqrt()
Квадратный корень из x
abs(
)
Модуль от x
cos(x) Косинус от x
sin(x) Синус от x
tan(x) Тангенс от x
cot(x) Котангенс от x
acos(
x)
Арккосинус от x
asin(x) Арксинус от x
atan(x)
Арктангенс от x
acot()
Арккотангенс от x
log()
Натуральный логарифм от x
exp()
Экспонента x
cosh()
Гиперболический косинус от x
sinh()
Гиперболический синус от x
1,если>0
signum()=
−1,если<0
0,если=0.
Функции, возвращающие наибольшие и наименьшие значения
из заданных действительных чисел:
max(1,2,…,), in(1,2,…,).
Пример.
(
%1)max1,2,3,
(
%1) 3
(
%o2)1/5
1
;min1,2,3,
5
1
5
Условные операторы. Условный оператор используется в
сокращенной форме «if then» и в полной форме «if then else».
Пример. Условный оператор в сокращенной форме.
(
%1):3;:=−2;
(
%1)3
(
%2)−2
(
%3)>0ℎ9;>0ℎ9;
(
%3)9
96

(
%4)false
В этом примере мы видим два условных оператора. Так как
второе условие не выполнено, то получился ответ false.
Пример. Условный оператор в полной форме.
(
%5)>0ℎ91;>0ℎ9−1;
(
%5)9
(
%6)−1
Логические операторы and, or, not.
Пример. Задать функцию
,если∉(0,2)
()=
(
%7)()≔(<=0>=2)ℎx^2else0;
(
%7) ():=<=0∨>=2ℎ0
Maxima, как - будто повторила наш вопрос. Но в
действительности она просто доложила, что все поняла. Можно
вычислить значения функции
(
%8) (1);(5);
(
)
%8
0
(
)
%9
25
Матрицы. Матрицу можно задать поэлементно с помощью
команды «matrix».
Пример. Ввести матрицу =
(
%1):
(
%1)
(
%2)[2,1];
(
%2)4
операции
(
%3):2∗+(2);
(
%3)
2 3
4 5
Элемент матрицы можно извлечь с помощью команды [] :
Ответ равен числу из второй строки и первого столбца.
Над матрицами можно проделывать обычные алгебраические
5 6
8 11
(
[
2,3],[4,5
0,если∈(0,2)
2 3
4 5
)
]
;
.
.
97

Здесь команда «ident(2)» возвращает единичную матрицу
1 0
=
2×2.
(обычная точка).
шапочка).
(
%4)A^^2;
(
%4)
используются команды «Уравнения → Solve» или «Уравнения → Solve
(to poly)». Последняя команда предназначена только для решения
уравнений вида Многочлен = 0. Зато по сравнению с первой позволяет
решать уравнения более высоких степеней.
уравнений. Это не всегда возможно. Очень часто уравнения можно
решить только приближенными методами. Для этого можно
использовать команду «Уравнения →Find Root», предназначенную для
решения уравнений вида ()=0. Прежде чем использовать команду
«Find Root» надо провести предварительную работу. Надо построить
график функции (
каждого корня найти интервал, в котором находится только один
корень. На концах выбранного интервала функция должна иметь
разные знаки. Команда «Find Root» реализует очень простой по своей
идее метод «половинного деления».
использовать команду «solve»:
(
%1)
(
%1)[=%−4]
«Find Root » для численного решения задачи. Сначала построим
график:
. Число 2 здесь означает, что матрица имеет размеры
0 1
Умножение матриц. Производится с помощью команды «.»
Возведение в степень. Используется знак «^^» (двойная
16 21
28 37
Решение уравнений. Для решения алгебраических уравнений
Указанные команды должны дать точные ответы при решении
Пример. Решить уравнение −−4=0. Попытаемся
Решение не было найдено. Попытаемся использовать команду
2([exp()−−4,0],[,−15,5],[plot_format,gnuplot])$
)
, найти приближенные значения корней и для
(
[
exp()−−4],[
)
]
;
98

Здесь записано указание – построить два графика: функции
=−−4 и =0.
На рис.14 видны два корня, соответствующие точкам
пересечения графика и оси Ох. Наша задача – указать для каждого
50
40
30
20
10
0
%e^x-x-4
0
-10 -8 -6 -4 -2 0 2 4
x
Рис. 14.
корня интервал, в котором заведомо находится только один этот
корень. Это могут быть интервалы
[
−6,0]и[0,4
]
.
Используем команду «Уравнения→Find root». Появляется
диалоговое окно, в котором мы заполняем пробелы. В результате
получаем
(
%2)FindRoot(exp(x)–x–4=0,x,−6,0);
(%2)−3.981339370911317
Копируем команду «Find_Root» и заменяем в ней -6 и 0 на 0 и 4.
Получаем второй корень, равный 1,749031386012702.
Решение дифференциальных уравнений. Для решения
обыкновенных дифференциальных уравнений используется команда
«Уравнения → Solve ODE».
Пример 1. Решить дифференциальное уравнение
+3=
(
%i1)ode2(x^2*’diff(y,x)+3*x*y=sin(x)/x,y,x);
(
%1) =
%()
.
Здесь знак «штрих» перед diff означает, что программе не надо сразу
находить производную
, ведь в этот момент зависимость
99

=1 =2
=2 =3
отнеизвестна. «Штрих» перед командой означает отложенное
действие.
Пример 2. Решить дифференциальное уравнение второго
порядка
(
%2)′(,,2)+∗′(,)^3=0;
(
)
%2
(
)
%3
ode2(%, y, x)
+
=0
;
%3)
+6%1
6
=+%2
(
Через %1и%2 обозначены произвольные постоянные.
Мы получили, таким образом, общие решения двух
дифференциальных уравнений. Допустим надо найти частное
решение первого из уравнений, соответствующее начальному условию
(1)=2. Для этого надо использовать команду «Уравнения →Initial
Value Problem (1)». В появившемся диалоговом окне запишем
%1=1,=2. Получается частное решение. Для
дифференциального уравнения второго порядка надо использовать
команду «Уравнения →Initial Value Problem (2)». В случае, если
граничные условия для уравнения второго порядка заданы в двух
точках, например, (1)=2,(2)=3, используем команду
«Уравнения →Boundary Value Problem». В графе «Решение»
записываем %o3, далее
Получаем частное решение (y^3–13∗y)/6=x–4.
Упрощение выражений. Для упрощения используются
команды из пункта меню «Упростить». С ними можно
поэкспериментировать. Замечу только, что команда «Упростить →
Factor Expression» примененная к многочлену возвратит его
разложенным на множители. И наоборот, команда «Упростить →
Expand Expression» превратит произведение обратно в многочлен.
Управление процессом вычислений. Во многих случаях
Maxima возвращает ответ, который нас не устраивает. Например,
получен ответ sin(%/8
)
, а мы хотим знать, сколько это будет. В
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
