36869

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

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

Математика и математический анализ

Всякое алгебраическое уравнение относительно x можно записать в виде 0xn1xn−1 n−1xn = 0 где 0 0 n 1 и i коэффициенты алгебраического уравнения nй степени. Решение алгебраического уравнения в Scilb состоит из двух этапов. Примеры символьных операций с полиномами p1=poly[1 2]xc p1 = 1 2x p2=poly[3 7 2]xc p2 = 2 3 7x 2x p1p2 Сложение ns = 2 2 5x 2x p1p2 Вычитание ns = 2 4 9x 2x p1p2 Умножение ns = 2 3 3 13x 16x 4x p1 p2 Деление ns = 1 3 x p1^2 Возведение в...

Русский

2013-09-23

120.5 KB

12 чел.

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

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

Любое уравнение P(x) = 0, где P(x) - это многочлен, отличный от нулевого, называется алгебраическим уравнением или полиномом.

Всякое алгебраическое уравнение относительно x можно записать в виде a0xn+a1xn−1+· · ·+an−1x+an = 0,

где a0 <> 0, n > 1 и ai - коэффициенты алгебраического уравнения n–й степени.

Решение алгебраического уравнения в Scilab состоит из двух этапов.

1. Необходимо задать полином P(x) с помощью функции poly.

2. Найти его корни, применив функцию roots.

