Материал: Спецглавы высшей математики. численные методы. Пантелеев И.Н

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

x i 1 Funcl x i , m, f ;

i i 1; end;

z x ;

6. Задайте параметры итерационного процесса:

>>q 0.01;

>>eps 10^ 5;

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

>>z My _ Itel 'Func' , x0,eps, q, m

8.Визуализируйте итерационный процесс (рис. II.7).

>>plot z,' 0' ;

29

Рис.II.6. Зависимость значения корня уравнения от номера шага итерационного процесса

9. Выведите точное значение корня.

>>Ni lenth z ;

>>z Ni

ans=

0.3942

10. Выведите значения функции. >>Func z Ni

ans =

-1.8185e-006

30

Для вычисления нулей функций, зависящих от одной перемененной, в пакете MATLAB предусмотрена специальная функция fzero , реализующая в зависимости от вида

функции методы половинного деления, секущих или обратной квадратичной интерполяции. Обращение к данной функции имеет следующий вид:

x fzero fun, x0,optlone, P1, P2,

x, fval,exitflag,output fzero

Здесь:

Fun — строковая переменная, содержащая имя файла.

x0 — начальное приближение или интервал поиска решения.

options — параметры, задающие точность и способ представления результатов вычислений.

PI, P2, ... — дополнительные аргументы, передаваемые в функцию fun (например, F=feval(FUN,X,P1,P2,. . . ) ) .

fval — переменная, в которую функция f zero () возвращает значение корня уравнения f x = 0.

exitflag — переменная, знак которой свидетельствует о наличии корня на данном интервале (например, exitflag=1 — корень существует);

output— переменная, в которую функция fzero() возвращает название метода, использованного для нахождения корня уравнения.

Пример II.3. Решение уравнения x4 11x3 x2 x 0.1 0 с использованием функции fzero()

>> x fzero ' Func' ,0.8 .

x

0.3942

31

Поиск корня на отрезке [-2, 2]: >> x fzero ' Func' , 2;2

x

0.3942

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

>> x fzero ' Func' ,0.8,optimset 'Tolx' ,10^ 2,'disp' ,'iter '

Funccount

X

£(x)

Procedure

1

0.8

-3.6824

initial

2

0.777373

-3.32063

search

3

0.822627

-4.06625

search

4

0.768

-3.17712

search

5

0.832

-4.23184

search

6

0.754745

-2.98039

search

7

0.845255

-4.47271

search

8

0.736

-2 .71444

search

9

0.86-1

-4.82695

search

10

0.70949

-2.36229

search

11

0.89051

-5.35561

search

12

0.672

-1.9106

search

13

0.928

-6.16014

search

14

0.618981

-1.35979

search

15

0.981019

-7.41582

search

16

0.544

-0.743367

search

 

 

32

 

17

1.056

-9.43876

search

I8

0.437961

-0.157497

search

19

1.16204

-12.8248

search

20

0.288

0.215057

search

Looking for a

in the inter-

[0.288, 1.162]

21

0.308

0.190464

interpolation

22

0.460543

-0.256865

interpolation

23

0.37295

0.0607713

interpolation

24

0.397562

-0.010605

interpolation

zero found in the interval: 0.288,1.162 x 0.3976

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

>> xfval fzero ' Func' ,0.8,optimset 'TolX ' ,10^ 5,'disp' ,'iter '

33

Funcount

X

f(x)

Proce-

1

0.8

-3.6824

initial

2

0.77737

-3.32063

search

3

0.82262

-4.06625

search

4

0.768

-3.17712

search

5

0.832

-4.23184

search

6

0.75474

-2.98039

search

7

0.84525

-4.47271

search

8

0.736

-2.71444

search

9

0.864

-4.82695

search

10

0.70949

-2.36229

search

11

0.83051

-5.35561

search

12

0.672

-1.9106

search

13

0.928

-6.16014

search

14

0.618981

-1.35979

search

15

0.98101

-7.41582

search

16

