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

Система компьютерной математики Octave. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
5. Решение систем нелинейных уравнений. Для решения систем нелиней-
ных уравнений воспользуемся командой
fsolve
. В пакете Matlab эта команда входит в модуль Optimization Toolbox, который может отсутствовать в реальной ситуации, так как покупается отдельно от самого приложения.
Синтаксис команды:
R = fsolve(F, u0)
, где F – вектор-функция вычисления левой части си­стемы уравнений, u0 – начальный вектор, R – вектор-результат. Функция F должна получить вектор значений и вернуть результат подстановки этих значе­ний в левую часть системы уравнений. Покажем использование команды fsolve на примере решения системы двух нелинейных уравнений:
  
Каждое из уравнений системы задает некоторую кривую на плоскости
следовательно, корни системы есть точки пересечения этих кривых
2
=−+
yx
2
yx
05
=−+
03
Oxy,
.
Перепишем систему уравнений в виде
  
тогда
F(u) = [u(1)+u(2)^2-5; u(1)^2+u(2)-3]
2
=−+
uu
21
2
uu
2
1
05
=−+
03
40
−−−
Напишем и выполним программу:
F=@(u) [u(1)+u(2)^2-5; u(1)^2+u(2)-3]; p1 = fsolve(F,[0,0])
Получим
p1 =
1.00000 2.00000
Мы видим, что при заданном начальном приближении решение сошлось к точке (1; 2). Полученный результат легко проверить. Подставим p1 в вектор­функцию F – результат должен равняться нулю.
v = F(p1)
v =
1.7587e-007
2.5315e-008
Мы видим, что величина невязки (погрешность решения) близка к нулю, т. е. мы действительно получили одно из решений системы. Чтобы получить остальные решения, нужно при вызове функции
fsolve
задать ей другие начальные приближения, которые проще всего подобрать по построенному графику:
p2 = fsolve(F,[-1,-1]) p3 = fsolve(F,[2,-4]) p4 = fsolve(F,[-2,3])
Получим
p2 = -2.3914 -2.7187 p3 = 2.1642 -1.6840 p4 = -0.77287 2.40268
Варианты заданий к лабораторной работе № 3
Вариант 1
А) Найти корни полинома
23
.
179)(
++= xxxP
Б) Решить систему линейных алгебраических уравнений с матрицей A
и столбцом правых частей B:
A
81015
 
=
 
 
−−
−−−
 
−−−
6824
B
,
4154
 
5362
29
−
6
=
 
 
.
6
 
−
5
*Дополнительно:
– вычислить детерминант матрицы A; – получить собственные значения матрицы A и определить, является ли
матрица A положительно определенной;
– найти LU разложение матрицы A.
41
01sin3=−−xx
−
−
013
x
e
−−−
−
В) Решить, используя команду fzero, уравнение
ления корней воспользуйтесь графическим методом
Г) Решить, используя команду
  
2
3
−+=
32
yyx
+−=
13
xxy
fsolve,
систему нелинейных уравнений
.
. Для отде
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 2
А) Найти корни полинома
24
.
2425122)(
++−= xxxxP
-
:
.
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
−
*
Дополнительно
–
вычислить детерминант матрицы
–
получить собственные значения матрицы
матрица
–
найти
A
−
−
:
положительно определенной
LU
разложение матрицы
В) Решить, используя команду
ния корней воспользуйтесь графическим методом
Г) Решить, используя команду
  
22
=+
9
yx
2
−−=
3
xxy
B:
6528
 
6897
 
01099
 
7168
B
,
A.
fzero,
fsolve,
21
 
=
 
 
 
12
.
−
10
 
21
A;
A и
определить, является ли
;
уравнение
x
2
=+−
.
систему нелинейных уравнений
.
Для отделе
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 3
А) Найти корни полинома
34
.
2845)(
++−= xxxP
A
-
:
.
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
−
*
Дополнительно
–
вычислить детерминант матрицы
–
получить собственные значения матрицы
матрица
–
найти
A
−−
:
положительно определенной
LU
разложение матрицы
−−−
B:
8875
 
1963
 
0358
 
2209
,
B
6
0
=
.
25
14
A;
A и
определить, является ли
;
A.
42
A
(
)
−
0
cos
3
xxx
−
−
−
В) Решить, используя команду fzero, уравнение
32
041ln
=+−+ xxx .
Для
отделения корней воспользуйтесь графическим методом
Г) Решить, используя команду
  
3
2
+−=
13
xxy
−−=
56
xyy
fsolve,
систему нелинейных уравнений
.
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 4
А) Найти корни полинома
24
.
76958)(
+++−= xxxxP
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
 
*
Дополнительно
–
вычислить детерминант матрицы
–
получить собственные значения матрицы
матрица
–
найти
A
положительно определенной
LU
:
разложение матрицы
В) Решить, используя команду
деления корней воспользуйтесь графическим методом
Г) Решить, используя команду
  
yx
23
−=
3
xxy
22
=+
164
B:
−−−
−−
3903
 
10902
B
,
4551
 
