2.Аппроксимация в среде MathCad.
2.1. Аппроксимация линейной функцией с использованием встроенных функций системы MathCad .
Пусть функция f(x) эадана таблицей значений < (xi ,yi ) , i=0,1,2. n >



Настройка системы Mathcad


Используем встроенные функции slope и intercept для определения коэффициентов линейной регрессии (аппроксимация данных прямой линией).
Функция slope определяет угловой коэффициент прямой, а функция intercept – точку пересечения графика с вертикальной осью.



c=0.407843
Определяем аппроксимирующую функцию:

Mathcad предлагает для этих же целей также использовать функцию line

Вычислим стандартное отклонение.

Графики аппроксимирующей прямой и табличных данных

2.2.Аппроксимация полиномами.
Теперь попытаемся подобрать полиномы второй и третьей степени, в качестве аппроксимирующей функции.
Для этих целей служат встроенные функции regress и interp.
Функция regress (Mx,My,n) является вспомогательной, она подготавливает данные, необходимые для работы функции interp , где
— Mx,My — данные аппроксимации ;
— n – степень аппроксимирующего полинома (Очевидно, что если в качестве аппроксимирующей функции брать полином степени на единицу меньше числа точек, то задача сведется к задаче глобальной интерполяции и полученный полином будет точно проходить через все заданные узлы.).
Функция interp(vs , Mx ,My , x) возвращает значение полинома в точке x , где
— vs = regress (Mx,My,n) — вектор, который содержит, в том числе, и коэффициенты полинома ;
— x – значение аргумента , для которого необходимо вычислить значение
Вводим степени полиномов :


Вычислим коэффициенты аппроксимирующих полиномов

Определив новые функции f2, f3, мы получили возможность находить значение полинома в любой заданной точке.


Коэффициенты аппроксимирующих полиномов получим из vs2 и vs3 с помощью встроенной функции submatrix :



Вычислим стандартные отклонения



Стандартные отклонения почти не отличают друг от друга, коэффициент при третьей степени z невелик, поэтому дальнейшее увеличение степени полинома нецелесообразно и достаточно ограничиться только второй степенью.
К сожалению, функция regress имеется далеко не во всех версиях Matcad‘а.
Однако, провести полиномиальную регрессию можно и без использования этой функции.
Для этого нужно определить коэффициенты нормальной системы и решить полученную систему уравнений, например, матричным методом.
Теперь попытаемся аппроксимировать экспериментальные данные полиномами степени m и m1, не прибегая к помощи встроенной функции regress .
Вычисляем элементы матрицы коэффициентов нормальной системы







и столбец свободных членов




Находим коэффициенты полинома, решая систему матричным методом,




Определяем аппроксимирующие функции


Коэффициенты полиномов следующие:


Вычислим стандартное отклонение

Графики аппроксимирующего полинома функции и данных аппроксимации :
Как сделать аппроксимацию по заданным точкам
Есть точки по которым нужно построить график. График с точками прикрепляю в скриншоте, график который нужно получить, как пример, в фото.
Нужно чтобы была прямая линия до b=0.528 при m=3*10^-4, а потом убывала по параболе до b=1 и m=0.
Файл маткада также прикрепляю.
Окажите помощь пожалуйста.
Спасибо!
Вложения
| MB.rar (14.2 Кб, 9 просмотров) |
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как сделать движение по заданным точкам из массива?
Сделал небольшой код, хочу, чтоб персонаж двигался из точки в точку. Столкнулся с проблемой, если у.
Как сделать экспоненциальную аппроксимацию?
Помогите пожалуйста в решение экспоненциальной аппроксимации, сделал линейную и квадратичную x=;.

