Практическое занятие по теме
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

«Средства программирования в Scilab»

 

Цель работы: Изучение средств программирования системы Scilab и получение практических навыков разработки, написания и отладки программных приложений в Scilab.

 

 

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

1) Виды sce -файлов.

2) Особенности сценариев и функций.

3) Структура сценариев и функций.

4) Запуск на выполнение сценария из текстового редактора.

5) Запуск на выполнение сценария из Командного окна

6) Обращения к файлам и функциям.

7) Средства языка программирования в системе Scilab.

8) Основные операторы языка Scilab, назначение и форматы.

9) Создание и использование библиотеки функций.

10) Графический интерфейс приложений пользователя.

 

 

1.5.2.1 Общее задание №1

«Программирование алгоритмов

Итеративных циклических структур»

 

1) Изучить материал учебника [1] (п. 1.5).

2) Выбрать вариант задания из таблицы 1.5.2-1 по заданию преподавателя.

3) Провести формализацию поставленной задачи.

4) Составить схему алгоритма решения поставленной задачи средствами Visio [8].

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

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

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

8) Выполнить созданное приложение и получить решение.

9) Обосновать правильность полученных результатов на заранее разработанных тестах.

10) Представить отчет преподавателю.

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

 

                                                       Таблица 1.5.2-1


Задание


1)

Вычислить с точностью ε = 0.00001 константу Эйлера (основание натурального логарифма), воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

2 )

Вычислить и вывести те члены последовательности,

 значения которых больше ε = 0.001при x = 0.2.

3)

Вычислить arctg(x) с точностью ε = 0.0001, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции при x=1.5.

4)

Вычислить с точностью ε = 0.00001 значение функции   при x = 2, воспользовавшись рекуррентной формулой:

.

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

5)

Вычислить константу с точностью до ε = 0.00001, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

6)

Вычислить с точностью ε = 0.00001 значение функции

при x = 2, воспользовавшись формулой:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции

7)

Вычислить sin 0.5 с точностью ε = 0.0001, воспользовавшись

разложением в ряд:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

8)

Вычислить  с точностью ε = 0.00001, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

9

Вычислить cos 0.6 с точностью ε = 0.00001, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью

соответствующей встроенной функции.

10

Вычислить с точностью ε = 0.0001 корень уравнения x - cos( x)=0,   воспользовавшись формулой: .

Проверить правильность решения подстановкой найденного корня в уравнение.

11

Вычислить и вывести те члены последовательности,

значения которых по модулю больше ε = 0.001 при x = 0.5.

1 2

Вычислить  при |x|<1 с точностью до ε = 0.0001, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

1 3

Вычислить корень уравнения с точностью ε=0.0001, воспользовавшись итерационной формулой

Проверить правильность решения подстановкой найденного корня в уравнение.

1 4

Вычислить значение с точностью ε = 0.00001, воспользовавшись представлением в виде в виде цепной дроби:

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

.

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

1 5

Вычислить и вывести те члены последовательности,

значения которых по модулю больше ε = 0.001 при x = 0.3.

16

Вычислитьln ( x ) с точностью ε = 0.0001, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью

соответствующей встроенной функции при x=1.5.

17

Вычислить sh 0.3 с точностью до ε= 0.00005, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью встроенной функции для вычисления ex, используя соотношение:

18

Вычислить корень уравнения x -0.5( sinx 2 -1)=0 с точностью ε = 0.001, воспользовавшись итерационной формулой:

Проверить правильность решения подстановкой найденного корня в уравнение.

19

Вычислить ln(2) с точностью ε = 0.001, воспользовавшись представлением в виде ряда:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

20

Вычислить с точностью ε = 0.00001 корень уравнения

воспользовавшись итерационной формулой

Проверить правильность решения подстановкой.

2 1

Вычислить ch 0.7 с точностью до ε = 0.00005, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью встроенной функции , используя соотношение:

2 2

Вычислить приближенное значение бесконечной суммы с точностью ε=0,0001 (справа от суммы дается выражение для проверки полученного результата):

(для |x|<1 сумма равна   )

2 3

Вычислить  при |x|>1 с точностью до ε = 0.0001, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

2 4

Вычислить ln(x+1)с точностью ε = 0.0001, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью

соответствующей встроенной функции при x=0.5.

2 5

Вычислить и вывести те члены последовательности,

значения, которых больше ε = 0.01, при x = 0.6.

26

Найти наименьшее целое положительное n, при котором:

 

 


27

Пусть  Дано действительное число e>0. Найти первый член , для которого выполнено условие .

28

Вычислить приближенное значение бесконечной суммы с точностью ε=0,0001 Сравнить полученный результат c точным значением,  равным π2/6-1: .

29

Вычислить приближенное значение бесконечной суммы с точностью  ε=0,0001. Сравнить полученный результат c точным значением,  равным π/4:     

30

Вычислить приближенное значение бесконечной суммы с точностью ε=0,0001 Сравнить полученный результат c точным значением,  равным 3/4:                              

 

1.5.2.3 Пример выполнения задания

 

1) Задание на разработку приложения

Создать приложение для вычисления и отображения на разработанной форме тех членов последовательности

,

значения которых при x=0.5по модулю больше e=0.0001.

2) Формализация и уточнение задания

Для решения поставленной задачи необходимо вывести рекуррентную формулу вычисления члена последовательности.

Очевидно, что выражение для n-го члена заданной последовательности имеет вид:

.

Тогда формула для (n+1) члена последовательности имеет вид:

