- •Овтеты по информатике
- •1. Характеристика технического обеспечения компьютера
- •2. Структура и характеристика системного блока
- •3. Обзор и характеристика внешних устройств компьютера
- •4. Характеристика программного обеспечения компьютера
- •5.Общее (системное) программное обеспечение
- •6. Операционная система Windows, ее возможности и особенности
- •7. Характеристика и приемы работы с основными объектами Windows
- •8. Характеристика сервисных программ управления файлами
- •9. Обзор прикладного программного обеспечения
- •10. Определение, свойства алгоритмов и классификация алгоритмов
- •11. Графические схемы алгоритмов
- •12. Примеры линейных, разветвляющихся, циклических алгоритмов
- •13. Общая характеристика языков программирования
- •14. Компьютерные сети и их классификация
- •15. Аппаратные компоненты компьютерной сети
- •16. Программное обеспечение компьютерных сетей
- •17. Глобальная сеть Интернет, общая характеристика, состав
- •19. Поиск информации в Интернет. Информационно-поисковые системы
- •20. Характеристика Web-сайта и Web-страницы
- •21. Общая характеристика систем компьютерной математики
- •22. Выполнение базовых вычислений в Scilab
- •23. 24.Работа с векторами в Scilab, Обработка матриц в Scilab
- •25. Основные операторы программирования в Scilab
- •32. Линейная интерполяция данных в Scilab
- •33. Сплайновая интерполяция данных в Scilab
- •34. Аппроксимация данных в Scilab по методу наименьших квадратов
25. Основные операторы программирования в Scilab
В Scilab встроен мощный язык программирования с поддержкой объектов. В этой главе будет описаны возможности структурного программирования, следующая глава будет посвящена визуальному программированию в среде Scilab.
Как уже отмечалось раннее, работа в Scilab может осуществляться не только в режиме командной строки, но и в так называемом программном режиме. Напомним, что для создания программы (программу в Scilab иногда называют сценарием) необходимо:
1.Вызвать команду Editor из меню (см. рис. 9.1).
2.В окне редактора Scipad набрать текст программы.
3.Сохранить текст программы с помощью команды File – Save в виде файла с расширением sce , например, file.sce .
4.После этого программу можно будет вызвать, набрав в командной строке exec, например, exec("file.sce"). Другие способы вызова воспользоваться командой меню File – Exec. . . или, находясь в окне Scipad, выполнить команду Execute – Load into Scilab (Ctrl+L ).
Программный режим достаточно удобен, так как он позволяет сохранить разработанный вычислительный алгоритм в виде файла и повторять его при других исходных данных в других сессиях. Кроме обращений к функциям и операторов присваивания, в программных файлах могут использоваться операторы языка программирования Scilab (язык программирования Scilab будем называть sciязыком).
9.1. Основные операторы sci-языка |
173 |
Рис. 9.1. Окно Scipad с программой решения кубического уравнения
9.1Основные операторы sci-языка
Изучение sci-языканачнем с функцийввода-вывода.
9.1.1Функции ввода-выводав Scilab
Для организации простейшего ввода в Scilab можно воспользоваться функциями
x=input(’title’);
или
x=x_dialog(’title’, ’stroka’);
Функция input выводит в командной строке Scilab подсказку title и ждет, пока пользователь введет значение, которое в качестве результата возвращается в переменную х. Функция x_dialog выводит на экран диалоговое окно с именем title, после чего пользователь может щелкнуть OK, и тогда stroka вернется в качестве результата в переменную x, либо ввести новое значение вместо stroka,
174 |
Глава 9. Программирование в Scilab |
которое и вернется в качестве результата в переменную x. На рисунке 9.2 представлено диалоговое окно, которое формируется строкой x=x_dialog(’Input X’, ’5’).
Рис. 9.2. Окно ввода
Функция input преобразовывает введенное значение к числовому типу данных, а функция x_dialog возвращает строковое значение. Поэтому при использовании функции x_dialog для ввода числовых значений возвращаемую ею строку следует преобразовать в число с помощью функции evstr. Можно предложить следующую форму использования функции x_dialog для ввода числовых значений:
x=evstr(x_dialog(’title’,’stroka’));
Для вывода в текстовом режиме можно использовать функцию disp следующей структуры:
disp(b)
Здесь b имя переменной или заключенный в кавычки текст.
9.1.2Оператор присваивания
Оператор присваивания имеет следующую структуру
a=b
здесь a имя переменной или элемента массива, b значение или выражение. В результате выполнения оператора присваивания переменной a присваивается значение выражения b.
9.1.3Условный оператор
Одним из основных операторов, реализующих ветвление в большинстве языков программирования, является условный оператор if. Существует обычная и расширенная формы оператора if в Scilab. Обычный if имеет вид
9.1. Основные операторы sci-языка |
175 |
if условие операторы1 else операторы2 end
Здесь условие логическое выражение, операторы1, операторы2 операторы языка Scilab или встроенные функции. Оператор if работает по следующем алгоритму: если условие истинно, то выполняются операторы1, если ложно
операторы2.
В Scilab для построения логических выражений могут использоваться условные операторы: &, and (логическое и), |, or (логическое или), ˜, not (логическое отрицание) и операторы отношения: < (меньше), > (больше), == (равно), ˜=, <> (не равно), <= (меньше или равно), >= (больше или равно).
Зачастую при решении практических задач недостаточно выбора выполнения или невыполнения одного условия. В этом случае можно, конечно, по ветке else написать новый оператор if, но лучше воспользоваться расширенной формой оператора if.
if условие1 операторы1 elseif условие2
операторы2 elseif условие 3 операторы3
...
elseif условие n операторыn
else операторы end
В этом случае оператор if работает так: если условие1 истинно, то выполняются операторы1, иначе проверяется условие2, если оно истинно, то выполняются операторы2, иначе проверяется условие3 и т. д. Если ни одно из условий по веткам else и elseif не выполняется, то выполняются операторы по ветке else.
Оператор while
Оператор цикла while имеет вид
while условие операторы end
Здесь условие логическое выражение; операторы будут выполняться циклически, пока логическое условие истинно.
Оператор цикла while обладает значительной гибкостью, но не слишком удобен для организации ¾строгих¿ циклов, которые должны быть выполнены заданное число раз. Оператор цикла for используется именно в этих случаях.
9.1.6Оператор for
Оператор цикла for имеет вид
for x=xn:hx:xk операторы
end
Здесь x имя скалярной переменной параметра цикла, xn начальное значение параметра цикла, xk конечное значение параметра цикла, hx шаг цикла. Если шаг цикла равен 1, то hx можно опустить, и в этом случае оператор for будет таким.
for x=xn:xk операторы end
Выполнение цикла начинается с присвоения параметру стартового значения (x = xn). Затем следует проверка, не превосходит ли параметр конечное значение (x > xk). Если x > xk, то цикл считается завершенным, и управление передается следующему за телом цикла оператору. Если же x 6 xk, то выполняются операторы в цикле (тело цикла). Далее параметр цикла увеличивает свое значение на hx (x = x + hx). После чего снова производится проверка значения параметра цикла, и алгоритм повторяется.
26. Создание двумерных графиков в Scilab
Стр. 56 книги
27. Редактирование и форматирование графиков
Форматирование и редактирование графиков: Для изменения формата осей, способа их оцифровки, цвета графиков необходимо: 1)щелкнуть мышью на графике, чтобы он заключился в синюю рамку; 2)обратиться к появившемуся пункту X-Y-Plot, команде Format; 3)используя закладки X-Y-оси, Графики, надписи выполнить форматирование.
28. Решение алгебраических уравнений в Scilab
Стр. 138
29. Решение полиномиальных уравнений в Scilab
30. Решение систем линейных уравнений в Scilab
Стр. 53
31. Аппроксимация и интерполяция данных, основные определения
Любому специалисту в своей практической деятельности приходится изучать зависимости между различными параметрами исследуемых объектов, процессов и систем. Например: зависимость числа оборотов двигателя от нагрузки, т.е. n=f(Мкр.); зависимость силы резания при обработке детали на металлорежущем станке от глубины резания, т.е. P=f(t), и т.д. Из всех способов задания зависимостей наиболее удобным является аналитический способ задания зависимости в виде функции n=f(Мкр.), P=f(t), y=f(t). Однако на практике специалист чаще всего получает зависимости между исследуемыми параметрами экспериментально. В этом случае ставится натурный эксперимент, изменяются значения параметров на входе системы, измеряются значения параметров на выходе системы. Результаты измерений заносятся в таблицу. Таким образом, в результате проведения натурного эксперимента получаем зависимости между исследуемыми параметрами в виде таблицы, т.е. получаем, так называемую, табличную функцию.
Далее с этой табличной функцией необходимо вести научно-исследовательские расчеты. Например, необходимо проинтегрировать или продифференцировать табличную функцию и т.д. При такой постановке задачи моделирования нужно заменить табличную функцию аналитической. Для этой цели используются методы аппроксимации и интерполяции. Аппроксимация – это замена исходной функции f(x) функцией φ(x) так, чтобы отклонение f(x) от φ(x) в заданной области было наименьшим. Функция φ(x) называется аппроксимирующей.
Если исходная функция f(x) задана таблично (дискретным набором точек), то аппроксимация называется дискретной. Если исходная функция f(x) задана аналитически (на отрезке), то аппроксимация называется непрерывной или интегральной.
Интерполяция
– это замена исходной функции f(x) функцией
φ(x) так, чтобы φ(x) точно проходила через
точки исходной функции f(x). Интерполяция
еще называется точечной аппроксимацией.
Точки исходной функции f(x) называются
узлами интерполяции. Для интерполирующей
функции справедливо:
Экстраполяцией
называется аппроксимация вне заданной
области определения исходной функции,
т.е.
Найдя
интерполяционную функцию, мы можем
вычислить ее значения между узлами
интерполяции, а также определить значение
функции за пределами заданного интервала
(провести экстраполяцию). Основной мерой
отклонения функции y(x) от функции f(x) при
аппроксимации является величина, равная
сумме квадратов разностей между
значениями аппроксимирующей и исходной
функций
|
|
|
|
Простейшими видами интерполяции является линейная и квадратичная. При линейной интерполяции точки заданной функции соединяются линейными отрезками, и функция f(x) приближается ломаной с вершинами в данных точках. В качестве уравнения интерполяционного многочлена используются уравнения прямой, проходящей через две точки. При квадратичной интерполяции в качестве приближающей функции, соединяющей соседние точки, принимается квадратный трехчлен. Такая интерполяция называется параболической. Распространенным видом интерполяции является интерполяция с использованием кубических сплайн-функций. Сплайн представляет собой модель гибкого тонкого стержня из упругого материала, закрепленного в двух соседних узлах интерполяции с заданными углами наклона α и β так, чтобы потенциальная энергия стержня была минимальна.
Интерполяция может выполняться с помощью многочленов Ньютона, Эрмита, Лагранжа и т.д. Наиболее известными методами аппроксимации являются метод наименьших квадратов, метод многочленов Чебышева, рядов Тейлор и т.д. При решении задач аппроксимации часто используются функции регрессии. Регрессия – представление совокупности данных некоторой функцией f(x). Задачей регрессии является вычисление параметров функции f(x) таким образом, чтобы функция приближала последовательность исходных точек с наименьшей погрешностью. При этом функция f(x) называется уравнением регрессии. При регрессии не требуется чтобы функция проходила через все заданные точки, что особенно важно при аппроксимации данных, заведомо содержащих ошибки.
