Файл: Электронное пособие Scilab.pdf

Добавлен: 15.11.2018

Просмотров: 12842

Скачиваний: 228

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

86 

 

 

 

 

 

Рис. 2.1.1-5.  Уточнение нескольких корней уравнения с использованием 

функции solve() 

 
 

Функция Scilab roots()  используется для вычисления корней полинома  

вида 

1

1

2

1

...

)

(

n

n

n

n

a

x

a

x

a

x

a

x

P

.    Перед  ее  использованием  создается 

список коэффициентов (даже нулевых), затем выполняется функция  

poly(a, ‘x’, [‘fl’])

где  a-  это  число  или  матрица  чисел,    x  -  символьная  переменная,  fl  – 

необязательная  символьная  переменная,  определяющая  способ  задания 
полинома. Символьная переменная fl может принимать только два значения 
"roots"  или  "coeff”  (соответственно  ‘r’или  ‘c’).  Если  fl=c,  то  будет 


background image

87 

 

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

необходимо 

рассчитать 

коэффициенты 

соответствующего 

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

Теперь  можно  использовать  функцию  roots(p),  у  которой  в  качестве 

аргумента  указывается      имя  полинома,  созданного  функцией  poly            
(рис. 2.1.1-6). 

 

 

 

Рис. 2.1.1-6.  Уточнение корня уравнения с использованием функции roots() 

 
Вычисление  корней  полинома

16

10

16

10

)

(

2

4

5

6

6

x

x

x

x

x

x

P

 

с 

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


background image

88 

 

2.1.2. Лабораторная работа по теме 

«Технология решения нелинейных уравнений  

средствами пакета Scilab» 

 
 

1. Вопросы, подлежащие изучению 

 

1)  Задание  функций  и  их  производных  с  использованием  средств  пакета 

Scilab

2)  Получение  таблиц  значений  функций  в  заданных  границах  изменения 

аргумента. 

3)  Построение графиков функций средствами Scilab
4)  Этапы решение нелинейных уравнений: отделение и уточнение корня. 
5)  Решение  нелинейных  уравнений  с  использованием  встроенных 

функций пакета Scilabfsolve(), poly() и roots().  

 
 

2. Общее задание 

 

1)  Изучите материал Темы 2.1  (п. 2.1.1). 
2)  Выберите индивидуальный вариант задания из табл. 2.1.2-1
3)  Отделите  корень  нелинейного  уравненияf(x)=0с  использованием 

средств пакета Scilab, для чего: 
•  Построить графики функции f(x)и ее первой производной; 

•  на  выбранном  отрезке  пересечения  графика  с  осью  ОХ  получить 

таблицы значений функции f(x)и ее первой производной 

•  проверить  условие  существования  единственного  корня  на 

выбранном отрезке. 

4)  Решите нелинейное уравнение с использованием функций  fsolve() . 
5)  Предъявите результаты выполнение задания на ПК преподавателю. 

 
 

3. 

Варианты индивидуальных заданий 

 

Таблица 2.1.2-1 

№ 

Уравнение 

№ 

Уравнение 

????

2

− 6 ln(???? + 1) + 2,8 = 0 

16 

2????

2

− sin ???? − 1,5 = 0 

????

2

− 4 sin ???? + 0,8=0 

17 

2 cos(???? − ????

3

) − ???? = 0 

????

2

− 3 sin ???? − 2,4 

18 

????

2

− 3,4 ln(1 + ????) − 1 = 0 

????

2

+ sin ???? − 0,5√(1 + 2????)

3

=0 

19 

????

????

− (???? + 1)

2

− 2 = 0 

3????

2

− 2 cos(???? + 1) − 4,8 = 0 

20 

????

2

− sin ???? = 0 

????

2

− 1,5 cos(???? + 3) − 1,8 = 0 

21 

????

????

− 4???? − 9,5 = 0 


background image

89 

 

ln(???? + 2) + cos(2 + ????) − 0,35

= 0 

22 

????

2

− 3sin ???? − 2???? = 0 

????

3

− 4,8 sin(1 + 2????) − 1=0 

23 

3 − 2 sin ???? − √????

2

+ 1 = 0 

????

2

− 2 sin(???? + 1) − 2 = 0 

24 

