1 of 19

Розв’язування задач із різних предметних галузей.�Практична робота 3

2-ге видання, оновлене

Урок 18

Інформатика

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.

Рівень стандарту 10(11)

2 of 19

Розв'язування задач із різних предметних галузей

Пакет Scilab дає змогу візуально відображати результати обчислень.

Розглянемо можливості пакета Scilab для побудови графіків функцій, розв’язування нелінійних рівнянь і пошуку мінімуму функції.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

3 of 19

Побудова графіків�функції однієї змінної

Scilab містить набір функцій для графічного подання інформації. Функція plot призначена для побудови графіка функції у = f(x). Загальний вигляд команди:

plot (х, у)

Вектор значень х має бути заданий перед використанням у функції plot.

два вектори однакового розміру.

х, у

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

4 of 19

Побудова графіків�функції однієї змінної

Задати заголовок графіка, найменування осей можна за допомогою функції:

xtitle(caption, хсар, усар)

заголовок

caption

хсар, усар

підписи осей Х, Y.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

5 of 19

Побудова графіків�функції однієї змінної

Побудуємо графік функції

у = sin(x)

-->x=0:0.1:2*%pi';

--> plot(x,sin(x));

--> xtitle('Графік функції f(x)=sin(x)','x', 'у');

--> xgrid; // побудова ліній сітки

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

6 of 19

Розв'язування нелінійних рівнянь

Ми вже розглянули функцію roots(f(x)), яку застосовують для пошуку коренів рівняння f(x) = 0, де f(x) є поліномом.

Але існують рівняння, які не можна розв’язувати алгебраїчними методами. Для розв’язування таких рівнянь існують методи наближених обчислень.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

7 of 19

Розв'язування нелінійних рівнянь

Для наближеного обчислення кореня нелінійного рівняння f(x) = 0 спочатку необхідно визначити інтервал [а,b], на якому існує єдиний корінь рівняння. Визначити такий інтервал можна, наприклад, за графіком функції f(x). Далі для розв’язування таких рівнянь слід застосовувати функцію:

fsolve(x0,f)

початкове наближення кореня рівняння —

0 є [а,b])

х0

функція, що описує ліву частину рівняння

f(x) = 0.

f

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

8 of 19

Розв'язування нелінійних рівнянь

Знайдемо корінь рівняння х5 - х3 + 1 = 0 на інтервалі�[-1.5;1.5]. Відомо, що в даному інтервалі рівняння має один корінь. Опишемо функцію f(x) = х5 - х3 + 1 , і задамо початкове наближення кореня -1.5:

-->function y=f(x)

-->у=х.^5-х.^3+1;

->endfunction

-->x=fsolve(1.5,f)

Отримуємо відповідь:

x = -1.2365057

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

9 of 19

Розв'язування нелінійних рівнянь

Знайдемо корені рівняння:

(0,2х + 0.5)3 = cosx

на інтервалі [-6; 5].

-->function y=f(x) // опис функції

--> y=(0.2*x+0.5)^3-cos(x)

--> endfunction

--> x=-6:0.1:5; // побудова графіка функції

--> plot(x,f(x))

--> xgrid();

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

10 of 19

Розв'язування нелінійних рівнянь

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

-->x=fsolve([-5;-2;1],f)

х =

-4.956089

-1.5334163

1.0443216

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

11 of 19

Пошук мінімуму�функції однієї змінної

Розглянемо пошук локального мінімуму функції однієї змінної як найпростішу оптимізаційну задачу.

Для знаходження значення мінімуму функції у Scilab існує функція:

[fmin,xmin]=optim(cst,x0)

Функція повертає значення мінімуму функції (fmin) і точку, в якій функція досягає цього значення (xmin).

масив початкових наближень довжиною n.

х0

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

12 of 19

Пошук мінімуму�функції однієї змінної

Головною особливістю функції optim є структура функції cst, яка має бути такою:

function [f,g,ind]= cst (x,ind)

f=<функція, мінімум якої шукаємо>

g=<похідна функції f>

endfunction

Значення параметра ind є внутрішнім параметром для зв'язку між:

optim

est

і

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

13 of 19

Пошук мінімуму�функції однієї змінної

Знайдемо мінімум функції f(x) = (0,2x + 0.5)3 — cosx на інтервалі [- 5;5]. Виконаємо команди:

-->function y=fm(x)

-->y=(0.2*x+0.5)^2-cos(x);

-->endfunction

-->function[f,g,ind]=cst(x,ind)

-->f=fm(x)

-->g=numderivative(fm,x)

-->endfunction

-->x0=-2; // Початкове наближення точки мінімуму

-->[fmin,xmin]=optim(cst,xo) // виклик функції optim для пошуку точки (fmin,xmin)

xmin = -0.1861794

fmin = -0.7685680

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

14 of 19

Пошук мінімуму�функції однієї змінної

Для пошуку максимуму функції f(x) треба застосувати функцію optim для функції -f(x).

Як видно з прикладів, перед пошуком коренів нелінійного рівняння або мінімуму функції доцільно побудувати графік функції f(x).

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

15 of 19

Питання для самоперевірки

  1. Поясніть алгоритм побудови графіка функції.
  1. Поясніть відмінності між областями застосування функцій roots(f) і fsolve(x,f).
  1. Функцію f(x) описано в такий спосіб:

function y=f (х)

у= х^з +2*х^2 - 3*х+1;

endfunction

Опишіть функцію est, яка буде використана як параметр у разі виклику функції optim(cst,xO), для знаходження значення мінімуму функції f(x).

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

16 of 19

Домашнє завдання

Проаналізувати

§ 18, с. 99-104

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

17 of 19

Працюємо за комп’ютером

Практична робота 3

Обчислення статистичних характеристик засобами MS Excel i Scilab

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

18 of 19

Працюємо за комп’ютером

Сторінка

103-104

© Вивчаємо інформатику teach-inf.com.ua

Розділ 2

§ 18

19 of 19

Дякую за увагу!

2-ге видання, оновлене

Урок 18

Інформатика

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.

Рівень стандарту 10(11)