Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР 7 Решение нелинейных уравнений и систем.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
69.36 Кб
Скачать

8

Лабораторная работа № 7

Решение нелинейных уравнений и систем

Цель работы

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

Задание для самостоятельной подготовки

1) Изучить общие сведения о решении нелинейных уравнений и систем в среде MATLAB [1], стр. 246-253, 775-778,1033-1035.

2) Изучить содержание и порядок выполнения лабораторной работы.

Основы теории

Решение нелинейных уравнений и систем в среде MATLAB возможно аналитическими и численными методами. Аналитическое решение в силу своей общности всегда более предпочтительно, чем численное. Однако решений уравнений аналитическими методами крайне ограничено в виду следующих причин:

  • аналитические методы могут быть применены лишь для решения уравнений и систем невысокого порядка;

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

В связи с этим наибольшее распространение получили численные (приближенные) методы решения. Большинство этих методов предполагает, что известны достаточно малые окрестности, в каждой из которых имеется только один корень уравнения. Принимая за начальное приближение корня одну из точек этой окрестности или задавая интервал, в котором он находится, можно вычислить искомый корень с заданной точностью.

Символьное решение нелинейных уравнений и систем осуществляется с использованием входящей в состав пакета функции solve:

r = solve(f) — нахождение символьного решения уравнения, заданного строкой f. Входным аргументом может быть символьная функция. По умолчанию в качестве независимой переменной выбирается результат findsym(f). Входными аргументами solve в случае решения системы нелинейных уравнений являются левые части уравнений и переменные, по которым требуется разрешить систему.

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

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

Функция solve имеет следующий недостаток. Она не требует информации о начальном значении корня или области его изоляции. Поэтому в случае трансцендентного уравнения и в ряде других случаев она не находит всех корней уравнения.

Для решения нелинейных уравнений и систем численными методами служит функция fsolve. В достаточно общем случае вызов fsolve выглядит следующим образом: х = fsolve(fun, х0, options, P1, Р2, ...)

Первым аргументом fsolve является указатель на файл-функцию (или ее имя), вычисляющую F(x). Данная файл-функция принимает на входе вектор аргументов и возвращает вектор значений F(x). Начальное приближение указывается во втором аргументе fsolve - х0. Третий аргумент - options — управляющая структура, а необязательные аргументы P1, Р2,... есть значения параметров, от которых может зависеть левая часть системы уравнений.

Функция fzero позволяет численно (приближенно) вычислить корень уравнения на некотором интервале или ближайший к заданному начальному приближению.

