Численные методы и оптимизация
Получение линейной, квадратичной, аппроксимирующей функций для заданной функции y(x) методом наименьших квадратов для степенного базиса. Решение уравнения F2(x). Вычисление интеграла методами Симпсона, трапеций и средних прямоугольников. Примеры программ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 17.03.2014 |
Размер файла | 35,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1
Размещено на http://www.allbest.ru/
Московский технический университет по связи и информатике
Заочная форма обучения
Курсовая работа по предмету:
Информатика
Тема: Численные методы и оптимизация
Студента 2 курса
Специальности 201000
Студенческий билет
№ 3МС03510
Преподаватель:
Н. Новгород
2004 год
Задание
функция квадратичный линейный интеграл
Для заданной функции y(x) методом наименьших квадратов для степенного базиса получить линейную F1(x) = a0 + a1x и квадратичную F2(x) = a0 + a1x + a2x2 аппроксимирующие функции:
составить и решить систему нормальных уравнений;
определить параметры аппроксимирующих функций;
вычислить значения аппроксимирующих функций в узлах аппроксимации;
построить график заданной функции (множество точек) и графики функций линейной и квадратичной аппроксимации;
оценить качество аппроксимации.
Найти два корня уравнения F2(x) = 0 с заданной точностью Е:
отделить корни;
проверить (аналитически) условия сходимости применяемых методов решения уравнений. В случае необходимости привести уравнение к виду, обеспечивающему сходимость процесса приближения к корню;
выбрать начальное приближение;
записать рекуррентную формулу для уточнения корня;
оценить погрешность.
Вычислит dx при разбиении отрезка интегрирования на
n1 = 10 и n2 = 20 подынтервалов , x1, x2 - корни уравнения :
оценить погрешность.
Определить точку экстремума функции F2(x) методами одномерной оптимизации (с точностью Е):
проверить условие унимодальности и выбрать начальный отрезок оптимизации;
записать условие окончания поиска минимума (максимума) функции.
Задание 1. Функция y = y(x) задана таблицей.
Таблица 1
I |
0 |
1 |
2 |
3 |
4 |
5 |
|
xi |
0 |
2 |
4 |
6 |
8 |
10 |
|
y(x) |
1 |
1.386 |
0.406 |
-0.939 |
-1.286 |
-0.266 |
Запишем параметры линейной аппроксимации:
x = = 4.285 y = = 0.043
a0 = y - a1x = 1.170952
a1 = = -0.2241571
Искомая линейная аппроксимирующая функция:
F1(x) =-0.2241571х+1.170952
Составим и решим систему нормальных уравнений для определения параметров многочлена второй степени F2(x) = a0 + a1x + a2x2
(n+1)a0 + ( Уxi )a1 + ( Уxi2)a2 = У yi
( Уxi )a0 + ( Уxi2)a1 + ( Уx3)a2 = У xi yi
(Уxi2)a0 + ( Уxi3 )a1 + ( Уxi4)a2 = У xi2 yi .
Система нормальных уравнений:
6а0 30а1 + 220а2 = 0.301
30а0 + 220а1 - 1800а2 = -14.186
220а0 - 1800а1 + 15664а2 = -130.668
Решение системы нормальных уравнений:
а2 = 2.545535Е-02 а1 = -0.4787107 а0 = 1.510357
Искомая аппроксимирующая функция:
F2(x) = 2.545535E-02 x2 - 0.4787107 x 1.510357
Значения аппроксимирующих функций F1{x} и F2{x} в узлах аппроксимации приведены в таблице 3:
X |
0 |
2 |
4 |
6 |
8 |
10 |
|
F1{x} |
1.170952 |
0.722638 |
0.274323 |
-0.1739 |
- 0.6223 |
-1.0706 |
|
F2{x} |
1.51035 |
0.65475 |
2.799E-03 |
-0.4455 |
-0.6901 |
-0.7312 |
Таблица3
Графики функций линейной и квадратичной аппроксимации показаны на рисунке
Оценим качество аппроксимации:
с = sqr(1/(n+1)* ? (Fm(xi) - y(xi))2)
Для линейной функции: р1=0.5999658
Для квадратичной функции: р2=0.5435526
p2<p1, значит аппроксимация квадратичной функции более качественная.
Задание 2. Решение уравнения F2(x) с точностью Е = 10-4 . Для отделения корней уравнения F2(x)
Составим таблицу знаков функции F2(x).
Таблица 4
X |
-1 |
1 |
3 |
5 |
7 |
9 |
11 |
13 |
15 |
|
Sign F2(x) |
+ |
+ |
+ |
- |
- |
- |
- |
- |
+ |
На отрезках [3 5] и [12 15] функция F2(x) меняет знаки, т.е. существует, по крайней мере, по одному корню.
Производная F2'(x) = 0.051x-0.4787107,
F2"(x) = 0.051 > 0, следовательно, производная F2'(x) - монотонно возрастающая функция.
Составим таблицу знаков функции Аэ(ч) на выбранных отрезках:
X |
3 |
5 |
13 |
15 |
|
Sign F2'(x) |
-0.32571 |
-0.2237 |
0.18423 |
0.2863 |
На отрезке [3;5] функция F2(x) монотонно убывает, причем F2'(x) сохраняет знак, отрезок [3;5] содержит корень.
На отрезке [13;15] функция F2(x) монотонно возрастает, причем F2'(x) сохраняет знак, отрезок [13;15] содержит корень.
Уточним корни методом Итераций. Воспользуемся предложенной методикой получения функции.
F2(x) - дифференцируемая и имеет разные знаки на отрезках [3;5] и [13;15].
F2'(3)<0, F2'(5)<0, F2'(x)=0
F2'(13)>0, F2'(15)>0, F2'(x)=0
Интегрирующая функция (x) = *F2(x) + x обеспечивает выполнение условий сходимости | (x)|<1
Правила выбора параметра:
-1/r < <0, если F2'(x) > 0
0 < <1/r, если F2'(x) , 0,
r = max (|F2'(a)|,|F2'(b)|).
На отрезке [3;5] r = max (0.32;0.22), следовательно, r = 0.32.
Т.к. F2' < 0, 0 < <1/0.32, пусть = - 2/
На отрезке [13; 15] r = max (0.18;0.28), следовательно, r = 0.28
Т.к. F2'(x)>0, -1/0.28 < < 0, пусть = - 2
На отрезке [3;5] =2 x0=4
На отрезке [13;15] =-2 x0=15
Условия окончания поиска корня:
|Xn - Xn+1| < E
F2'(Xm) - F2(Xm+1) < E
Оценка погрешности корня:
|x*-xn| <= m*q/(1-q); q=max | `(x)|; m= |x0 - (x0)|.
На отрезке [3;5]:q=1.5963,
(x)=x; (4) = 3.98624
M=0.01376.
На отрезке [13;15]: `(x)=0.106349x, q=1.5952,
(14) = 13.5772; m=0.4227.
Результаты решения уравнений F2(x):
На отрезке [3;5] x = 4.0101372
На отрезке [13;15] x = 14.795575
Задание 3. Интеграл F2(x)dx вычислить, полагая n = 10 и n = 20 методами Симпсона, трапеций и средних прямоугольников.
Формула метода средних прямоугольников:
? F2(x)dx = h У F2(б + kh ),
k-степень используемого полинома, k=2
где б = а + , h = xi+1 - xi =
Формула метода трапеций:
? F2(x)dx = (F2(a) + F2(b) + 2 У F2 (б + ih ),
где h = xi+1 - xi = ,
Формула метода Симпсона:
? F2(x)dx = [(F2(a) + F2(b) + 4 (F2(x1) + F2(x3) + … + F2(x2n-1)) + 2( F2(x2) + F2(x4) + … + F2(x2n-2)) ],
где h = xi+1 - xi = ,
Результаты занесем в таблицу
n |
Метод средних прямоугольников |
Метод трапеций |
Метод Симпсона |
|
10 |
I = -5.349468 |
I = -5.269625 |
I = -5.322854 |
|
20 |
I = -5.329504 |
I = -5.309546 |
I = -5.322853 |
Оценка погрешности по правилу Рунге: R =|Ih-Ih/2|/(2^k-1)
Для методов средних прямоугольников и трапеций k = 2 ,
Rср.пр. = 6.6546E-03 Rтрап. = 1.3307E-02
Для метода Симпсона k = 4 , Rс = 1E-09
Задание 4. Для нахождения точки экстремума применим методы дихотомии и золотого сечения. Проверка унимодальности необходима для использования указанных методов оптимизации.
f(x) = F2(x)
F2(x) = 2.545536E-02*x^2 - 0.474787107*x*1.510357
F''(x) = 0.509, f''(x) > 0, следовательно,
F2(x) - унимодальная схема и имеет локальный минимум. «Золотое сечение осуществляется двумя точками:
X1 = a+(3- 5)/2*(b - a ) = a+k1(b-a),
X2 = a+( - 1)/2*(b-a)=a+k2(b-a),
Где x1 - вторая точка золотого сечения отрезка [a;x2],
X2 - первая точка золотого сечения отрезка [x1;b].
X*=(an + bn)/2.
Взяв в качестве натурального отрезка [0 ; 2] и точность =0.0001, получим:
Xm = 1.999959, f(xm) = fm = 0.6547724
Текст программы:
DECLARE SUB GOLD (N!, AI!, BI!, DE!, A!(), XM!, FXM!)
DECLARE SUB DIHOTOM (N!, AI!, BI!, DE!, A!(), XM!, FXM!)
DECLARE SUB SIMP (N!, X1!, X2!, A!(), I!)
DECLARE SUB TRAP (N!, X1!, X2!, A!(), I!)
DECLARE SUB PRJAM (N!, X1!, X2!, A!(), I!)
DECLARE SUB NJUTON (DE!, X!, A!(), N!)
DECLARE SUB GAUSS (K!, G!(), B!(), A!())
DECLARE SUB GRAM (I!, K!, G!(), X!(), Y!(), B!())
DECLARE SUB ITER (DE!, L!, X!, A!(), N!)
CLS
DATA 5
READ I
DATA 2
READ K
DIM X(I), Y(I), B(K), A(K)
DIM G(K, K)
DATA 0,2,4,6,8,10
FOR N = 0 TO I
READ X(N)
NEXT N
DATA 1,1.386,.406,-.939,-1.286,-.266
CLS
FOR N = 0 TO I
READ Y(N)
NEXT N
PRINT "Матрица Граммма"
CALL GRAM(I, K, G(), X(), Y(), B())
FOR L = 0 TO K
FOR M = 0 TO K
PRINT "G"; L; ","; M; "="; G(L, M); " ";
NEXT M
PRINT "B"; L; "="; B(L)
NEXT L
PRINT "Решение системы уравнений"
CALL GAUSS(K, G(), B(), A())
FOR N = 0 TO K
PRINT "A"; N; "="; A(N)
NEXT N
PRINT "Значение апроксимирующей функции"
DIM YA(I)
FOR N = 0 TO I
FOR L = 0 TO K
YA(N) = YA(N) + A(L) * X(N) ^ L
NEXT L
PRINT "YA("; X(N); ")="; YA(N)
R = R + ((YA(N) - Y(N)) ^ 2)
NEXT N
RO = SQR(((1 / (I + 1)) * R))
PRINT "Погрешность апроксимации"
PRINT RO
PRINT "Значения F(X) F'(X)"
FOR N = -10 TO 10 STEP 2
FF = A(2) * N * N + A(1) * N + A(0)
FFF = A(2) * 2 * N + A(1)
PRINT N; " "; FF; " "; FFF
NEXT
X = 4
DE = .015
CALL NJUTON(DE, X, A(), N)
PRINT "Корни методом Ньютона"
PRINT "N="; N; " X="; X;
X1 = X
X = 14
DE = .02
CALL NJUTON(DE, X, A(), N)
PRINT " N="; N; " X="; X
X2 = X
PRINT "Корни методом итераций"
X = 4
L = .5
DE = .0001
CALL ITER(DE, L, X, A(), N)
PRINT "N="; N; " X="; X;
X = 14
L = -.5
CALL ITER(DE, L, X, A(), N)
PRINT " N="; N; " X="; X
PRINT "Интеграл методом прямоугольников"
N = 10
CALL PRJAM(N, X1, X2, A(), I)
PRINT "N="; N; " I="; I;
I1 = I
N = 20
CALL PRJAM(N, X1, X2, A(), I)
R = ABS(I1 - I) / 3
PRINT " N="; N; " I="; I; " R="; R
PRINT "Интеграл методом трапеций"
N = 10
CALL TRAP(N, X1, X2, A(), I)
I1 = I
PRINT "N="; N; " I="; I;
N = 20
CALL TRAP(N, X1, X2, A(), I)
R = ABS(I1 - I) / 3
PRINT " N="; N; " I="; I; " R="; R
PRINT "Интеграл методом симпсона"
N = 10
CALL SIMP(N, X1, X2, A(), I)
I1 = I
PRINT "N="; N; " I="; I;
N = 20
CALL SIMP(N, X1, X2, A(), I)
R = ABS(I1 - I) / 15
PRINT " N="; N; " I="; I; " R="; R
PRINT "Экстремум методом дитохомии"
AI = -10
BI = 10
CALL DIHOTOM(N, AI, BI, DE, A(), XM, FXM)
PRINT "N="; N; "XM="; XM; "FXM="; FXM
PRINT "Экстремум методом золотого сечения"
AI = -10
BI = 10
CALL GOLD(N, AI, BI, DE, A(), XM, FXM)
PRINT "N="; N; "XM="; XM; "FXM="; FXM
Тексты подпрограмм:
функция квадратичный линейный интеграл
SUB DIHOTOM (N, AI, BI, DE, A(), XM, FXM)
H = DE / 2
N = 0
DO
X1 = (AI + BI - H) / 2
X2 = (AI + BI + H) / 2
FX1 = A(2) * X1 * X1 + A(1) * X1 + A(0)
FX2 = A(2) * X2 * X2 + A(1) * X2 + A(0)
IF FX1 > FX2 THEN AI = X1
IF FX1 <= FX2 THEN BI = X2
N = N + 1
D = ABS(BI - AI)
LOOP UNTIL D < DE
XM = (AI + BI) / 2
FXM = A(2) * XM * XM + A(1) * XM + A(0)
END SUB
SUB GAUSS (K, G(), B(), A())
REM Вспомогательная матрица
DIM S(K, (K + 1))
FOR L = 0 TO K
FOR M = 0 TO K
S(L, M) = G(L, M)
NEXT M
S(L, (K + 1)) = B(L)
NEXT L
REM Прямой ход
FOR L = 0 TO K - 1
FOR M = L + 1 TO K
FOR J = L + 1 TO K + 1
S(M, J) = S(M, J) - S(L, J) * (S(M, L) / S(L, L))
NEXT J
NEXT M
NEXT L
A(K) = S(K, K + 1) / S(K, K)
REM Обратный ход
FOR M = K - 1 TO 0 STEP -1
A(M) = S(M, K + 1)
FOR J = K TO M + 1 STEP -1
A(M) = A(M) - S(M, J) * A(J)
NEXT J
A(M) = A(M) / S(M, M)
NEXT M
END SUB
SUB GOLD (N, AI, BI, DE, A(), XM, FXM)
N = 0
DO
X1 = (BI - AI) * .382 + AI
X2 = (BI - AI) * .618 + AI
FX1 = A(2) * X1 * X1 + A(1) * X1 + A(0)
FX2 = A(2) * X2 * X2 + A(1) * X2 + A(0)
IF FX1 > FX2 THEN AI = X1
IF FX1 <= FX2 THEN BI = X2
N = N + 1
D = ABS(BI - AI)
LOOP UNTIL D < DE
XM = (AI + BI) / 2
FXM = A(2) * XM * XM + A(1) * XM + A(0)
END SUB
SUB GRAM (I, K, G(), X(), Y(), B())
REM MATRIX
FOR L = 0 TO K
FOR M = 0 TO K
FOR N = 0 TO I
G(L, M) = G(L, M) + (X(N) ^ (L + M))
NEXT N
G(0, 0) = I + 1
NEXT M
FOR N = 0 TO I
B(L) = B(L) + Y(N) * X(N) ^ L
NEXT N
NEXT L
END SUB
SUB ITER (DE, L, X, A(), N)
N = 0
DO
XN = X + L * (A(2) * X * X + A(1) * X + A(0))
D = ABS(X - XN)
FX0 = A(2) * X * X + A(1) * X + A(0)
FXN = A(2) * XN * XN + A(1) * XN + A(0)
DF = ABS(FX0 - FXN)
IF DF > D THEN D = DF
X = XN
N = N + 1
LOOP UNTIL D < DE
END SUB
SUB NJUTON (DE, X, A(), N)
N = 0
DO
XN = X - (A(2) * X * X + A(1) * X + A(0)) / (A(2) * 2 * X + A(1))
REM PRINT XN
D = ABS(X - XN)
X = XN
N = N + 1
LOOP UNTIL D < DE
END SUB
SUB PRJAM (N, X1, X2, A(), I)
H = ABS(X2 - X1) / N
I = 0
FOR K = 0 TO (N - 1)
X = X1 + K * H + H / 2
I = I + (A(2) * (X) * (X) + A(1) * (X) + A(0)) * H
NEXT
END SUB
SUB SIMP (N, X1, X2, A(), I)
I = 0
H = (X2 - X1) / (2 * N)
I = A(2) * X1 * X1 + A(1) * X1 + A(0)
I = I + A(2) * X2 * X2 + A(1) * X2 + A(0)
C = 4
X = X1
FOR K = 1 TO (2 * N - 1)
X = X + H
I = I + (A(2) * X * X + A(1) * X + A(0)) * C
C = 6 - C
NEXT
I = I * H / 3
END SUB
SUB TRAP (N, X1, X2, A(), I)
I = 0
H = ABS(X2 - X1) / N
FOR K = 1 TO (N - 1)
X = X1 + K * H
I = I + A(2) * X * X + A(1) * X + A(0)
NEXT
FA = A(2) * X1 * X1 + A(1) * X1 + A(0)
FB = A(2) * X2 * X2 + A(1) * X2 + A(0)
I = (I * 2 + FA + FB) / 2 * H
END SUB
Размещено на Allbest.ru
...Подобные документы
Построение аппроксимирующей зависимости методом наименьших квадратов. Расчет интеграла по Ричардсону. Последовательность действий при аппроксимации экспоненциальной зависимостью. Определение корня уравнения методом простых итераций и решение задачи Коши.
курсовая работа [550,5 K], добавлен 13.03.2013Аппроксимация линейной, степенной и квадратичной функции. Определение корней уравнения вида f(x)=0 методом половинного деления. Вычисление определенного интеграла методом прямоугольников, трапеций, парабол и Эйлера. Интерполяция формулой Лагранжа.
курсовая работа [1,3 M], добавлен 21.09.2011Решение циклических программ и программ вычисления функции с условием. Уравнение в табличном редакторе Microsoft Excel и в Turbo Pascal. Вычисление определенного интеграла методом прямоугольников, трапеции, Симпсона. Линейные и нелинейные уравнения.
курсовая работа [233,6 K], добавлен 27.12.2009Численные методы. Создание программного продукта, использование которого позволит одновременно исследовать два метода вычисления определенных интегралов: метод трапеций и метод Симпсона. Рассмотрен ход вычисления интеграла в виде кода программы.
курсовая работа [834,6 K], добавлен 14.04.2019Аппроксимация эмпирических данных линейной и квадратичной зависимостью. Теория корреляции: расчет коэффициентов детерминированности. Построение алгоритма и вычисление приближённых функций методом наименьших квадратов в среде программирования Turbo Pascal.
курсовая работа [766,6 K], добавлен 26.12.2011Основные методы и алгоритмы исследования. Нахождение минимума среднеквадратичного отклонения. Особенности решения нормальных уравнений. Параметры линейной аппроксимирующей функции. Расчет значений аппроксимирующей функции и среднеквадратичного уклонения.
курсовая работа [749,3 K], добавлен 08.06.2019Метод хорд решения нелинейных уравнений. Вычисление интеграла методом Симпсона. Процесс численного решения уравнения. Окно программы расчета корней уравнения методом хорд. Алгоритм вычисления интеграла в виде блок-схемы. Выбор алгоритма для вычислений.
курсовая работа [832,6 K], добавлен 24.07.2012Создание приложения, демонстрирующего решение нелинейного уравнения методом хорд, вычисление интеграла методом Симпсона. Характеристика системы программирования. Разработка мощных систем для работы с локальными и удаленными базами данных с помощью Delphi.
дипломная работа [846,0 K], добавлен 22.09.2012Построение графика функции. Поиск корней уравнения методом половинного деления. Определение минимума функции методом перебора и значения аргумента. Вычисление определенного интеграла на заданном отрезке с использованием метода правых прямоугольников.
контрольная работа [316,1 K], добавлен 13.11.2014Рассмотрение методов приближенного численного анализа. Формулы интегрирования, прямоугольников, трапеций, формула Симпсона. Оценка погрешностей интегрирования. Вычисление интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона.
курсовая работа [995,7 K], добавлен 09.07.2012Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.
курсовая работа [1,4 M], добавлен 15.08.2012Проверить условие сходимости и записать расчетные формулы для нахождения корня уравнения. Составить блок-схему алгоритма, программу решения задачи. Вычисления определенного интеграла методом Симпсона. Построить график функции Y=1/sqr(3sin(x)+2cos(x)).
курсовая работа [29,6 K], добавлен 02.10.2008Программа вычисления интеграла методом прямоугольников. Решение задачи Коши для дифференциальных уравнений. Модифицированный метод Эйлера. Методы решения краевой задачи для обыкновенного дифференциального уравнения. Задачи линейного программирования.
методичка [85,2 K], добавлен 18.12.2014Разработка программы, выполняющей интегрирование методом входящих прямоугольников с кратностями и методом Симпсона. Расчет определённого интеграла приближенным и точным методами. Оценка погрешности при вычислении приблизительного значения интеграла.
контрольная работа [71,7 K], добавлен 13.02.2016Математическое описание, алгоритм и программа вычисления определенного интеграла методом трапеций. Расчет n-значений исследуемой функции и вывод их в виде таблицы. Технические и программные средства. Входные и выходные данные, функциональное назначение.
курсовая работа [21,0 K], добавлен 03.01.2010Решения алгебраических уравнений методом выделения корней. Аппроксимация функций методом наименьших квадратов; дихотомия, бисекция. Одномерная оптимизация многоэкстремальных функций; метод золотого сечения. Многомерная оптимизация градиентным методом.
курсовая работа [956,7 K], добавлен 04.03.2013Определение ускорения свободного падения с помощью физического маятника. Период колебания физического маятника. Нахождение ускорения свободного падения методом наименьших квадратов. Решение задач методами Гаусса-Ньютона и квазиньютоновскими методами.
лабораторная работа [32,4 K], добавлен 29.03.2015Методика и основные этапы процесса поиска уравнения по методу половинного деления, его сущность и содержание, анализ результатов. Порядок вычисления экстремумов функции методом перебора. Расчет определенного интеграла по методу правых прямоугольников.
контрольная работа [200,9 K], добавлен 20.01.2014Знакомство с наиболее известными технологиями программирования. Особенности разработки программ для вычисления интеграла по формуле средних прямоугольников. Общая характеристика методов структурного программирования. Рассмотрение формулы Симпсона.
курсовая работа [1,3 M], добавлен 03.03.2015Отделение корней методом простых интеграций. Дифференцирование и аппроксимация зависимостей методом наименьших квадратов. Решение нелинейного уравнения вида f(x)=0 методом Ньютона. Решение системы линейных уравнений методом Зейделя и методом итераций.
курсовая работа [990,8 K], добавлен 23.10.2011