- •Введение
- •Лабораторная работа ип1 Знакомство с Matlab
- •1. Рабочая среда Matlab
- •2. Данные Matlab
- •Типы данных
- •Числовые константы
- •Символьные константы
- •Переменные
- •3. Выражения
- •3.1. Арифметические выражения
- •3.2. Логические выражения
- •3.3. Порядок вычисления выражений
- •4. Сообщения об ошибках и исправление ошибок
- •5. Завершение вычислений
- •6. Завершение работы с системой
- •7. Резюме
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •Лабораторная работа ип2 работа с матрицами в matlab
- •1. Общие сведения
- •2. Одномерные массивы – векторы
- •3. Двумерные массивы – матрицы
- •4. Использование двоеточия
- •4.1. Автозаполнение
- •4.2. Индексация
- •5. Поэлементные и матричные операции
- •6. Стандартные функции для работы с матрицами
- •7. Логическое индексирование
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •10. Упражнения
- •2. Диалоговый ввод/вывод
- •3. Управление последовательностью исполнения операторов
- •3.1. Оператор условия if
- •3.2. Оператор переключения
- •3.3. Оператор цикла с определенным числом повторений
- •3.4. Оператор цикла с неопределенным числом повторений
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип4 визуализация данных в matlab
- •1. Общие сведения
- •2. Построение таблицы значений функции
- •3. Двумерная графика
- •3.1. Общие правила построения графиков
- •3.2. Оформление графиков
- •3.3. Построение графиков
- •3.4. Управление свойствами графиков
- •4. Трехмерная графика
- •4.1. Общие принципы построения трехмерных графиков
- •4.2. Построение трехмерных графиков
- •4.3. Управление свойствами трехмерных графиков
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип5 файл-функции
- •2. Описание m-функции
- •3. Обращение к m-функции
- •4. Параметры-функции
- •5. Разновидности m-функций
- •5.1. Подфункции
- •5.2. Вложенные функции
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •2. Аппроксимация
- •2.1. Моделирование полиномом по методу
- •2.2. Аппроксимация произвольной функцией
- •3. Интерполяция
- •3.1. Кусочная интерполяция
- •3.2. Кубические сплайны
- •3.3. Интерполяция произвольной нелинейной функцией
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип7 Вычисление функций разложением в ряд
- •1. Общие сведения
- •2. Индивидуальное задание
- •Лабораторная работа ип8 Решение нелинейных уравнений в среде Matlab
- •1. Общие сведения
- •2. Поиск корней полиномов
- •3. Решение одного нелинейного уравнения
- •4. Решение систем нелинейных уравнений
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип9 обмен данными с текстовым файлом
- •1. Общие сведения
- •2. Открытие файла
- •3. Запись в текстовый файл
- •3.1. Запись строковых значений
- •3.2. Запись числовых значений
- •4. Чтение из текстового файла
- •4.1. Последовательное чтение строк
- •4.2. Последовательное чтение нескольких символов
- •4.3. Чтение чисел из текстового файла
- •4.4. Альтернативный доступ к текстовому файлу
- •5. Закрытие файла
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •Заключение
- •Список рекомендуемой литературы
- •Программирование в matlab
- •428015 Чебоксары, Московский просп., 15
3.3. Интерполяция произвольной нелинейной функцией
Интерполяция произвольной нелинейной функцией может быть выполнена с помощью fsolve, решающей систему нелинейных уравнений. Обращение к ней имеет вид:
coef=fsolve(mfile,x0);
где coef – искомые параметры интерполирующей функции; х0 – начальное приближение к coef; mfile – указатель на имя m-файла, описывающего систему уравнений.
Пример: пусть неизвестная функция задана таблицей значений
х |
1 |
2 |
3 |
4 |
5 |
у |
6,5 |
20 |
53,5 |
167 |
473 |
Необходимо получить аналитическое выражение для этой функции. Выберем вид интерполяционной функции, воспользовавшись графоаналитическим методом – построим исходные точки. График функции в виде точек таблицы похож на степенную функцию (рис. 5.6). Выберем в качестве интерполяционной функцию вида . Так как функция содержит три неизвестных коэффициента (a, b и с, причем b входит нелинейно), то для их определения составим систему из трех уравнений, выбрав в качестве аргументов три узла таблицы х = 1, 3 и 5. Получим
Рис. 5.6. Интерполяция степенной функцией
Подставим в систему соответствующие значения х и у из таблицы. Запишем m-функцию
function system=sysur(coef)
global y x
system=[coef(1)*coef(2)^x(1)+coef(3)-y(1);
coef(1)*coef(2)^x(3)+coef(3)-y(3);
coef(1)*coef(2)^x(5)+coef(3)-y(5)];
и файл-сценарий
global y x;
x=1:5;
y=[6.5 20 53.5 167 473];
x0=[1; 1; 1;];
coef=fsolve(@sysur,x0)
В результате выполнения скрипта с m-функцией получим следующий вектор коэффициентов моделирующей функции
coef =
1.9850
2.9876
0.5698
Следовательно, интерполяционная функция будет иметь вид ум=1,9850·2,9876х+0,5698. Моделирующая кривая ум(х) в обязательном порядке пройдет через первую, третью и пятую точки таблицы, по которым были определены ее параметры, но необязательно через вторую и четвертую (рис. 5.6).
Примечание: по правилам использования стандартной функции fsolve m-функция, описывающая решаемую систему уравнений, должна иметь один формальный параметр – искомые коэффициенты. Для пересылки в файл-функцию sysur значений векторов х и у в головной программе и в функции объявляются глобальные данные (после слова global указывается перечень глобальных переменных через пробел).
4. Контрольные вопросы
Как можно определить вид моделирующей функции?
С помощью каких средств Matlab можно построить точечный график таблично заданной функции?
Каковы правила задания полиномов в Matlab?
Какие функции Matlab используются для работы с полиномами?
На каких критериях основывается интерполяция?
В чем суть приближения таблично заданной функции по методу наименьших квадратов?
Какие приближающие функции можно использовать при моделировании по методу наименьших квадратов?
Как оценить погрешность аппроксимации методом наименьших квадратов?
Что общего и чем отличаются интерполяция и аппроксимация?
Для чего предназначена функция fsolve?
Каковы правила использования функции lsqcurvefit?