10239
8
2
=
.
27
9
A;
A и
определить, является ли
;
A.
fzero,
уравнение
3
=−−
.
fsolve,
систему нелинейных уравнений
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 5
А) Найти корни полинома
34
.
37367)(
+++= xxxxP
:
.
Для от
:
.
A
-
.
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
−−
*
Дополнительно
–
вычислить детерминант матрицы
–
получить собственные значения матрицы
матрица
A
положительно определенной
:
B:
8875
 
−−
−−−
4671
B
,
21018
 
8858
7
1
=
 
 
−
20
.
5
 
A;
A и
определить, является ли
;
43
A
014
xee
−
−
−
0)1
ln(
sin
2
=++
x
x
−
−
– найти LU разложение матрицы A.
−
В) Решить, используя команду fzero, уравнение
xx
деления корней воспользуйтесь графическим методом.
Г) Решить, используя команду fsolve, систему нелинейных уравнений:
  
3
2
+−=
23
yyx
−+=
22
xxy
=−−−
. Для от-
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 6
А) Найти корни полинома
23
.
11215)(
++= xxxP
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
 
*
Дополнительно
–
вычислить детерминант матрицы
–
получить собственные значения матрицы
матрица
–
найти
A
−
:
положительно определенной
LU
разложение матрицы
В) Решить, используя команду
B:
7519
 
−−
10480
,
−−−
5886
 
10958
B
=
4
 
  
 
 
24
.
−
10
 
8
A;
A и
определить, является ли
;
A.
fzero,
уравнение
.
Для от
.
A
-
деления корней воспользуйтесь графическим методом
Г) Решить, используя команду
 
2
22
=+
164
yx
=−−
32
xyy
fsolve,
систему нелинейных уравнений
.
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 7
А) Найти корни полинома
35
.
1114173)(
+++−= xxxxP
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
 
*
Дополнительно
вычислить детерминант матрицы
–
:
B:
−−−
−−−
7263
 
71063
,
771010
 
6589
B
29
28
=
.
6
0
A;
:
.
A
44
03sin2=−+xx
−
−
034
x
e
−
– получить собственные значения матрицы A и определить, является ли
матрица A положительно определенной;
– найти LU разложение матрицы A.
В) Решить, используя команду fzero, уравнение
ления корней воспользуйтесь графическим методом
Г) Решить, используя команду
  
2
−=
4
yx
xxy
23
−+=
13
fsolve,
систему нелинейных уравнений
.
. Для отде
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 8
А) Найти корни полинома
24
.
216819)(
+−−= xxxxP
-
:
.
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
 
*
Дополнительно
–
вычислить детерминант матрицы
–
получить собственные значения матрицы
матрица
–
найти
A
положительно определенной
LU
−
−
:
разложение матрицы
В) Решить, используя команду
ления корней воспользуйтесь графическим методом
Г) Решить, используя команду
  
22
=+
16
yx
2
−−=
24
xxy
B:
2883
 
8766
B
,
−−
6281
 
0708
 
  
 
22 10
23
−=8
 
.
 
 
A;
A и
определить, является ли
;
A.
fzero,
уравнение
−
x
2
=+−
.
.
fsolve,
систему нелинейных уравнений
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 9
А) Найти корни полинома
345
.
4544673)(
++−+= xxxxxP
A
Для отде
:
.
-
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
 
Дополнительно
*
–
вычислить детерминант матрицы
:
B:
5922
 
−−
7699
,
91100
 
−−−
4123
B
21
21
=
 
 
17
.
 
2
A;
45
A
(
)
−
−
02sin5cos=−
+
xxx
−
−
−
– получить собственные значения матрицы A и определить, является ли
матрица A положительно определенной;
– найти LU разложение матрицы A.
В) Решить, используя команду fzero, уравнение
23
0131ln2
=+−+− xxx .
Для отделения корней воспользуйтесь графическим методом
Г) Решить, используя команду
  
3
313yx
−−=
xxy
2
−=
fsolve,
систему нелинейных уравнений
.
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 10
А) Найти корни полинома
235
.
23626196)(
++−−= xxxxxP
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
−−
*
Дополнительно
–
вычислить детерминант матрицы
–
получить собственные значения матрицы
матрица
–
найти
A
положительно определенной
LU
:
разложение матрицы
В) Решить, используя команду
отделения корней воспользуйтесь графическим методом
Г) Решить, используя команду
  
22
=+
164
yx
3
−+=
32
xxy
B:
6868
 
−−
6413
,
07103
 
2278
B
13
14
=
.
3
1
A;
A и
определить, является ли
;
A.
fzero,
уравнение
.
fsolve,
систему нелинейных уравнений
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 11
А) Найти корни полинома
245
.
14395)(
−−−+= xxxxxP
:
.
A
.
Для
:
.
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
 
Дополнительно
*
–
вычислить детерминант матрицы
:
B:
−
−−
41074
 
0164
B
,
10396
 
58104
1
26
=
 
 
.
9
 
−
8
A;
46
A
054
2
xee
−
0
cos2ln=+
x
x
– получить собственные значения матрицы A и определить, является ли
матрица A положительно определенной;
– найти LU разложение матрицы A.
В) Решить, используя команду fzero, уравнение
−
xx
2
=+−−
отделения корней воспользуйтесь графическим методом.
Г) Решить, используя команду fsolve, систему нелинейных уравнений:
  
