- •Информатика
- •Часть VI
- •1.1. Командное окно
- •1.2. Вектора и матрицы
- •1.3. Построение графиков на плоскости
- •Xgrid()
- •Xtitle(‘Заголовок графика' ,'ось X' ,'ось y')
- •1.4. Вывод нескольких графиков в одном окне.
- •1.5. Построение трехмерных графиков
- •1.6. Решение некоторых задач линейной алгебры в диалоговом режиме
- •1.6.1. Вычисление определителя
- •1.6.3. Определение корней полинома
- •2. Разработка программы в Scilab
- •2.1. Использование редактора SciPad
- •2.2 Условный оператор
- •2.3. Оператор цикла
- •3. Решение задач вычислительной математики в окне редактора
- •3.1. Решение нелинейных уравнений
- •3.2. Вычисление определенного интеграла
- •2.2 Условный оператор………………………………………………
2.3. Оператор цикла
Решение задачи численными методами практически всегда включает в себя многократное повторение вычислений по одним и тем же формулам, но с различными числовыми данными. Эта часть называется циклом. Для организации цикла используется специальный оператор, который позволяет малым количеством операторов описать процесс выполнения большого объема вычислений и называется оператором цикла..
Оператор цикла состоит из заголовка, тела цикла, включающего один или несколько операторов, и завершается оператора end, который указывает, где именно заканчивается оператор цикла В теле цикла описывается фрагмент программы, который должен выполняться многократно. В языке программирования Scilab имеется несколько вариантов оператора цикла. Здесь рассматривается один из них. Заголовок этого оператора имеет вид:
for x=x0 : dx: xkon
Здесь x - параметр цикла, переменная, величина которой изменяется от значения x0 до xkon с шагом dx. Если шаг изменения параметра цикла равен 1, то его можно не указывать в заголовке цикла. Тело цикла выполняется многократно при различных значениях параметра цикла. В случае, когда dx>0, оператор цикла выполняется следующим образом. Параметру цикла x присваивается значение x0. Затем проверяется условие
x <= xk (*)
Если значение этого отношения есть "истина", то выполняются операторы тела цикла, параметр цикла увеличивается на величину шага dx и снова проверяется условие (*). Если x > xk, то работа оператора цикла прекращается, и выполняется оператор, записанный за оператором цикла. Ниже приведена блок-схема, поясняющая работу оператора цикла.
x=x0
Рис. 2.3. Блок-схема оператора цикла
Пример 2.2.
Для аргумента х, изменяющегося от -1 до 1 с шагом dx=0.25, вычислить функцию:
,
где
Текст программы
i=1; // индекс элементов массивов, используемых при построении графика
for x=-0.5:0.25:0.50001 // начало цикла
if x>0 // начало условного оператора
a=1+x;
else
a=1+x;
end // конец условного оператора
f=a*x;
disp([x,f]) // вывод значений x и f в командное окно
xgraf(i)=x; // создается массив значений х для построения графика
fgraf(i)=f; // создается массив значений f для построения графика
i=i+1;
end // конец цикла
plot(xgraf,fgraf)
xgrid()
xtitle('f=a*x','x','f')
Результаты расчета (в командном окне)
- 0.5 - 0.25
- 0.25 - 0.1875
0. 0.
0.25 0.3125
0.5 0.75
Рис. 2.4. График функции
В приведенной программе для вывода результатов расчета в командное окно используется команда disp(имя). В этой команде в скобках указывается имя переменной или массива (только одного). При необходимости вывести значения нескольких переменных или массивов их заключают в квадратные скобки. График функции f(x) приведен на рисунке 2.4.
3. Решение задач вычислительной математики в окне редактора
Для решения задач вычислительной математики применим редактор SciPad, как делали это в разделе 2. Открыть его можно, выбрав Инструменты в меню командного окна и команду Редактор – в открывшемся спускающемся списке (рис. 2.1).
В окне SciPad создать новый файл с программой можно путем копирования из командного окна уже отлаженных операторов. По умолчанию создаваемому файлу присваивается имя Untitledx, где х - целое число, номер файла. Файл-сценарий можно сохранить, а потом открыть. Для запуска его на выполнение следует в меню окна выбрать команду Execute (рис. 2.2), а затем в спускающемся списке – команду Load into Scilab или Load all into Scilab.