Определение полиномов в Scilab осуществляет функция poly(a, "x ["fl"]), где a - это число или матрица чисел, x - символьная переменная, fl - необязательная символьная переменная, определяющая способ задания полинома. Символьная переменная fl может принимать только два значения – «roots» или «coeff» (соответственно «r» или «c»).

Если fl=c, то будет сформирован полином с коэффициентами, хранящимися в параметре a.

Если же fl=r, то значения параметра a воспринимаются функцией как корни, для которых необходимо рассчитать коэффициенты соответствующего полинома.

По умолчанию fl=r.

Следующий пример отражает создание полинома p, имеющего в качестве корня тройку, и полинома f с коэффициентом 3.

Листинг 7.1. Полиномы первой степени

-->p=poly(3,’x’,’r’);

-->f=poly(3,’x’,’c’);

-->p

p =

- 3 + x

-->f

f =

3

Далее приведены примеры создания более сложных полиномов.

Листинг 7.2. Использование функции poly

-->//Полином с корнями 1, 0 и 2

-->poly([1 0 2],’x’)

ans =

2 3

2x - 3x + x

-->//Полином с коэффициентами 1, 0 и 2

-->poly([1 0 2],’x’,’c’)

ans =

2

1 + 2x

Рассмотрим примеры символьных операций с полиномами:

Листинг 7.3. Примеры символьных операций с полиномами

-->p1=poly([-1 2],’x’,’c’)

p1 =

- 1 + 2x

-->p2=poly([3 -7 2],’x’,’c’)

p2 =

2

3 - 7x + 2x

-->p1+p2 //Сложение

ans =

2

2 - 5x + 2x

-->p1-p2 //Вычитание

ans =

2

4 + 9x - 2x

-->p1*p2 //Умножение

ans =

2 3

- 3 + 13x - 16x + 4x

-->p1/p2 //Деление

ans =

1

-----

- 3 + x

-->p1^2 //Возведение в степень

ans =

2

1 - 4x + 4x

-->p2^(-1) //Возведение в отрицательную степень

ans =

1

-----------

2

3 - 7x + 2x

Функция roots(p) предназначена для решения алгебраического уравнения.

Здесь p - это полином, созданный функцией poly и представляющий собой левую часть уравнения P(x) = 0.

Решим несколько алгебраических уравнений.

Задача 7.1. Найти корни полинома 2x4 − 8x3 + 8x2 − 1 = 0.

Для решения этой задачи необходимо задать полином p. Сделаем это при помощи функции poly, предварительно определив вектор коэффициентов V . В уравнении отсутствует переменная x в первой степени, это означает, что соответствующий коэффициент равен нулю:

Листинг 7.4. Формирование полинома

-->V=[-1 0 8 -8 2];

-->p=poly(V,’x’,’c’)

p =

1 + 8x2 - 8x 3+ 2x4

Теперь найдем корни полинома:

Листинг 7.5. Использование функции roots

-->X=roots(p)

X =

! 0.4588039 !

! - 0.3065630 !

! 1.5411961 !

! 2.306563 !

Графическое решение задачи позволяет убедиться, что корни найдены верно.

Пересечение графиков функций F(x)= 1 + 8x2 - 8x 3+ 2x4 и g(x)=0

Задача 7.2. Найти корни полинома x3 + 0.4x2 + 0.6x − 1 = 0.

Листинг 7.6. Решение задачи 7.2

-->roots(poly([-1 0.6 0.4 1],’x’,’c’))

ans =

! 0.7153636 !

! - 0.5576818 + 1.0425361i !

! - 0.5576818 - 1.0425361i !

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

Задача 7.3. Найти решение уравнения y(x) = 0, если y(x) = x4 − 18x2 + 6.

Листинг 7.7. Решение задачи 7.3

-->x=poly(0,’x’);

-->y=x^4-18*x^2+.6;

-->roots(y)

ans =

! 0.1827438 !

! - 0.1827438 !

! - 4.2387032 !

! 4.2387032 !

Приведите графическое решение данного уравнения.

Трансцендентные уравнения

Уравнение f(x) = 0, в котором неизвестное входит в аргумент трансцендентных функций, называется трансцендентным уравнением.

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

В общем случае аналитическое решение уравнения f(x) = 0 можно найти только для узкого класса функций. Чаще всего приходится решать это уравнение численными методами.

Численное решение нелинейного уравнения проводят в два этапа.

  1.  В начале отделяют корни уравнения, т.е. находят достаточно тесные промежутки, в которых содержится только один корень. Эти промежутки называют интервалами изоляции корня, определить их можно, изобразив график функции f(x) или любым другим методом.
  2.  На втором этапе проводят уточнение отделенных корней, или, иначе говоря, находят корни с заданной точностью.

Для решения трансцендентных уравнений в Scilab применяют функцию

fsolve(x0,f)

где x0 - начальное приближение, f - функция, описывающая левую часть уравнения y(x) = 0.

Рассмотрим применение этой функции на примерах.

Задача 7.4. Найти решение уравнения

Определим интервал изоляции корня заданного уравнения. Воспользуемся графическим методом отделения корней. Если выражение, стоящее в правой части уравнения, представить в виде разности двух функций f(x) − g(x) = 0, то абсцисса точки пересечения линий f(x) и g(x) - корень данного уравнения. В нашем случае .

Корень данного уравнения лежит в интервале [0; 1].

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

Листинг 7.8. Решение задачи 7.4

-->deff(’[y]=f1(x)’,’y1=((x-1)^2)^(1/3),y2=(x^2)^(1/3),y=y1-y2’)

-->fsolve(0,f1)

ans = 0.5

Задача 7.5. Найти корни уравнения f(x) = ex/5 − 2(x − 1)2.

На рисунке видно, что график функции f(x) трижды пересекает ось абсцисс, т.е. уравнение имеет три корня.

Последовательно вызывая функцию fsolve с различными начальными приближениями, получим все решения заданного уравнения:

Листинг 7.9. Решение задачи 7.5

-->deff(’[y]=f(x)’,’y=exp(x)/5-2*(x-1)^2’)

-->x(1)=fsolve(0,f);x(2)=fsolve(2,f);x(3)=fsolve(5,f);

-->x

x = ! 0.5778406 !

! 1.7638701 !

! 5.1476865 !

Кроме того, начальные приближения можно задать в виде вектора, и тогда функцию можно вызвать один раз:

Листинг 7.10. Решение задачи 7.5 (альтернативный способ)

-->fsolve([0;2;5],f)

ans = ! 0.5778406 !

! 1.7638701 !

! 5.1476865 !

Задача 7.6. Вычислить корни уравнения sin(x) − 0.4x = 0 в диапазоне [−5π; 5π].

Решение задачи представлено в листинге 7.11.

Листинг 7.11. Решение задачи 7.6

-->deff(’[y]=fff(x)’,’y=-0.4+sin(x)’)

-->V=[-5*%pi:%pi:5*%pi]; X=fsolve(V,fff);

-->X //Множество решений

X = !-16.11948 -12.154854 -9.8362948 -5.8716685 -3.5531095

0.4115168 2.7300758 6.6947022 9.0132611 12.977887 15.296446!

Задача 7.7. Найти решение уравнения y(x) = 0, если y(x) = x5 − x3 + 1.

Решить самостоятельно.


 

А также другие работы, которые могут Вас заинтересовать

19342. КЭШ-ПАМЯТЬ 159 KB
  АК ЛЕКЦИЯ № 19 КЭШПАМЯТЬ Кэшпамять Как уже отмечалось в качестве элементной базы основной памяти в большинстве ВМ служат микросхемы динамических ОЗУ на порядок уступающие по быстродействию центральному процессору. В результате процессор вынужден простаивать не
19343. АРХИТЕКТУРЫ С ПОЛНЫМ И СОКРАЩЁННЫМ НАБОРОМ КОМАНД 158.5 KB
  АК ЛЕКЦИЯ № 20 АРХИТЕКТУРЫ С ПОЛНЫМ И СОКРАЩЁННЫМ НАБОРОМ КОМАНД Современная технология программирования ориентирована на языки высокого уровня ЯВУ главная задача которых облегчить процесс написания программ. Более 90 всего процесса программирования осуществл...
19344. КОНВЕЙЕРНАЯ АРХИТЕКТУРА 146 KB
  АК ЛЕКЦИЯ № 21 КОНВЕЙЕРНАЯ АРХИТЕКТУРА Конвейерная обработка данных. Что необходимо для сложения двух вещественных чисел представленных в форме с плавающей запятой Целое множество мелких операций таких как сравнение порядков выравнивание порядков сложение ман
19345. СУПЕРСКАЛЯРНЫЕ ПРОЦЕССОРЫ 306.5 KB
  АК ЛЕКЦИЯ № 22 СУПЕРСКАЛЯРНЫЕ ПРОЦЕССОРЫ Суперскалярные процессоры Поскольку возможности по совершенствованию элементной базы уже практически исчерпаны дальнейшее повышение производительности ВМ лежит в плоскости архитектурных решений. Как уже отмечалось од
19346. VLIW – ПРОЦЕССОРЫ. НЕТРАДИЦИОННЫЕ АРХИТЕКТУРЫ 354 KB
  АК ЛЕКЦИЯ № 23 VLIW ПРОЦЕССОРЫ. Нетрадиционные архитектуры Вычислительные системы с командными словами сверхбольшой длины VLIW Архитектура с командными словами сверхбольшой длины или со сверхдлинными командами VLIW Very Long Instruction Word известна с начала 80х из ряда универ...
19347. МНОГОЯДЕРНАЯ АРХИТЕКТУРА 277 KB
  АК ЛЕКЦИЯ № 24 МНОГОЯДЕРНАЯ АРХИТЕКТУРА Вычислительные системы класса MIMD Технология SIMD исторически стала осваиваться раньше что и предопределило широкое распространение SIMDсистем. В настоящее время тем не менее наметился устойчивый интерес к архитектурам класс...
19349. Проводниковые материалы 88 KB
  Лекция №2 Проводниковые материалы. Основные электрические параметры металлов Из общего курса физики известно что плотность электрического тока в веществе определяется зарядом q концентрацией n и дрейфовой средней направленной скоростью носителей заря
19350. Материалы используемые в электронных приборах 126 KB
  Лекция №1 Введение Для создания электронных приборов необходимо много различных материалов и уникальных технологических процессов. Современная радиотехника и особенно высокочастотная техника радиосвязь приборы и аппаратура радиоэлектроники требуют б...