Главная страница
Навигация по странице:

  • Re(M)

  • ЛАБОРАТОРНАЯ РАБОТА № 5 ИНТЕРПОЛЯЦИЯ И АППРОКСИМАЦИЯ ДАННЫХ

  • 5.1 Теоретические сведения

  • Vs:=cspline(Vx,Vy); Vs:=pspline(Vx,Vy); 45 Vs:=lspline(Vx,Vy).

  • Аппроксимация полиномом

  • Vs:=regress(Vx,Vy,n); 2 этап. Осуществляется аппроксимация полиномом при помощи функции interp(Vs,Vx,Vy,x)

  • Общий случай линейной регрессии

  • Линеаризация аппроксимирующей функции

  • Методичка MatchCAD. Практикум по курсам Информатика, Прикладное программное обеспечение


    Скачать 2.28 Mb.
    НазваниеПрактикум по курсам Информатика, Прикладное программное обеспечение
    Дата16.04.2023
    Размер2.28 Mb.
    Формат файлаpdf
    Имя файлаМетодичка MatchCAD.pdf
    ТипПрактикум
    #1066011
    страница5 из 7
    1   2   3   4   5   6   7
    Примечание: *) Операция векторизации аналогична таковой для векторов. Напри- мер, результатом операции






    m2)
    (m1
    будет матрица, полученная путем поэлементного пе- ремножения компонентов матриц одинакового размера m1 и m2.
    Матричные функции
    Система MathCAD имеет большое число матричных функций общего назначения,

    40 часть их рассматривается ниже. Здесь для определенности будем полагать, что системная переменная ORIGIN=0 и заданы матрицы














    1 2
    3 4
    m
    4 2
    3 1
    m
    2 1
    rows(M) – возвращает число строк матрицы M. Например, rows(m1)=2.
    cols(M) – возвращает число столбцов матрицы M. Например, cols(m1)=2.
    mean(M) – возвращает среднеарифметическое значение для элементов матрицы
    M. Например, mean(m1)=2.5.
    csort(M,n) -перестановка строк матрицы М так, чтобы отсортированным оказался n-й столбец.
    rsort(M,n) -перестановка столбцов матрицы М так, чтобы отсортированной оказа- лась n-я строка.
    tr(M) – возвращает след квадратной матрицы. Например, tr(m2)=5.
    rank(M) – возвращает ранг матрицы М. Например, rank(m1)= 2.
    identity(n) – возвращает квадратную матрицу размера n, у которой все элементы главной диагонали равны 1, а остальные – 0. Например,

















    1 0
    0 0
    0 0
    1 0
    0 0
    0 0
    1 0
    0 0
    0 0
    1 0
    0 0
    0 0
    1
    )
    identity(5
    Re(M) – возвращает матрицу действительных частей элементов комплексной мат- рицы M.
    Im(M) – возвращает матрицу мнимых частей элементов комплексной матрицы M.
    augment(M1,M2) – объединение матриц путем помещения матрицы M2 справа от
    M1. Например,







    1 2
    3 4
    4 3
    2 1
    m2)
    ,
    augment(m1
    stack (M1,M2) – объединение матриц путем помещения матрицы M2 под M1. На- пример,













    1 2
    3 4
    4 3
    2 1
    m2)
    stack(m1,
    submatrix(M,ir,jr,ic,jc) – субматрица, составленная из элементов матрицы M в строках с ir по jr и в столбцах с ic по jc.
    4.5 Примеры векторных и матричных операций
    Рассмотрим применение некоторых векторных и матричных операций на примере следующей задачи.
    Задача 1. Выбор оптимального решения методом перебора.
    В некотором садоводстве, занимающем прямоугольную территорию размером xk
    и yk, находится N участков с домиками. В одном из домиков решено разместить ларек с
    товарами повседневного спроса. Причем место под ларек должно быть оптимальным:
    среднее расстояние до него от всех остальных домиков должно быть наименьшим.
    Решение. Для определенности будем полагать, что домики на территории садо-
    водства размещены случайным образом. Задачу будем решать методом перебора всех
    возможных вариантов и выбора наилучшего решения.

    41
    Упражнения
    1. Определите любыми двумя способами вектор W, содержащий все нечетные числа от 1 до 19.
    2. Определите некоторые векторы V, V1, V2, скаляр X и проделайте над ними векторные операции, приведенные в таблице 4.2.
    3. Определите вектор x = (0.12, 0.2, 0.23, 0.27, 0.45, 0.66, 0.7, 0.85, 0.9, 0.99). Рас- считайте значения

    42 4. Найдите сумму n членов числового ряда:
    Вариант
    Ряд
    Вариант
    Ряд
    1 6
    2 7
    3 8
    4 9
    5 10 5. Определите некоторые матрицы M, M1, M2, вектор V и скаляр X. Проделайте над ними матричные операции, приведенные в таблице 4.3.
    6. Определите два вектора одинаковой размерности. Объедините их в матрицу, отсортируйте по первому столбцу и получите из матрицы вновь два вектора.
    7. Определите единичную матрицу Е размером 4×4 и вектор V, содержащий че- тыре элемента. Вычислите матрицу
     
    T
    VV
    V
    E
    H
    2 2


    8. Решите задачу 1 из п.4.4 о поиске оптимального расположения домика садо- водства при количестве домов > 50. Изобразите на графике все дома садоводства, выделив дом с оптимальным и самым неудачным расположением.
    Контрольные вопросы
    1. Дайте определение вектора и матрицы.
    2. Для чего служит системная переменная ORIGIN?
    3. Назовите способы создания векторов и матриц.
    4. Назовите векторные операторы.
    5. Для чего служит оператор векторизации?
    6. Какие векторные функции Вы знаете?
    7. Как производится сортировка элементов?
    8. Каким образом осуществляется одновременное вычисление с помощью векто- ров?
    9. Какие матричные функции Вы знаете?
    10. Назовите матричные операторы.
    11. Какими способами можно объединить матрицы?

    43
    ЛАБОРАТОРНАЯ РАБОТА № 5
    ИНТЕРПОЛЯЦИЯ И АППРОКСИМАЦИЯ ДАННЫХ
    Цель: научиться обрабатывать экспериментальные данные с помощью интерпо-
    ляции и аппроксимации.
    5.1 Теоретические сведения
    Допустим, что имеется таблица дискретных значений X-Y (см. Таблица 5.1). Эти данные могут быть получены в результате эксперимента, статистических наблюдений или расчетом по сложным соотношениям. Для наглядности данные таблицы 5.1 можно пред- ставить в графической форме (см. рис. 5.1).
    Таблица 5.1. Дискретные данные
    X
    1 2
    3 4
    5 6
    7
    Y
    1.84 2.91 3.14 3.24 4.04 5.72 7.66
    Часто требуется через эти точки по каким-либо правилам провести некоторую кри- вую y=f(x), которая с заданной точностью соответствует исходной информации. С такой кривой во многих отношениях удобнее работать:
    Рисунок 5.1 – Графическое представление данных
    1) легко получить значения y, соответствующие промежуточным значениям x;
    2) кривую можно продолжить в ту или иную сторону за пределы крайних точек по x;
    3) кривую можно провести так, чтобы «сгладить» случайные ошибки эксперимента или случайные колебания статистических данных.
    Существуют специальные методы построения таких кривых. Здесь мы рассмотрим методы интерполяции и аппроксимации с помощью метода наименьших квадратов.
    Интерполяция
    В этом случае ищется такая зависимость y=f(x), чтобы искомая кривая точно про- ходила через все точки (см. рис. 5.2). Между точками поведение кривой может быть раз- личным и зависит от типа интерполяции. Продолжение кривой влево от первой точки и вправо от последней точки получило специальное название – ЭКСТРАПОЛЯЦИЯ.
    Аппроксимация
    При аппроксимации с помощью метода наименьших квадратов искомая кривая y=f(x) должна хорошо приближать исходные данные в среднем, при этом не требуется точного прохождения кривой через все точки (см. рис. 5.3). Задачи такого типа часто на- зываются задачами регрессии. Как и в случае интерполяции, для одного и того же набора данных можно построить много аппроксимирующих функций или функций регрессии.
    Эти функции менее чувствительны к случайным ошибкам исходных данных, чем функции интерполяции. Это свойство функций регрессии широко используется на практике.

    44
    Рисунок 5.2 – Интерполяция
    Рисунок 5.3 – Аппроксимация с помощью метода наименьших квадратов
    5.2 Интерполяция
    Интерполяция использует табличные значения некоторой функции, заданной в ря- де точек, чтобы предсказать значения функции между точками. В системе MathCAD можно соединять точки прямыми линиями (линейная интерполяция) или соединять их от- резками кубического полинома (сплайн – интерполяция). Кроме того, можно проводить сплайн – интерполяцию функции двух переменных, но этот случай здесь не рассматрива- ется.
    Линейная интерполяция
    Пусть известны значения некоторой функции f(x) в нескольких точках (см. Таблица
    5.1). При линейной интерполяции узловые точки соединяются прямыми. Если некоторое значение x, для которого ищется интерполяционное значение, выходит за пределы конце- вых точек, то осуществляется линейная экстраполяция (по двум ближайшим точкам на конце участка). Отметим, что линейная интерполяция автоматически используется при построении графиков.
    Линейная интерполяция в системе MathCAD осуществляется функцией
    linterp(Vx,Vy,X).
    Здесь Vx – вектор координат точек по оси x, расположенных в порядке возраста- ния;
    Vy – вектор координат точек по оси y, соответствующих точкам x;
    X – значение независимой переменной, для которой находится интерполяционное
    (или экстраполяционное) значение.
    В качестве примера на рисунке 5.4 приведен текст программы и результаты линей- ной интерполяции данных из таблицы 5.1.
    Отметим, что при линейной интерполяции получается ломаная кривая – ее первые производные в узловых точках разрывны, поэтому данный тип интерполяции рекоменду- ется использовать при большом количестве узловых точек или когда интерполируемая зависимость достаточно гладкая.
    Сплайн-интерполяция
    При кубической сплайн – интерполяции соседние узловые точки соединяются по- линомами третьей степени. Путем подбора коэффициентов соседние полиномы в узловых точках стыкуются так, что их первые две производные совпадают. В результате получает- ся достаточно гладкая интерполяционная кривая. В граничных точках требуется задать дополнительные условия, определяющие локальное поведение кривой в этих точках.
    Сплайн – интерполяцию удобно проводить в два этапа:
    1 этап. Рассчитывается вектор Vs вторых производных интерполяционной кривой в узловых точках одним из трех возможных способов:
    Vs:=cspline(Vx,Vy);
    Vs:=pspline(Vx,Vy);

    45
    Vs:=lspline(Vx,Vy).
    Здесь Vx и Vy – векторы, содержащие координаты x и y, через которые нужно про- вести сплайн. Как и в случае линейной интерполяции, вектор Vx должен быть упорядочен
    (по возрастанию значений). Функции cspline, pspline, lspline отличаются только гранич- ными условиями: функция cspline соответствует кривой, которая в граничных точках (ло- кально) ведет себя как полином 3-й степени, pspline – как парабола, а lspline – как прямая.
    2 этап. Осуществляется сплайн – интерполяция при помощи функции
    interp(Vs,Vx,Vy,x) , которая возвращает интерполируемое значение для заданного x. Здесь Vs – вектор, полученный на первом этапе.
    Применение рассмотренных функций для сплайн-интерполяции данных, приведен- ных в таблице 5.1, также показано на рис.5.4.
    Рисунок 5.4 – Линейная и сплайн-интерполяция данных. Справа приведен фрагмент графика в увеличенном масштабе, где хорошо видно отличие линейной и сплайновой интерполяции
    Отметим, что для значений х, расположенных перед первой точкой в Vx, MathCAD использует продолжение первого кусочного полинома, соединяющего первую и вторую точки. Для значения х, расположенных за последней точкой в Vx, MathCAD продолжает сплайн последней кубической параболы. Таким образом осуществляется сплайн – экстра- поляция данных.
    5.3 Аппроксимация
    Допустим, что данные, представленные в таблице 5.1, нужно аппроксимировать некоторой функцией y=f(x, a
    1
    , a
    2
    , a
    3
    , …), где a i
    – соответствующие параметры функции. В отличие от интерполяции, рассмотренной в предыдущем разделе, мы не будем требовать,

    46 чтобы функция f(x) точно проходила через точки данных. Вместо этого потребуем, чтобы аппроксимирующая функция y=f(x) удовлетворяла условию min
    ))
    ,
    a
    ,
    a
    ,
    x
    (
    f y
    (
    n
    1
    i
    2 2
    1
    i i





    , т.е. сумма квадратов отклонений от всех точек до искомой кривой была бы минимальной.
    Из условия минимума можно найти значения коэффициентов a i
    , обеспечивающие данный экстремум. Такой метод аппроксимации получил название метода наименьших квадратов, а сами задачи – задачи регрессии.
    Отметим, что вид функции y=f(x) задается исследователем, при этом обычно при- нимаются во внимание следующие обстоятельства:
    1) внешний вид данных (расположение точек на графике):
    2) физические соображения, связанные с существом решаемой задачи;
    3) предварительные оценки или интуитивные предположения.
    Система MathCAD содержит ряд функций для аппроксимации данных по методу наименьших квадратов. Здесь мы рассмотрим в основном случай линейной регрессии.
    Аппроксимация прямой
    В этом простом случае предполагается, что аппроксимирующая функция имеет вид b
    x a
    y



    (5.1) и соответствует прямой, для которой коэффициенты a и b имеют простой геометрический смысл. Для решения данной задачи в системе MathCAD имеются следующие функции:
    slope(Vx,Vy) – возвращает значение коэффициента a;
    intercept(Vx,Vy) – возвращает значение коэффициента b.
    Покажем (см. рис. 5.5), как используются эти функции на примере аппроксимации данных из таблицы 5.1.
    Рисунок 5.5 – Аппроксимация данных прямой линией

    47
    Аппроксимация полиномом
    Используется в том случае, когда для данных точек ожидается полиномиальная за- висимость типа
    `
    n n
    2 2
    1 0
    x a
    x a
    x a
    a y






    , (5.2) где n – степень полинома.
    Аппроксимацию полиномом (5.2) удобно проводить в два этапа:
    1 этап. Рассчитывается вектор Vs с помощью стандартной функции regress()
    Vs:=regress(Vx,Vy,n);
    2 этап. Осуществляется аппроксимация полиномом при помощи функции
    interp(Vs,Vx,Vy,x) , которая возвращает значение аппроксимирующей функции для заданного x. Здесь Vs – вектор, полученный на первом этапе.
    Применение рассмотренных функций для аппроксимации тех же данных, приве- денных в таблице 5.1, показано на рис.5.6.
    Рисунок 5.6 – Аппроксимация данных полиномами 1-й, 2-й и 3-й степени
    Справа приведен фрагмент графика в увеличенном масштабе, где хорошо видно влияние степени полинома на поведение кривых
    Функция regress допускает использование полинома любого порядка. Однако на практике не рекомендуется использовать степень полинома выше n=4. Отметим также, что при n=1 данный метод совпадает с рассмотренным выше методом, использующем функции slope и intercept.
    Общий случай линейной регрессии
    Аппроксимация прямой или полиномиальная аппроксимация не во всех случаях подходят для описания зависимости данных. Бывает, что нужно искать эту зависимость в виде линейной комбинации заданных функций
    )
    x
    (
    f a
    `
    )
    x
    (
    f a
    )
    x
    (
    f a
    y n
    n
    1 1
    0 0








    ,
    (5.3) где f i
    (x) – заданные пользователем функции, a i
    – параметры, значения которых тре- буется определить по методу наименьших квадратов.
    Решение такой задачи в системе MathCAD осуществляется с помощью стандартной функции
    linfit(Vx,Vy,F),
    которая возвращает вектор искомых коэффициентов a (см. рис.5.7а). Здесь Vx и
    Vy – векторы координат исходных точек, F- вектор, задающий в символьном виде набор функций, которые нужно обьединить в линейной комбинации (см. рис. 5.7б).

    48
    Рисунок 5.7 – Вектор искомых коэффициентов
    На рисунке 5.8 показан пример, демонстрирующий применение данной функции для аппроксимации данных, приведенных в таблице 5.1. Исходные данные в виде векто- ров Vx и Vy сформированы так же, как и в предыдущих примерах, и на рисунке не пред- ставлены.
    Рисунок 5.8 – Аппроксимация данных с помощью функции linfit
    Следует отметить, что рассмотренные в предыдущих разделах способы аппрокси- мации (5.1) и (5.2), являются частными случаями линейной регрессии общего вида (5.3).
    Линеаризация аппроксимирующей функции
    Выше рассмотрены случаи, когда аппроксимирующая функция линейна относи- тельно входящих в нее параметров. В некоторых случаях коэффициенты a i
    входят в такую функцию нелинейно. Математические методы решения таких задач более сложны, поэто- му общий случай нелинейной регрессии здесь не рассматривается. Однако, в некоторых случаях нелинейную функцию можно линеаризовать, а затем применить аппарат линей- ной регрессии. Покажем это на примерах.
    Пример 1. Допустим, что заданные данные мы хотим аппроксимировать функцией
    `
    x
    b
    e
    a
    y

    , нелинейной относительно параметра b. Но эту функцию можно линеари- зовать, прологарифмировав обе ее части:
    x
    b
    a
    y


    ln ln
    Если теперь обозначить y1=ln(y) и a1=ln(a), получим уже линейную функцию в ви- де (5.1)
    x
    b
    a
    y


    1 1
    , к которой применим метод линейной регрессии, рассмотренный выше. Следова- тельно, можно получить значения параметров a
    1 и b, а затем и a.
    Пример 2. Пусть координаты точек заданы векторами Vx и Vy (см. рис. 5.9). Необ- ходимо подобрать вид аппроксимирующей функции с помощью графика.

    49
    OR IGIN
    1
    
    Vx
    1 2
    3 4
    5 6
    7
    








    








    
    Vy
    1.14 1.82 2.34 3.54 4.64 6.72 10.06
    








    








    
    - векторы координат точек
    0 2
    4 6
    8 0
    2 4
    6 8
    10 12
    Vy
    Vx
    0 0.5 1
    1.5 2
    0 2
    4 6
    8 10 12
    Vy ln Vx
    (
    )

    
    a) b)
    0 2
    4 6
    8 0
    1 2
    3
    ln Vy
    (
    )

    
    Vx
    0 0.5 1
    1.5 2
    0 1
    2 3
    ln Vy
    (
    )

    
    ln Vx
    (
    )

    
    c) d)
    Рисунок 5.9 – Расположение точек на графике в зависимости от масштабирования координатных осей: a) – натуральная шкала; b) – логарифмическая шкала по x; c) – логарифмическая шкала по y; d) – логарифмические шкалы по обеим осям
    Расположив точки на графиках с различными шкалами, можно заметить, что на ри- сунке 5.9 (с) точки приближенно укладываются в прямую линию. Это означает, что под- бираемую функцию можно линеаризовать, если заменить вектор y на ln(y). Следователь- но, за искомую функцию принимаем экспоненциальную
    `
    bx
    ae
    y

    или показательную
    x
    ab
    y

    , как общий случай.
    Если бы точки ложились на прямую линию в полулогарифмических координатах, показанных на рис. 5.9 (b), то можно было бы предположить в качестве аппроксимирую- щей функцию вида
    )
    ln(x
    b
    a
    y


    При прямолинейной тенденции расположения точек в логарифмических координа- тах, показанных на рис 5.6 (d), предполагаемая функция имеет вид степенной функции
    b
    ax
    y

    В том случае, когда заранее нельзя сказать о тенденции изменения исходных дан- ных и предположить вид зависимости затруднительно, в качестве приближающей функ- ции следует применять полином n-ой степени. Однако следует учитывать, что при увели- чении степени полинома (n>5) и особенно при небольшом количестве точек увеличивает- ся ошибка определения параметров и могут появиться нежелательные осцилляции ап- проксимирующей функции между узловыми точками.

    50
    1   2   3   4   5   6   7


    написать администратору сайта