0.544

-0.743367

search

17

1.056

-9.43876

search

18

0.43796

-0.157497

search

19

1.16204

-12

.8248

search

20

0.288

0

.215057

search

Looking for a zero in the interval

[0.288, 1.162]

21

0.302415

0.198003

interpola-

22

0.467237

-0.288821

interpola-

23

0.369452

0.0698667

interpola-

24

0.398884

0.0148167

interpola-

25

0.393735

0.0013607

interpola-

26

0.394168

,27096e-

interpola-

27

0.394188

,91718e-

interpola-

34

Zero found the interval: [0.288,

in 1.162]. x -0.3942

fval = 2.2710e-

Поиск корня с точностью до 10 3 , вывод на экран значения корня на последнем шаге итерационного процесса:

>> x fzero ' Func' ,3,optimset 'disp' ,'final '

zero fond in the interval: 0.28471,4.92

x

0.3942

Для нахождения корней полинома в пакете MATLAB предусмотрена соответствующая функция roots(), возвращающая вектор-столбец, компоненты которого являются корнями полинома (действительными или комплексными).

Обращение к данной функции имеет следующий вид: r roots c

Здесь с-вектор строка, содержащая значение коэффициентов полинома:

c1 xn c2 xn 1 cn 1 x0

ПримерII.4. Найти корень уравнения x4 11x3 x2 x 0.1 0

используя функцию roots():

>> c 1, 11,1,1,01 ; >>roots c

ans=

10.8998

0.3942 -0.1470+0.04091 -0.1470-0.04091

35

36

III. МЕТОДЫ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ

3.1. Общие сведения и основные определения

Рассмотрим систему, состоящую из m линейных алгебраических уравнений с n неизвестными:

a11 x1 a12 x2 a1n xn b1 ,

 

a21 x1 a22 x2 a2n xn b2 ,

(Ш.1)

am1 x1 am2 x2 amn xn bm ,

 

которая может быть записана в матричном виде:

 

A x b ,

(III.2)

где А- прямоугольная матрица размерности m n;

a11 , a12 , a1n

 

 

A a21 , a22 , a2n

,

(Ш.3)

 

, am2

 

 

 

 

am1

, amn

 

x-вектор n—го порядка:

 

 

 

 

 

 

 

x

 

 

 

 

x

1

 

 

 

 

x2

,

 

 

 

 

 

 

 

 

 

 

xn

 

 

 

b-вектор порядка m:

 

 

 

 

 

 

 

b

 

 

 

 

b

1

 

 

 

 

b2

,

 

 

 

 

 

 

 

 

 

 

bm

 

 

 

Определение III.1. Решение системы (III.1) называется такая упорядоченная совокупность чисел

37

x1 c1 , x2 c2 , , xn cn , которая обращает все уравнения системы (III.1) в верные равенства.

Определение III.2. Прямыми методами решения систем линейных уравнений называются методы, дающие решение системы за конечное число арифметических операций. Если отсутствуют ошибки округления, то получаемые решения всегда являются точными.

Определение III.3. Итерационными методами решения систем линейных уравнений называются методы, дающие решение системы уравнений как предел последовательности приближений, вычисляемых по единообразной схеме.

3.2. МетодГауссаиегореализациявпакетеMATLAB

Рассмотрим систему линейных алгебраических уравнений

a11 x1 a12 x2

a1n xn b1 ,

 

a21 x1 a22 x2

a2n xn b2 ,

(Ш.4)

an1 x1 an2 x2

ann xn bn ,

 

при условии, что матрица A aij невырождена. Метод Гаусса

состоит в преобразовании системы (III.4) последовательным исключением переменных к равносильной системе с треугольной матрицей

x1 12 xn 1n xn 1 ,

 

x2 2n xn 2 ,

 

…………………….

 

xn n ,

(III.5)

Затем из системы (III.5) последовательно находят значения всех неизвестных xn , xn l , , xl .

38

Источник: https://studfile.net/preview/16565850/