в Scilab»
Виды sce-файлов.
Создание и сохранение новых, и открытие ранее созданных sce-файлов.
Особенности файлов-сценариев и sce-функций.
Запуск на выполнение файла-сценария из текстового редактора.
Запуск на выполнение файла-сценария из Командного окна
Обращения к файлам и sce-функциям.
Средства языка программирования в системе Scilab.
Основные операторы sce-языка их назначение и форматы.
Изучите материал Темы 1.3 (п.п. 1.3.1 – 1.3.5).
Выберете индивидуальное задание из табл. 1.3.6-1.
Разработайте sce-функции для реализации стандартных алгоритмов: вычисления конечных сумм, разветвлений, поиска минимума и максимума в последовательности данных и т.п.
Введите sce-функции и сохраните их на внешнем носителе.
Создайте файл-сценарий, в который введите код программы, описывающий логику решения поставленной задачи.
Сохраните созданный файл в текущем каталоге.
Произведите отладку файла-сценария, запуская его на выполнение из текстового редактора командой Выполнить.
Подготовьте и введите исходные данные для решения поставленной задачи;
Выполните файл-сценарий в Командном окне.
Сохраните текст рабочего окна на внешнем носителе.
Предоставьте результаты работы преподавателю, ответьте на поставленные вопросы.
Оформите отчет по выполненной работе.
Таблица. 1.3.6-1.
№ |
Задание |
1 |
Ввести
натуральное число nи
вектор действительных чисел
|
2 |
Вычислить
|
3 |
Задать
массив
|
4 |
Ввести
натуральное число n
и вектор действительных чисел
|
5 |
Ввести натуральное число n и действительное число х. Вычислить и вывести на экран искомую сумму и каждое слагаемое суммы:
|
6 |
Ввести
натуральное число n.
Найти наибольшее среди значений
|
7 |
Ввести
натуральное число n
и вычислить сумму значений
|
8 |
Ввести
натуральное число n
и вектор действительных чисел
.
Определить каких положительных или
отрицательных чисел в векторе больше,
а также наибольшее из отрицательных
и наименьшее из положительных значение
|
9 |
Ввести матрицу B(5,7) и сформировать из первых наибольших элементов строк вектор С(5). Вывести его элементы в строку и столбец. |
10 |
Сформировать вектор по правилу:
Найти сумму квадратов тех чисел, модуль которых не превосходят 2. |
11 |
Ввести натуральное число n и вектор действительных чисел . Найти количество двух соседних положительных чисел и двух соседних чисел разного знака. |
12 |
Ввести квадратную матрицу А(4,4) и, сформировав из максимальных элементов ее столбцов вектор X, и вывести его элементы на экран в прямой и обратной последовательности. |
13 |
Ввести
вектор целых чисел
|
14 |
Ввести
вектор вещественных чисел
|
15 |
Сформировать матрицу А(4,4) по правилу:
Найти и вывести значения и индексы двух одинаковых элементов. Если таковых не окажется, вывести сообщение. |
16 |
Сформировать матрицу D(3,2) по правилу:
Создать и вывести на экран вектор, состоящий из отрицательных элементов полученной матрицы. |
17 |
Задать
натуральное число n.
Посчитать, какая из матриц размером
n
на n
содержит большее количество
положительных элементов, если ее
элементы формируются по правилу:
Соответствующее сообщение и сформированные матрицы вывести на экран. |
18 |
Ввести квадратную матриц А(4,4) из вещественных чисел. Найти сумму значений наибольших элементов ее строк. Сформировать и вывести на экран новую матрицу В(4,4), каждый элемент которой получен путем умножения его значения на найденную сумму. |
19 |
Ввести матрицу вещественных чисел А(4,7). Сформировать и вывести на экран вектор С(4), элементами которого являются:
|
20 |
Ввести натуральное число n и матрицу вещественных чисел С(n,n). Найти среднее арифметическое наибольшего и наименьшего значений ее элементов, и, заменив этим значением диагональные элементы матрицы С, вывести полученную матрицу на экран. |
21 |
Ввести натуральные числа k1, k2 и действительную матрицу размера 8х4. Поменять в матрице местами элементы k1 и k2 строк и вывести на экран модифицированную матрицу. |
22 |
Ввести натуральное число n и матрицу вещественных чисел С(n,9). Сформировать и вывести на экран вектор-столбец, значениями элементов которого являются средние арифметические значения элементов строк матрицы С(n,9), имеющих четные номера. |
23 |
Ввести вектора действительных чисел x(5), y(6),z(7). Вывести значение величины t, вычисляемой по следующему алгоритму:
|
24 |
Ввести
вектора действительных чисел x(5).
Получить для х=1, 3, 4 значения
|
25 |
Ввести вектор действительных чисел x(10). Получить из него другой массив p(10), элементы которого упорядочены по возрастанию. |
26 |
Ввести матрицу вещественных чисел А(3,4). Заменить элементы строки матрицы с максимальной суммой значений элементов – единицами, с минимальной - 2, а остальные элементы матрицы положить равными нулю. |
27 |
Сформировать
матрицу А(4,4) по правилу
|
28 |
Сформировать
матрицу В(9,3) по правилу
|
29 |
Ввести матрицу вещественных чисел А(3,4), все элементы которой различны. Найти в каждой строке матрицы наибольшее и наименьшее значение, и записать в соответствующий элемент вектора С(3) сумму значений индексов столбцов, в которых они расположены. Вывести на экран полученный вектор С. |
30 |
Ввести матрицу вещественных чисел А(4,4). Сформировать и вывести на экран:
|
|
Рис. 1.3.5-5. Функция sred_ar(), вычисляющая среднее арифметическое элементов строки массива a
В результате запуска sce-файле с именем zadasha2 в окно Командного окна выводится столбец элементов массива b.
|
Рис. 1.3.5-6. . Сборка и выполнение задачи
Пример.
1.3.5-3. Задать действительные числа a,b,
натуральное n
(a<b)
и вычислить выражение
,
где
,
если
Решение задачи требует разработки 2-х функций: fab(a, h,i), предназначенной для вычисления i-го слагаемого (рис.1.3.5-7) и sumf(a,h,n), предназначенной для вычисления заданного выражения (рис. 1.3.5-8).
|
Рис. 1.3.5-7. Функция fab(), вычисляющая значение i-го слагаемого
|
Рис. 1.3.5-8. Функция sum_f(), вычисляющая заданное выражение
Запуск на выполнение осуществляется из командного окна к функции sum_f(). Предварительно переменным a, b и n присваиваются числовые значения. Проверка правильности ввода исходных данных предусмотрена в функции sum_f(). Вычисления выполняются и результат выводится на экран только в случае если b>a, иначе в командной строке появляется сообщение «Ошибка в исходных данных b<a» (рис.1.3.5-9).
|
Рис. 1.3.5-9. Запуск функции sumf() на выполнение в Командном окне
В форме комментариев:
Название лабораторной работы
ФИО студента, номер группы
№ варианта
Индивидуальное задание
Протокол вычислений (сессии) в Командном окне, снабженный необходимыми комментариями.
Что такое файл-сценарий и каковы его особенности?
Каким образом файл-сценарий запускается на выполнение?
Что такое sce-функция?
В чем отличие файла-сценария от sci-функции?
Может ли sce-функция иметь несколько выходных параметров?
Обращение к sce-функции.
Формат оператора input().
Как с использованием оператора if…end реализовать стандартное, усеченное и вложенное разветвление?
Формат оператора множественного разветвления select.
Формат оператора регулярного цикла for…end, особенности задания значений переменной цикла.
Назначение операторов continue и brek.
Оператор итеративного цикла while…end и его структура.
2.1.3. Контрольные вопросы по теме
В общем виде уравнение можно представить, как f(x)=0. В зависимости от вида функции f(x)различают алгебраические и трансцендентные уравнения.
Алгебраическими уравнениями называются уравнения, в которых значение функции f(x) представляет собой полином n-й степени (n≥2). Всякое неалгебраическое уравнение называется трансцендентным. Функция f(x)в таких уравнениях содержит хотя бы одну из следующих функций: показательную, логарифмическую, тригонометрическую или обратную тригонометрическую.
Решением
уравнения f(x)=0
называется
совокупность корней
,
при которых уравнение обращается в
тождество
.
Однако, точные значения корней могут
быть найдены аналитически только для
некоторых типов уравнений. Еще меньше
возможностей при получении точного
решения трансцендентных уравнений.
Следует отметить, что задача нахождения
точных значений корней не всегда
корректна. Так, если коэффициенты
уравнения являются приближенными
числами, точность вычисленных значений
корней заведомо не может превышать
точности исходных данных. Эти обстоятельства
заставляют рассматривать возможность
отыскания корней уравнения с ограниченной
точностью (приближенных корней).
З
адача
нахождения корня уравнения с заданной
точностью
(
>0)считается
решенной, если найдено приближенное
значение
,
которое отличается от точного значения
корня
не
более чем на значение :
Для отделения корней нелинейных уравнений применяются графический и аналитический методы. Для уточнения корней с заданной степенью точности существуют множество численных методов. Самыми распространенными из них являются: метод Ньютона, метод хорд, метод итераций и метод половинного деления.
Процесс нахождения приближенного корня нелинейного уравнения состоит из двух этапов:
отделение корня уравнения (локализация корня на отрезке);
Пример
2.1.1-1.Отделить
и уточнить корень уравнения
.
Согласно
теореме о существовании и единственности
корня на отрезке, найдем отрезок, на
концах которого функция
имеет
разные знаки, а первая производная
непрерывна и знакопостоянна (рис.
2.1.1-1).
|
Рис. 2.1.1-1. Отделение корня нелинейного уравнения
Условия существования и единственности корня на отрезке [0;1]выполняются. Команды построения графика функции f(x) на отрезке [0;1]и график функции приведены на рис. 2.1.1-2.
|
Рис. 2.1.1-2. Построение графика функцииf(x)
Для решения нелинейных уравнений в среде Scilab используются встроенные функции: fsolve() и roots().
Функция fsolve()используется для нахождения вещественных корней уравнений вида f(х)=0. В простейшем варианте обращения кроме указателя на функцию, корень которой необходимо найти, задается х0, с которой начинается поиск:
х = fsolve(x0,f),
где f- функция, описывающая левую часть уравнения y(x)=0;
x0- начальное приближение корня.
|
Рис. 2.1.1-3. Уточнение корня уравнения с использованием функции fsolve()
Вместо явного задания выражения для функции f(x) можно создать соответствующую функцию, запомнив ее в виде sci-файла (рис. 2.1.1-4).
|