Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MatLab_Лаб. раб.1-5.doc
Скачиваний:
3
Добавлен:
14.08.2019
Размер:
1.36 Mб
Скачать

2.4 Приклад

2.4.1 Покроковий розв’язок за допомогою метода Гауса

2.4.2 Приклад функції, що реалізує зворотній хід методу Гауса

function X=backward(A,B) // Знаходимо розв’язок системи – вектор X, А – верхня трикутна матриця

n=length(B)

X=zeros(n,1) // Формує масив нулів [n х 1]

X(n)=B(n)/A(n,n) // Ділимо праву частину останнього рівняння системи на коефіцієнт при x лівої частини рівняння

for k=n-1:-1:1

X(k)=(B(k)-A(k,k+1:n)*X(k+1:n))/A(k,k) // Використовуючи попередньо обчислені х знаходимо розв’язки системи

end

end

A = [-0.87 0.27 -0.22 -0.18 -1.21;

-0.21 -1 -0.45 0.18 0.33;

0.12 0.13 -0.33 0.18 0.48;

0.33 -0.41 0 -1 1.21;]

X=backward(A,B)

Результат:

A =

-0.8700 0.2700 -0.2200 -0.1800

0 -1.0652 -0.3969 0.2234

0 0 -0.4227 0.1903

0 0 0 -1.1188

B =

-1.2100 0.6221 0.4108 0.6017

X =

1.7332

-0.2445

-1.2140

-0.5378

2.5 Зміст звіту

  1. Завдання;

  2. Текст програми;

  3. Результати розрахунків;

  4. Перевірка за допомогою стандартних функцій MatLab;

  5. Перевірка за допомогою підстановки розв’язку у систему;

  6. Висновок відносно оцінки точності обраного методу.

Лабораторна робота №3 розв’язок нелінійних рівняннь

3.1 Побудування графіка в Matlab

Графіки в MatLab будуються в окремих вікнах. В одому вікні можна побудувати як один так і декілько графіков.

Треба знати, що MatLab будує графіки функцій за рядом точок, з’єднуючи їх відрізками прямих. Отже треба задати інтервал аргумента х з шагом (наприклад х=0:0.1:10), f потім використати команду побудування графіків plot (наприклад plot(sin(x))). Також відзначимо що функції можуть бути задані змінними, що не мають чітко вказаного аргумента у вигляді у(х):

>> y=sin(x);

Така можливість обумовлена тим, що змінні є векторними. Тож можна використати ще одну із форм функції plot, яка дає можливість побудувати відразу декілько графіків:

>> plot(x1,y1,x2,y2,x3,y3)

де х1, х2, х3 – вектори аргументів функції, а у1, у2, у3 – вектори значень функції, графіки яких будуються.

3.2 Розв’язок рівняннь засобами Matlab

fzero('имя',x0), fzero('имя',x0,eps), fzero ('имя', x0, eps , trace), fzero ('имя', x0, eps, trace,p1,...,p10) – пошук дійсних коренів функції однієї змінної при начальному приближенні х0 (можна взятии й у формі [a,b] при умовіf(a) x f(b) < 0) з відносною заданною похибкою; trace=1 – виведення проміжних результатів. Використовується метод дихотоммії, хорд і зворотньої квадратичної інтерполяції.

Процес пошуку кореня можна побачити з приклада: >>> fzero('sin',6,[],1)

Func evals x f(x) Procedure

1 6 -0.279415 initial

2 5.83029 -0.437567 search

3 6.16971 -0.113236 search

4 5.76 -0.499642 search

5 6.24 -0.0431719 search

6 5.66059 -0.583146 search

7 6.33941 0.0561963 search

Looking for a zero in the interval [5.6606, 6.3394]

8 6.27974 -0.00344052 interpolation

9 6.28319 1.70244e-006 interpolation

10 6.28319 -3.35667e-012 interpolation

11 6.28319 -2.44921e-016 interpolation

12 6.28319 2.41961e-015 interpolation

ans = 6.28318530717959

>> 2*pi

ans = 6.28318530717959

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