Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sci.doc
Скачиваний:
14
Добавлен:
20.04.2019
Размер:
392 Кб
Скачать
☆

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

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

называется трансцендентным уравнением. К трансцендентным уравнениям принадлежат

показательные, логарифмические, тригонометрические. В общем случае аналитическое

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

приходится решать это уравнение численными методами.

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

корни уравнения, то есть находят достаточно тесные промежутки, в которых содержится

только один корень. Эти промежутки называют интервалами изоляции корня, определить их

можно, изобразив график функции f(x) или любым другим методом2. На втором этапе

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

точностью.

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

fsolve(x0,f)

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

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

ЗАДАЧА 6.4

Найти решение уравнения 3 (x 1)2 3 x2 0 .

Определим интервал изоляции корня заданного уравнения. Воспользуемся

графическим методом отделения корней. Если выражение, стоящее в правой части уравнения

представить в виде разности двух функций f(x)_ g(x)=0, то абсцисса точки пересечения линий

f(x) и g(x) _ корень данного уравнения . В нашем случае f (x) 3 (x 1)2 , g(x) 3 x2 . На рис. 6.4

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

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

уравнение и решим его:

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

-->fsolve(0,f1)

ans = 0.5

Листинг 6.8

2 Методы определения интервала изоляции корня основаны на следующем свойстве: если непрерывная

функции f(x) на интервале [a, b] поменяла знак, то есть f(a)∙f(b)<0, то она имеет на этом интервале хотя бы

один корень.

6

Рисунок 6.4. Графическое решение задачи 6.4

ЗАДАЧА 6.5

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

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

уравнение имеет три корня.

Рисунок 6.5. Графическое решение задачи 6.5

Последовательно вызывая функцию fsolve с различными начальными

приближениями, получим все решения заданного уравнения:

-->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 !

Листинг 6.9

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

можно вызвать один раз:

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

ans = ! 0.5778406 !

! 1.7638701 !

7

! 5.1476865 !

Листинг 6.10

ЗАДАЧА 6.6

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

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

-->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!

Листинг 6.11

ЗАДАЧА 6.7

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

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

один действительный корень (рис. 6.6) в интервале от _ 2 до _ 1.

Рисунок 6.6. Графическое решение задачи 6.7

Решим эту задачу при помощи функции fsolve:

-->deff('[f]=y(x)','f=x^5-x^3+1')

-->X=fsolve(-2,y)

X = 1.2365057

Листинг 6.12

Теперь применим функцию roots:

-->roots(poly([1 0 0 -1 0 1],'x','c'))

ans =

! 0.9590477 + 0.4283660i !

! 0.9590477 - 0.4283660i !

! - 0.3407949 + 0.7854231i !

! - 0.3407949 - 0.7854231i !

! - 1.2365057 !

Листинг 6.13

8

Как видим, заданное уравнение, кроме действительного корня (листинг 6.12), имеет и

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

функцию roots.

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