Имея в виду, что (n+1)!=n! ∙ (n+1), получим

В результате получаем следующую рекуррентную формулу:

 -начальный член последовательности при n=1.

3) Разработка схемы алгоритма функции Pos (рис.1.5.4-1)

Рис. 1.5.4-1 Схема алгоритма решения задачи

4) Программный код решения задачи

 

// Сценарий-функция Pr1_5_1_fun.sce

// Практическое занятие 1.5по теме:

// «Программирование алгоритмов

// итеративных циклических структур»

// Вариант 0

// Входные параметры: аргумент х и точность eps

// Выходные параметры: вектор y содержит значения

// членов ряда, вектор k содержит номера выполненных итераций

function [y, k]=Pos(x, eps)

a=x-1; n=1;

while abs(a)>eps&& n<100

k(n)=n;

y(n)=a;

a=a.*(x-1)./(n+1);

n = n + 1;

end

endfunction

5) Графический интерфейс пользователя:

 

 

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

 

 

// Сценарий Pr1_5_1 GUI .sce // Создание интерфейса пользователя // Создание графического окна

f1=figure('position',[20,40,480,290],'figure_name',...

'Вычисление членов бесконечной последовательности');

 

// Определение текстовых полей для ввода исходных данных

//Текстовое поле заголовка Ввод исходных данных

text_vvod=uicontrol(f1,'style','text','string','',…

'position',[20,240,150,20],…

'String',' Ввод исходных данных');

// Поле ввода x

edit_x=uicontrol(f1,'style','edit','string','0.5',...

'position',[70, 200, 40, 20]);

textx=uicontrol(f1,'style','text','string','x',...

'position',[20,200,40,20]);

// Поле ввода eps

edit_eps=uicontrol(f1,'style','edit','string','0.0001',...

'position',[70, 170, 60, 20]);

text_eps=uicontrol(f1,'style','text','string','eps',...

'position',[20,170,40,20]);

 

// Определение текстовых полей для вывода результатов итераций

list1 = uicontrol(f1,'style','listbox','position',[200,20,80,160]);

list2 = uicontrol(f1,'style','listbox','position', [310, 20, 150, 160]);

 

// Заголовки полей вывода результатов

TextRez1 = uicontrol(f1, 'style', 'text', 'string', '',

'position',[200,180,150,20],'string', 'Итерация:');

TextRez2 = uicontrol(f1, 'style', 'text', 'string', '',…

'position',[340,180,150,20],'string', 'Ряд:');

 

// Определение кнопки Вычислить

bt1 =  uicontrol(f1, 'style', 'pushbutton', 'string', 'Вычислить',…

'position', [20,110,90,40], 'CallBack','YY');

// Определение кнопки Очистить

bt2 = uicontrol(f1, 'style', 'pushbutton', 'string', 'Очистить',…

'position', [20,20,90,40], 'CallBack','C');

// Конец сценария Pr1_5_1GUI.sce =========================================

 

 

// Сценарий выполнения задания Pr 1_5_1. sce

 

// Подключение сценария создания интерфейса

exec('Pr1_5_1GUI.sce');

// Подключение сценария-функции решения задачи

exec('Pr1_5_1fun.sce');

 

// Функция YY() содержит инструкции ввода исходных данных,

// вызов функции решения задачи(вычисления членов ряда)

// из сценария Pr1_5_1_fun.sce и инструкции вывода результатов

// Выполнение функции YY() инициируется нажатием кнопки "Выполнить"

function YY()

sx1=get(edit_x,'string');// считывание x и преобразование в строку

x=strtod(sx1);// преобразование sx1 к типу double

seps=get(edit_eps,'string');//считывание точности в строку

e=strtod(seps);// преобразование seps к типу double

[y,k]=Pos(x,e);// вызов функции решения задачи

// вывод результатов в соответствующие текстовые поля

set(list1,'string',sprintf("%d\n",k));

set(list2,'string',sprintf("%1.5f\n",y));

endfunction

 

// Функция С() очистки текстовых полей

// Выполнение функции инициируется нажатием кнопки "Очистить"

function C()

set(list1,'string',"");

set(list2,'string',"");

set(edit_x,'string',"");

set(edit_eps,'string',"");

endfunction

 

//Конец сценария Pr1_5_1.sce==============================================

 

 

-->// Сессия командного окна задания 1:

-->// Практическое занятие 1.5 по теме:

-->// «Программирование алгоритмов итеративных циклических структур»

-->// Вариант 0, задание 1

-->// Выполнил: Студент группы БИН1801 Иванов И.И.

-->

-->exec('Pr1_5_1.sce');

-->//Конец сессии ========================================================

7) Результат работы приложения

8)  Доказательство правильности работы приложения

Все выведенные значения последовательности больше заданной точности

eps =0.0001.

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

 

1) Титульный лист

2) Название и цель практического занятия

3) Общее задание

4) Результаты формализации задания

5) Графический интерфейс пользователя (по требованию преподавателя).

6) Сценарии, вначале которых должна быть введена информация в виде комментариев:

· имя и назначение сценария;

· номер задания и формулировка решаемой задачи и/или краткое перечисление действий, реализуемых в сценарии.

7) Протокол сессии Командного окна, вначале которого должна быть введена информация в виде комментариев:

· название практического занятия;

· вариант индивидуального задания и номер задания;

· ФИО студента, номер группы;

· краткое перечисление действий, выполняемых во время сессии.

 

 

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

«Программирование алгоритмов

Дата: 2019-11-01, просмотров: 725.