Как сделать аппроксимацию в этом случаи
Доброго времени суток! У меня есть код, который позволяет мне вычислить зависимость T от значение.
Как построить сплайн по заданным точкам
Всем добрый день. У меня возникла такая проблема. Имеется одномерный массив состоящий из чисел.
Как нарисовать на Canvas четырехугольник по заданным точкам?
если у мне имеется 4 точки как рисовать четирыехуголник
![]()
10036 / 6633 / 3597
Регистрация: 14.01.2014
Сообщений: 15,321
Если я правильно понял — Вам надо получить параболическую аппроксимацию для правой ветви? Прямая часть ветви это просто m=3*10^-4!
Как сделать апроксимацию в маткаде
Приведем два варианта решения задачи аппроксимации:
-
в первом примере каждый из перечисленных этапов реализован в виде отдельного блока с необходимыми комментариями;
Функция MNK, использованная во втором примере, получает через список параметров m – объем выборки; k – число факторов; z – матрицу значений факторов; y – вектор значений функции отклика. Результатом выполнения функции будет вектор коэффициентов регрессии – (k+1) элемент, так как исходное регрессионное уравнение предполагает наличие свободного члена.
Отметим, что рассмотренный алгоритм позволяет оценить коэффициенты уравнений при нескольких независимых переменных, т.е. является алгоритмом множественной линейной регрессии. Основная задача пользователя – правильно определить факторы и вычислить их значения для матрицы факторов.
Mathcad имеет ряд встроенных функций, реализующих алгоритмы аппроксимации для различных видов уравнений. Как правило, предполагается наличие одной независимой переменной.
Все функции, упоминаемые далее в этом разделе, описаны в приложении «Встроенные функции и ключевые слова» настоящего пособия.
2. Линейная регрессия общего вида аппроксимирует заданную совокупность точек функцией вида
Таким образом, функция регрессии является линейной комбинацией функций F1(x), F2(x), . Fn(x), причем сами эти функции (факторы) могут быть нелинейными, что расширяет возможности такой аппроксимации и распространяет ее на нелинейные функции.
Для реализации линейной регрессии общего вида используется функция
Она возвращает вектор коэффициентов линейной регрессии общего вида К, при котором среднеквадратичная погрешность приближения «облака» исходных точек, координаты которых хранятся в векторах VX и VY, оказывается минимальной. Вектор F должен содержать функции F1(x), F2(x), . Fn(x), записанные в символьном виде.
3. В Mathcad введена и функция для обеспечения полиномиальной регрессии при произвольной степени полинома
Она возвращает вектор VS, запрашиваемый функцией interp(VS, VX, VY.x), содержащий коэффициенты многочлена n-й степени, который наилучшим образом приближает «облако» точек с координатами, хранящимися в векторах VX и VY. Для вычисления коэффициентов полинома регрессии используется функция submatrix (см. пример).
На практике не рекомендуется делать степень аппроксимирующего полинома выше 4–6, поскольку погрешности реализации регрессии сильно возрастают. Функция regress создает единственный приближающий полином, коэффициенты которого вычисляются по всей совокупности заданных точек.
4. Многомерную регрессию также можно реализовать в Mathcad. Самый типичный случай ее использования – приближение поверхностей в трехмерном пространстве. Их можно описать, задав массив значений высот z, соответствующих двухмерному массиву Мху координат точек (х,у) на горизонтальной плоскости.
Новых функций для этого не задано. Используются уже описанные ранее функции, но в несколько иной форме, например
- regress (Mxy, Vz, n) – возвращает вектор, запрашиваемый функцией interp (VS. Mxy, Vz, V) для вычисления многочлена n-й степени, который наилучшим образом приближает точки множества Мху и Vz, Мху – матрица размера 2m, содержащая координаты х и у. Vz – m-мерный вектор, содержащий z-координаты, соответствующие m точкам, указанным в Мху.
- Interp(VS, Mxy, Vz, V) – возвращает значение z по заданным векторам VS (создается функцией regress) и Мху, Vz и V (вектор координат х и у заданной точки, для которой находится z).
5. Под нелинейной регрессией общего вида подразумевается нахождение вектора К коэффициентов произвольной функции F(x, К1, К2, . Кn), при котором обеспечивается минимальная среднеквадратичная погрешность приближения «облака» исходных точек.
Для проведения нелинейной регрессии общего вида используется функция
genfit(VX, VY, VS, F)
Эта функция возвращает вектор К параметров функции F, дающий минимальную среднеквадратичную погрешность приближения функцией F(x, К1, К2, . Кn) исходных данных.
F должен быть вектором с символьными элементами, причем они должны содержать аналитические выражения для исходной функции и ее производных по всем параметрам. Вектор VS должен содержать начальные значения элементов вектора К, необходимые для решения системы нелинейных уравнений регрессии итерационным методом.
В примере далее приведен образец реализации нелинейной регрессии общего вида для уравнения ln p = A – B / (C + t).
При решении этой задачи возникают две проблемы. Во-первых, надо вычислить значения производных по переменным A, B, C. В документе это сделано с помощью символьных операций
Вторая проблема связана с необходимостью применения функции genfit в ее стандартном виде. Поэтому пришлось заменить искомые коэффициенты модели на элементы массива k
6. Перечень некоторых дополнительных функций для оценки коэффициентов аппроксимирующих уравнений разного вида (см. приложение)
- expfit(vx, vy, vg) – возвращает вектор, содержащий коэффициенты (a, b и с) аппроксимирующего выражения вида а·еxp(b·х)+с, график которого лучшим образом приближается к точкам, координаты которых хранятся в векторах vx и vy (вектор vg содержит первое приближение к решению);
- lgsfit(vx, vy, vg) – то же, но для выражения а/(1+b·е (–с·х) );
- logfit(vx, vy) – то же, но для выражения a·ln(x+b)+c (начального приближения не требуется);
- medfit(vx, vy) – то же, но для выражения а+bx (начального приближения не требуется);
- pwrfit(vx, vy, vg) – то же, но для выражения а·х b +с. Вектор vg содержит первое приближение к решению;
- sinfit(vx, vy, vg) – то же, но для выражения a·sin(x+b)+c.
Решения задач в Mathcad
В этом разделе вы найдете бесплатные примеры решений задач и лабораторных работ, выполненные с применением пакета Mathcad. Используйте данные примеры или закажите свою работу профессионалам.
Полезная страница? Сохрани или расскажи друзьям
Решенные задания в Маткад онлайн
Задача 1. Расчетно-проектировочная работа посвящена решению типовых задач анализа, синтеза и оптимизации параметров контрольно-измерительного устройства (ИУ). Структурная схема (ж) выбрана в соответствии с индивидуальным вариантом задания (рис. 1.1, см. в файле).
1.1. Определите (двумя разными способами) коэффициент чувствительности ИУ , если коэффициенты чувствительности его звеньев известны.
Примечание: ответ нужно получить в виде формулы $K=K(k_1, k_2, k_3)$, связывающей значение общего коэффициента чувствительности ИУ с коэффициентами чувствительности его звеньев. Полученный результат используется в последующих расчетах.
Задача 2. Вычислить по формуле Симпсона определенный интеграл от функции: $f(x)=\sqrt$, $a=2$, $b=32$ с шагом $h_1=(b-a)/10$ и с шагом $h_2=(b-a)/20$. Оценить абсолютную погрешность по правилу Рунге. Ответ дать с учетом поправки Рунге.
С помощью системы Mathcad определить число шагов, необходимое для достижения точности вычислений $10^$.
Задача 3. Урожай с виноградника определенной площади ежегодно позволяет получить $А=75$ декалитров молодого вина, 70% которого реализуется немедленно по цене $Р_1=9$ франков за литр. Оставшаяся часть идет в продажу через год по цене $Р_2=28$ франков за литр. В производство вкладывается 80% процентов ежегодной выручки, что позволяет ежегодно увеличивать площади под виноградники и расширять производство. При этом на каждый вложенный франк дополнительно получается $В=0,2$ литра вина. Найти сумму выручки за каждый из 5-ти лет. Задачу решить аналитически и с помощью системы Mathcad.
Задача 4. Найдите графически отрезок изоляции корня и вычислите значение корня с точностью до 0,001 методом итераций. Все вычисления выполняйте с четырьмя знаками после запятой. $$e^+2x-6=0$$
Задача 5. Составьте таблицу значений функции $y=f(x)$ на отрезке $[a;b]$ с шагом $h$. В значениях функции сохраняйте три знака в дробной части. Вычисления проводить с тремя знаками после запятой. Используя квадратичную интерполяцию по полученной таблице, вычислите значение функции в точке $x=x^*$. Вычисления проводите двумя способами:
1) по формуле Лагранжа;
2) по формуле Ньютона.
Сделайте рисунок, на котором изобразите точки таблицы. Вычислите непосредственно значение функции $y=f(x)$ в указанной точке $x^*$ и сравните с значениями, полученными в результате интерполяции.
Задача 6. 1. Определить, какое приближение точнее, сравнив относительные погрешности.
2. Найти предельные абсолютные и относительные погрешности, если они имеют только верные цифры
а) в узком смысле
б) в широком смысле
3. Вычислить и найти предельные абсолютную и относительную погрешности результата
Задача 7. Найти в МатКад численное решение линейной краевой задачи для дифференциального уравнения второго порядка конечно-разностным методом, используя аппроксимацию производной второго порядка и шаг $h = 0.1$.
Задача 8. Лабораторная работа
1. Запустить программу Mathcad
2. Создать матрицы
3. Выполнить действия с матрицами
4. Найти ранг матрицы А
5. В символьном виде выполнить транспонирование матрицы В, инвертирование матрицы А
6. НАйти обратную матрицу К. Найти детерминант матрицы А
