- •Численные методы
- •Содержание
- •Введение
- •1. Вычисление определенных интегралов Справочная информация
- •Формула средних прямоугольников
- •Формула трапеций
- •Формула Симпсона (j.Gregory(Грегори)1668,Th.Simpson1743)
- •Пример решения в среде Matlab
- •Контрольные задания
- •2. Решение нелинейных уравнений Справочная информация
- •Метод простых итераций Метод основывается на приведении исходного уравнения к форме
- •Относительная разница между значениями приближения корня на третьей и четвёртой итерациях составляет
- •Метод хорд
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •3. Решение систем линейных алгебраических уравнений Справочная информация
- •Метод Гаусса с выбором главного элемента
- •Метод простых итераций
- •О выборе метода решения систем уравнений
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •4. Интерполяция таблично заданных функций Справочная информация
- •Кусочно-линейная интерполяция
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •5. Аппроксимация таблично заданных функций Справочная информация
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •6. Решение задачи коши для обыкновенных дифференциальных уравнений 1-го порядка Справочная информация
- •Усовершенствованный метод Эйлера
- •Оценка погрешностей методов
- •Программное обеспечение
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •7. Решение задачи коши для нормальных систем обыкновенных дифференциальных уравнений и уравнений высших порядков Справочная информация
- •Метод Эйлера
- •Усовершенствованный метод Эйлера
- •Оценка погрешностей методов
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •Приложение. Основы работы в среде matlab Интерфейс среды
- •Переменные и константы
- •Арифметические операторы
- •Операторы отношения
- •Логические операторы
- •Элементарные функции
- •Простейшие способы ввода–вывода информации
- •Векторы и матрицы
- •Оператор двоеточие «:»
- •Оператор разветвления if
- •Операторы циклов
- •Вывод информации в файл
- •Форматный вывод информации
- •Ввод данных из файла
- •Построение графиков
- •Сообщения об ошибках и исправление ошибок
- •Список литературы
Форматный вывод информации
Задание формата вывода значений переменных в командное окно описано выше.Это – форматыshort,long,short eиlong e, задаваемые командойformat. Однако функцияfprintfдопускает гораздо более гибкое управление видом записи чисел в файл. Схема её использования при работе с числовыми переменными такова:
fprintf(идентификатор, 'форматы', переменные)
Здесь первый аргумент, как и в случае вывода строк, является идентификатором файла, второй – строка с кодами форматов, которые определяют вид записи значений переменных из списка, который задаётся третьим аргументом.
Одним из часто используемых кодов формата в Matlab’е является код%N.mf. Он применяется для записи числа в фиксированном формате с десятичной точкой. Знак процента указывает на начало формата. Его первая цифра означает, что всего под значение выводимой переменной отводитсяNпозиций, включая десятичную точку и место под знак, которое резервируется и для положительных чисел. Вторая цифра после точки–разделителя означает, что под дробную часть значения выводимой переменной отводитсяmпозиций. Сам спецификаторfуказывает на то, что число следует вывести в формате с плавающей точкой.
Текст программы, записывающей в файл шапку таблицы и результаты расчёта значений тригонометрического синуса, приведён ниже:
[F,mes] = fopen('tablsin.txt', 'wt');
x = -Pi/4:0.1*Pi:Pi/4;
y = sin(x);
fprintf(F, ' х | у= sin(x)\n');
fprintf(F, '--------+------------\n');
for i=1:6
fprintf(F, '%7.4f', x(i));
fprintf(F, ' | ');
fprintf(F, '%11.8f', y(i));
fprintf(F, ' \n');
end
fclose(F);
В результате работы этой программы в файл tablsin.txt, находящейся в той же папке, что и файл с текстом программы, будет выведен следующий текст
х | у= sin(x)
--------+------------
-0.7854 | -0.70710678
-0.4712 | -0.45399050
-0.1571 | -0.15643447
0.1571 | 0.15643447
0.4712 | 0.45399050
0.7854 | 0.70710678
При использовании форматного вывода следует учесть, что в случае, если количество переменных в списке вывода больше числа кодов формата, то для вывода неуместившихся переменных коды форматов применяются повторно, начиная с первого.
Ввод данных из файла
Чтение числовых данных из фрагмента текстового файла, организованного как таблица, может быть выполнено с помощью функции dlmread. Её синтаксис имеет вид
M = dlmread('filename', 'r', n, m)
где filename– имя файла, из которого считывается информация,r– символ, с помощью которого в файле разделены записи,n– количество строк, которые пропускаются при считывании, считывание начинается с (n+1)-й строки,m– количество записей, которые пропускаются в каждой строке, считывание в каждой строке начинается с (m+1)-й записи.
Например, если в файле Labrab_1.datхранятся числа, разделённые запятыми, по 3 числа в 3-х строках
2341.15, 2.2, 2.356
3.3, 4.4, -30.5678
-23, 90, 0.09
то, в результате выполнения команды
M = dlmread('Labrab_1.dat', ',', 1, 1)
в переменной Mокажется матрица размером 2 на 2 элементов со значениями
M =
4.4000 -30.5678
90.0000 0.0900
В функции dlmreadвместо параметровnиmможно в виде записи–строки задать диапазон адресов считываемых из файла данных, записанных в виде таблицы. Этот диапазон адресов задается так же, как в Excel’е в виде адресов первой и последней записи, разделённых двоеточием. Например, считывание элементов матрицы, описанное выше, может быть организовано следующим образом
M = dlmread('Labrab_1.dat', ',', 'b2..c3').
Целиком считать весь файл можно с помощью команды
fileread(filename).
Если же надо считать целиком только текущую строку, то это можно сделать комендой
fgetl(filename).