НЕЛИНЕЙНАЯ АППРОКСИМАЦИЯ ПО МЕТОДУ НАИМЕНЬШИХ КВАДРАТОВ.

Презентация:



Advertisements
Похожие презентации
1. Постановка задачи аппроксимации 2. Метод наименьших квадратов 3. Линейная аппроксимация Лекция 8.
Advertisements

ЦИКЛ «ДО» i:=1,n действия … FOR i:=1 TO n DO Begin Действия End; …
1 Аппроксимация характеристик нелинейных резистивных элементов Выбор аппроксимирующей функции Метод выравнивания:
1 Программирование на языке Паскаль Максимальный элемент массива.
A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
Постановка задачи аппроксимации Линейная, нелинейная (второго порядка) аппроксимация Лекция 5.
МЕТОД НАИМЕНЬШИХ КВАДРАТОВ. СТАТИСТИЧЕСКАЯ ОЦЕНКА.
Одномерные массивы в языке программирования Pascal Общие сведения Презентация к уроку - 9 класс.
Это обозначаемая одним именем последовательность однотипных элементов. Массив -
Это обозначаемая одним именем последовательность однотипных элементов. Массив -
Линейные (одномерные) массивы. Линейным массивом можно назвать совокупность одинаковых компонент, имеющим один индекс. I12345 A[i]
Программирование на языке Паскаль Матрицы. Определение матрицы Матрица - это прямоугольная таблица с данными одного типа. Строки Столбцы A(3,4)
Этапы решения задач на ЭВМ. Выделение цели задачи, определение исходных данных и конечных результатов, а также условий и ограничений. 1. Постановка задачи.
Шутилина Л.А., A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5]
Найдите ошибки в программе Program A1; Var R1:real; I1, I2: integer; Begin R1:=3; I1:=4.63; I1:=3000; I2:=3000; I1:=I1+I2; I1:=I1/I2; End.
For i:=N1 to N2 do Begin тело цикла End; While do begin ; ;......end;
Тема: «Обработка элементов одномерного массива» :01:53.
Что такое структурный подход в программировании? Как он реализуется в ЯП Паскаль? Что такое процедура? Кто дает название процедуре? Где записывается процедура?
Чтобы найти максимальный элемент в массиве и потом производить с ним какие-либо действия, нужно узнать его номер (индекс - I).Чтобы найти максимальный.
Решение задач с использованием массивов
Транксрипт:

НЕЛИНЕЙНАЯ АППРОКСИМАЦИЯ ПО МЕТОДУ НАИМЕНЬШИХ КВАДРАТОВ

ПЛАН 1. Нелинейная аппроксимация 2. Квадратичная аппроксимация 3. Аппроксимация показательной функцией 4. Аппроксимация степенной функцией

1 2 1-линейная аппроксимация 2-нелинейная аппроксимация S1>>S2 Где S1,S2- сумма квадратов разности рассчитанных и экспериментально измеренных значений функций F(х)

Квадратичная Степенная; Показательная; 3 вида аппроксимационных зависимостей

КВАДРАТИЧНАЯ АППРОКСИМАЦИЯ Рассмотрим квадратичную аппроксимацию таблично заданной функцией:

Неизвестные коэффициенты аппроксимации определяются из условия минимума суммы квадратов разностей между этими значениями :

ДЛЯ ОПРЕДЕЛЕНИЯ КОЭФФИЦИЕНТОВ СОСТАВЛЯЕТСЯ СИСТЕМА УРАВНЕНИЙ ИЗ ЧАСТНЫХ ПРОИЗВОДНЫХ ПО ПАРАМЕТРУ

D 0

АППРОКСИМАЦИЯ ПОКАЗАТЕЛЬНОЙ ФУНКЦИИ ln(y) = ln(a)+kx; η = ln(y); После определения а 0 и а 1 по методу наименьших квадратов определяется исходный коэффициент:

АППРОКСИМАЦИЯ СТЕПЕННОЙ ФУНКЦИИ lg(y) = lg(a)+klg(x) ; lg(y) = η ;

ПРИМЕР АППРОКСИМАЦИИ СТЕПЕННОЙ ФУНКЦИИ

ДАЛЕЕ ЗНАЧЕНИЯ А0 И А1 ВЫЧИСЛЯЮТСЯ ЧЕРЕЗ S1, S2, S3, S4

ИСХОДНЫЕ ДАННЫЕ: ПОЛУЧЕННЫЙ РЕЗУЛЬТАТ

ПРИМЕР АППРОКСИМАЦИИ КВАДРАТИЧНОЙ ФУНКЦИЕЙ program tu134; uses crt; const n=6; x:array[1..n] of real=(300,400,500,600,700,800); y:array[1..n] of real=(6.97,7.01,7.12,7.28,7.45,7.62); var i:integer; s3,s5,xx,s7,s4,s6,s1,s2,a0,a1,a2,yy,d1,d2,d3,d4:real; begin clrscr; for i:=1 to n do begin s1:=s1+x[i]; s2:=s2+y[i]; s3:=s3+sqr(x[i]); s5:=s5+sqr(x[i])*x[i]; s7:=s7+x[i]*x[i]*x[i]*x[i]; s4:=s4+x[i]*y[i]; s6:=s6+sqr(x[i])*y[i]; end; d1:=n*s3*s7+s1*s5*s3+s1*s5*s3-s3*s3*s3-s1*s1*s7-n*s5*s5; d2:=s2*s3*s7+s4*s5*s3+s6*s1*s5-s6*s3*s3-s2*s5*s5-s4*s1*s7; d3:=n*s4*s7+s1*s6*s3+s3*s2*s5-s3*s3*s4-s1*s2*s7-s6*s5*n; d4:=n*s3*s6+s1*s5*s2+s1*s4*s3-s3*s3*s2-s5*s4*n-s1*s1*s6; a0:=d2/d1; a1:=d3/d1; a2:=d4/d1; writeln('y=',a0:5:3,a1:5,'*x+',a2:5,'*x*x'); xx:=800; yy:=a0+a1*xx+a2*sqr(xx); writeln('yy= ',yy:5:2); end.

СПАСИБО ЗА ВНИМАНИЕ