Практикум 10. Формула Тейлора для функций
Запись в текстовый файл. Массивы ячеек |
Формула Тейлора для функций. Файл-функции с переменным числом аргументов |
1. Запись выходных данных в текстовый файл.Работа с текстовыми файлами состоит из трёх этапов: открытие файла, считывание или запись информации, закрытие файла. Команда fopen предназначена для открытия существующего или создания нового файла. Имя файла указывается в апострофах первым входным аргументом, второй аргумент задаёт способ доступа к файлу (символ t указывает на то, что файл текстовый, его можно опускать):
‘rt’ – открываемый текстовый файл предназначен только для чтения;
‘rt+’ – открываемый текстовый файл предназначен только для чтения и записи;
‘wt’ – открываемый текстовый файл предназначен только для записи;
‘wt+’ – открываемый текстовый файл предназначен только для записи и чтения.
Символы текстового файла образуют строки со словами, предложениями или числами.
Вывод информации в текстовый файл осуществляется с помощью функции fprintf.
Добавление строки в текстовый файл осуществляется при помощи fprintf с двумя входными аргументами – идентификатором файла и строкой с текстом. Последующая команда fprintf выводит заданную строку сразу за предыдущей. Для вывода текста с новой строки следует добавить символы перевода строки \r\n в начало строки или в конец предыдущей
Пример 1. Исполнение следующего М-файла
[F,mes]=fopen('t.txt','w');
fprintf(F,'Строка добавлена с помощью fprintf.');
fprintf(F,' Ещё строка');
fprintf(F,'\r\n Этот текст с новой строки\r\n');
fprintf(F,'И этот тоже')
fclose(F);
запишет в файл t.txt текст:
Строка добавлена с помощью fprintf. Ещё строка
Этот текст с новой строки
И этот тоже
Пример 2. Создание заголовка таблицы.
[F,mes]=fopen('t1.txt','w');
%Печать в файл заголовка таблицы
fprintf(F,'ТАБЛИЦА ЗНАЧЕНИЙ ФУНКЦИИ sin x \r\n');
%Печать в файл шапки таблицы
fprintf(F,' _________________ \r\n')
fprintf(F,'| x | sin x |\r\n')
fprintf(F,' _________________ \r\n')
fclose(F);
Занесениев файл чисел или значений переменных требуют форматного вывода.
Схема использования fprintf при работе с числовыми переменными такова:
Fprintf(идентификатор, ‘формат’, список переменных)
Пример. 3. После исполнения программы
[F,mes]=fopen('t3.txt','w');
x=pi/2;
y=sin(x);
fprintf(F,' x=%7.4f sin(x)=%11.8f',x,y);
fclose(F);
в текстовом файле запишется
x= 1.5708 sin(x)= 1.00000000
Последовательность %7.4f задаёт формат вывода переменной х, которая расположена на первом месте в списке вывода. Знак процента указывает на начало формата, цифра 7 обозначает, что всего на вывод переменной х отводится 7 позиций, цифра 4 после разделителя-точки обеспечивает точность отображения результате – 4 цифры после десятичной точки, спецификатор f указывает на то, что следует вывести число в формате с плавающей точкой.
Список ввода может быть матрицей. В этом случае форматы применяются по столбцам к каждому элементу столбца матрицы
Пример. 4. После исполнения программы
[F,mes]=fopen('t3.txt','w');
x=[0:pi/4:2*pi];
y=sin(x);
M=[x;y]
fprintf(F,' |%7.4f |%11.8f|\r\n',M);
fclose(F);
в текстовом файле запишется таблица
| 0.0000 | 0.00000000|
| 0.7854 | 0.70710678|
| 1.5708 | 1.00000000|
| 2.3562 | 0.70710678|
| 3.1416 | 0.00000000|
| 3.9270 |-0.70710678|
| 4.7124 |-1.00000000|
| 5.4978 |-0.70710678|
| 6.2832 |-0.00000000|
Упражнение 1. Вычислить значения первых пяти производных функции в точке 1, результат записать в текстовый файл в виде таблицы: первый столбец – номер производной, второй – значение. Сделать заголовок и шапку таблицы.
2. Массивы ячеек.Массив ячеек состоит из ячеек или контейнеров, каждый из которых может содержать данные разных типов. Заполнение массива ячеек производится поэлементно, причём для доступа к отдельным контейнерам применяется индексация, индексы заключаются в фигурные скобки. Просмотр содержимого массива из командной строки приводит к отображению информации в сжатом виде. Функция celldisp(M) с входным аргументом – именем массива ячеек выводит значения всех контейнеров в командное окно. Более наглядным представлением больших массивов ячеек является отображение схемы массива в графическом окне при помощи cellplot(m). Массивы чисел или текстовые строки отображаются макетами таблиц с соответствующим числом строк и столбцов, а записи в них - квадратами.
Пример 5.
m{1,1}='студент Иванов';
m{1,2}=[5 4 3 5];
m{2,1}='студент Петров';
m{2,2}=[5 2 3 5;4 3 2 4];
>> m
m =
'студент Иванов' [1x4 double]
'студент Петров' [2x4 double]
>> celldisp(m)
m{1,1} =
студент Иванов
m{2,1} =
студент Петров
m{1,2} =
5 4 3 5
m{2,2} =
5 2 3 5
4 3 2 4
>> cellplot(m)
Упражнение 2. Создать массив ячеек: первая ячейка – значение аргумента, вторая – количество производных, третья - вектор значений функции и её производных в точке из упражнения 2.