В простейшем варианте fzero вызывается с двумя входными и одним выходным аргументом х = fzero ('func_name’, х0), где func_name — имя файл-функции, вычисляющей левую часть уравнения, х0 — начальное приближение к корню, х — найденное приближенное значение корня.

Важной особенностью fzero является то, что она вычисляет только те корни, в которых функция меняет знак, а не касается оси абсцисс. Найти корень уравнения х2 = 0 при помощи fzero не удастся.

Нахождение всех корней полиномов осуществляется при помощи функции roots со следующим синтаксисом: r = roots(р).

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

Задание

1. В соответствии с заданным вариантом решить нелинейное уравнение аналитически и выполнить проверку.

1. x5 - 3x4 + (a - b3)x3 + 3(b3 - a)x2 - ab3x + 3ab3 = 0

2. x5ax3 + 2x22a = 0

3. x7 + ax5x2a = 0

4. x3a = 0

5. x5 + (b - a)x4abx3 + ax2 + ax(ba) – a2b = 0

6. x5 + bx4a4xa4b = 0

7. x4 + 2x3(1 + a) + x2(4a – 1) – 2x(1 + a) – 4a =0

8. 2x – 2(a + b) = 0

9. ln sinx – 2a = 0

10. e-2x – 2a = 0

11. sinax + cosax = 0

12. sinax + tgax = 0

13. e-ax + eax = 0

14. e-ax + eax – 1 = 0

15. e-ax + eax – lna = 0

16. ae-x + bex = 0

17. asinx + bcosx = 0

18. alnx – 1/x = 0

19. axbcosx = 0

20. ax3bx – 47 = 0

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

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

Таблица 1 – Алгебраические и трансцендентные уравнения для решения их численными методами

вар.

Уравнения

Алгебраические

Трансцендентные

Число

корней

1

x4 – 4x3 – 10x2 + 3x – 4 = 0

2sin(ln|x|) = 0

6

2

x5 – 5x2 + 4.5 = 0

arctg(tgx) = 0

3

x5x + 0.2 = 0

4e-1/|x| - 2

3

4

x3 – 0.2x2 + 0.5x + 1.5 = 0

sin(sinx)

5

x10 – 1 = 0

2x – 4x = 0

2

6

x8 + 2x – 1.5 = 0

x! + 2x – 2 = 0

4

7

x4 – 2x2 + 8x + 1 = 0

lnx + (x + 1)3 = 0

1

8

x3 + 4x2 – 5x – 2 = 0

arctg(x-2) + x = 0

1

9

6x8 – 2x2 + 3 = 0

x2 + 4sinx – 2 = 0

2

10

3.5x5 – 2.8x3 + 7.5x -2.5 = 0

x – ln(7 – 4x)

1

11

x5 + x4 + x3 + x2 + x + 1 = 0

e-2x + 3/x - 1 = 0

2

12

1.5x5 + 17x – 21 = 0

e-6x + 3x2 – 18 = 0

2

13

17x9 – 15x7 + 13x411x3 + 9x – 7 = 0

3x – 9x + 1 = 0

2

14

2x4 – 3.5x2 + 3 = 0

ln(4 – 2x) + x2 – 2 = 0

3

15

x4 + 2x3 – 1 = 0

2x + ln2x – 5.6 = 0

1

16

xx – 21x2 + 55 = 0

2x + e-x – 5x + 1 = 0

2

17

x7 + 2x6 + 3x5 + 4x4 + 5x3 + 6x2 + 7x + 8 = 0

3x + ex + 1.5 = 0

2

18

8x7 – 7x6 + 6x5 – 5x4 + 4x3 – 3x2 + 2x – 1 = 0

ex/2 – (x – 1)2 = 0

1

19

x50 – 1 = 0

x + lgx – 0.5 = 0

1

20

x7 + 6x6 + x5 – 4x4 + x3 – 2x2 + x – 1 = 0

2x! – e-x + 5 = 0

4

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

Таблица 2 – Системы нелинейных уравнений

вар.

Система уравнений

Начальные

приближения

вар.

Система

уравнений

1

sin(x1 + x2) – 1.24x1 = 0.1

x12 + x22 = 1

x1 = 0.74

x2 = 0.67

2

sin(x2 + 1) – x1 = 1.2

2x2 + cosx1 = 2

3

tg(x1x2 + 0.2) = x12

0.6x12 + 2x22 = 1

x1 = 0.88

x2 = 0.52

4

cos(x2 – 1) + x1 = 0.5

x2 – cosx1 = 3

5

sinx1 + 2sinx2 = 1

2sin3x1 + 3sin3x2 = 0.3

x1 = 1.08

x2 = 0.06

6

x12x2x2 – 9 = 0

x1x2x12 + 10 = 0

7

tg(x1x2) -4x1 = 0

x12 + 2x22 = 1

x1 = - 0.5

x2 = 0.6

8

x12 + x22x1x2 = 0

sin(x1 + x2) – 2.4x + 3.2 = 0

9

x14 + x22 – 3 = 0

x13 + x23 – 4 = 0

x1 = 0.95

x2 = 1.4

10

2x1x22 – 4x2 – 7.5 = 0

x12 – 3x1x2 + 4.5 = 0

11

sinx1x2 = 1.3

cosx2x1 = - 0.82

x1 = 1.8

x2 = - 0.35

12

sinx + 2cosx – 0.8 = 0

x1x22 + 3x1 – 4.5 = 0

13

x13 + x23 – 6x1 + 3 = 0

x13x23 – 6x2 = 2

x1 = 0.52

x2 = - 0.37

14

x12x22x22 – 18.75 = 0

x1 + x22 – 8.25 = 0

15

x2 + e x1 – x2 = 0

x1 + e x1 + x2 = 0

x1 = - 0.7

x2 = - 0.35

16

tg(x1x2) – 4x1 = 0

x12 + 3x23 – 4 = 0

17

x12x2 – 8x1 + 5.5 = 0

x1x2 + 3x2 – 10 = 0

18

x12sinx2 + x22sinx1 + 1 = 0

2x1 + e x1 + x2 – 4 = 0

19

ex1 + 2x2lnx1 – 3 = 0

x12x2 – 3x1 + 5.4 = 0

20

sinx1 + 3.5sinx2 – 1 = 0

2sin3x + 3sin2x2 - -0.4 = 0