Численные методы и оптимизация

Получение линейной, квадратичной, аппроксимирующей функций для заданной функции 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.