2
−=
3
xy
yyx
23
+−=
43
Для подбора начальных приближений воспользуйтесь графическим методом
Вариант 12
А) Найти корни полинома
234
.
26226)(
+++= xxxxP
. Для
.
Б) Решить систему линейных алгебраических уравнений с матрицей
и столбцом правых частей
 
=
A
 
 
*
Дополнительно
–
вычислить детерминант матрицы
–
получить собственные значения матрицы
матрица
–
найти
A
положительно определенной
LU
:
разложение матрицы
В) Решить, используя команду
ления корней воспользуйтесь графическим методом
Г) Решить, используя команду
 
2
22
=+
99
yx
+=+
12
xyy
B:
10632
 
−−−
2363
B
,
−−
0309
 
−−−
9418
1
8
=
.
20
11
A;
A и
определить, является ли
;
A.
fzero,
уравнение
.
.
fsolve,
систему нелинейных уравнений
Для подбора начальных приближений воспользуйтесь графическим методом
A
Для отде
:
.
-
Лабораторная работа № 4
РЕШЕНИЕ ЗАДАЧ ОПТИМИЗАЦИИ
Цель работы: познакомиться с функциями
нейного и нелинейного программирования
.
Octave
для решения задач ли
-
1. Нахождение локальных экстремумов функций одной переменной.
Пусть y=f(x гда в точках локальных экстремумов первая производная функции обращается в ноль. Точки, в которых первая производная обращается в ноль, называются стационарными точками. Чтобы уточнить характер стационарной точки, необ
) –
непрерывно дифференцируемая функция одной переменной, то
47
-
-
ходимо определить знак второй производной в этой точке: если вторая произ­водная строго больше нуля, то это точка минимума, строго меньше нуля – точ­ка максимума. Если вторая производная равна нулю, то эта точка может быть точкой перегиба (если третья производная функции в этой точке не равна ну­лю). В случае равенства нулю третьей производной необходимо учесть значе­ние четвертой производной и т. д. Общее правило: если первая отличная от ну­ля производная имеет четный порядок, то это точка экстремума, если нечетный порядок – то это точка перегиба.
Примеры:
1) y = x2 – 6x + 7, y' = 2x – 6 = 0 при x = 3, y'' = 2 > 0, следовательно, точка x
= 3 есть точка экстремума, а именно точка минимума;
2) y = x3, y' = 3x2 = 0, y'' = 6x = 0 при x=0, y''' = 6 > 0, следовательно, точка
x = 0 есть точка перегиба.
Вычисление производных можно выполнить с помощью модуля символиче­ских вычислений, однако в стандартный пакет Octave этот модуль не входит. Исключение составляют функции, которые являются полиномами. Для нахож­дения производной полинома в Octave предусмотрена функция polyder:
Q = polyder(P)
где P – вектор коэффициентов исходного полинома;
Q – вектор коэффициентов производной.
Для вычисления значения полинома в заданной точке используется функция polyval:
y = polyval(P, x)
где P – вектор коэффициентов исходного полинома;
x – заданное значение;
y – значение P(x).
Для иллюстрации возможностей Octave решим задачу: определить локаль­ные экстремумы функции
3
.
xxxP 4)(
−=
Напишем программу в редакторе Octave.
Зададим исходный полином:
P=[1,0,-4,0];
Найдем его первую и вторую производные:
P1=polyder(P);
P2=polyder(P1);
Получим корни первой производной:
R = roots(P1);
Для каждого вещественного корня (т. е. для тех, у которых мнимая часть равна нулю) вычислим значение полинома и второй производной в этой точке и выведем результаты в командное окно:
disp(' x Y V')
for i = 1:length(R)
48
if (imag(R(i))==0 )
x=real(R(i)); % или x = R(i)
Y=polyval(P,x);
V=polyval(P2,x);
disp([x,Y,V])
end
end
Замечание. Функция
num
, а функция
imag(num)
real(num)
возвращает вещественную часть числа
– мнимую часть числа
num
.
В результате работы программы получим таблицу
x Y V
-1.1547 3.0792 -6.9282
1.1547 -3.0792 6.9282
Анализ результата позволяет сделать вывод, что точка x = -1.1547 есть точка локального максимума со значением P(x) = 3.0892, а точка x = 1.1547 есть точка локального минимума со значением P(x) = -3.0892. Для наглядности построим график функции P(x).
В случае произвольной функции для нахождения точек экстремума можно использовать функцию
fminsearch
. Функция
fminsearch
находит минимум функции нескольких переменных, стартуя с некоторой начальной точки x0. Синтаксис вызова функции:
x = fminsearch(func, x0)
– функция возвращает точку, в которой
находится локальный минимум функции func;
49
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]