−(2 + 3 sin ???? − √????

2

+ 2 = 0 

10 

????

????−3

− ln(???? + 3) + 1 = 0 

25 

????

−0,4????

+ 3????

2

− 5???? − 3 = 0 

11  − sin ???? − √???? + 1 = 0 

26 

????

2

+ cos(???? − 4) + √???? + 1 −

3=0 

12 

cos(???? − 0,2????

2

) − ???? + 6 = 0 

27 

????

2

− ln ???? − 3 = 0 

13 

????

????

− 4???? = 0 

28 

−???? + ????

0,5????

= 0 

14 

0,1????

2

+ ???? ln ???? − ???? + 0,5 = 0 

29 

− sin ???? − √1 + ???? + 2 = 0 

15 

2????

−????

+ ????

????

− 4=0 

30 

4????

3

+ 2????

4

+ 9,5????

−2????

− 35

= 0 

 
 

4. 

Содержание отчета 

 

1)  В форме комментариев: 

  Название лабораторной работы 

  ФИО студента, номер группы 
  № варианта  

  Индивидуальное задание 

3)  Протокол вычислений (сессии) в окне Командного окна, снабженный 

необходимыми комментариями. 

 

2.1.3. 

Контрольные вопросы по теме 

 

1)  Что называется, нелинейным уравнением? 
2)  Этапы решения нелинейного уравнения. 
3)  Графическое отделение корней нелинейного уравнения средствами 

Scilab. 

4)  Аналитическое отделение корней нелинейного уравнения средствами 

Scilab. 

5)  Способы задания функции нелинейного уравнения. 
6)  Назначение и формат функции poly(). 
7)  Назначение и формат функции fsolve(). 
8)  Назначение и формат функции roots(). 

 
 
 
 
 


background image

90 

 

Тема 2.2. Технология аппроксимации 

интерполяции функций в среде пакета MatLab 

 

2.2.1.  Аппроксимация и интерполяция функций 
2.2.2.  Лабораторная работа  
2.2.3.  Контрольные вопросы по теме 

 

 

2.2.1. Аппроксимация и интерполяция функций 

 

Пусть  имеется  набор  узловых  точек  x

k

  (где  k=1,2,…,n)  и  значения  

функции  y(x

k

)в  этих  точках,  а  также  некоторая  функция  f(x,a

1

,  a

2

,  …,a

m

)

которая кроме аргумента х зависит еще и от параметров a

s

(где s=1, 2, …m). 

Задача  аппроксимации  состоит  в  том,  чтобы  подобрать  такие  значения 
параметров  a

s

,  что  функция  f(x,  a

1

,  a

2

,  …a

m

)наилучшим  образом  описывала 

бы  исходную  функцию.  Как  правило,  m<<n,  поэтому  добиться,  чтобы 
функция f(x, a

1

, a

2

, …a

m

) давала точные результаты даже в узловых точках не 

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

1

))

(

(

0

2

m

x

f

y

m

i

i

i

 

Частным 

случаем 

задачи 

аппроксимации 

является 

задача 

интерполяции функции. В этом случае также имеем набор узловых точек x

k

 

(где  k=1,2,…,n)  и  значения    функции  y

k

  в  этих  точках.  Однако,  в 

соответствии  с  критерием  интерполяции,  требуется  построить  такую 
функцию  f(x),  которая  в  узловых  точках  x

1

,  x

2

,…,x

n

принимала  бы  значения 

y

1

,  y

2

,  …,y

n

,  то  есть  f(x

k

)  =  y

k

для  всех  kот  1  доn.Чаще  всего  функцию  f(x) 

ищут  в  виде  полинома,  степень  которого  n-1.  Поэтому  задача  сводится  к 
определению  коэффициентов  интерполяционного  полинома  на  основании 
значений функции в базовых точках. 

 
На практике для решения задачи интерполяции (вычисления значений 

функции  в  точках,  несовпадающих  с  узлами  интерполяции)  используются 
интерполяционные формулы Ньютона и формула Лагранжа.  

 
Для выполнения полиномиальной аппроксимации в Scilab используется 

функция 

 

[a,S]=datafit(f,z,a0),  

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

заданными и расчетными значениями (y-f(x,a

0

, a

1

, …a

k

);