Приближение функции по методу наименьших квадратов (МНК)




Численные методы решения нелинейных уравнений

Определить корни уравнения графически и уточнить один из них итерационными методами.

, .

График функции на отрезке [0.2, 1]. Как видно из графика, решение около 0,45.

 

 

Метод деления отрезка пополам

Исходные данные:

a b e x f(x)
0,2   0,01 0,46875 0,023893

 

Программа:

PublicFunction F(x)

F = (x + 1) ^ 2 - 1 / x

EndFunction

 

PublicSubPopolam()

a = Cells(2, 1)

b = Cells(2, 2)

e = Cells(2, 3)

1 x = (a + b) / 2

If F(a) * F(x) < 0 Then b = x Else a = x

If (b - a) >= e Then GoTo 1

Cells(2, 4) = x

Cells(2, 5) = F(x)

EndSub

 

Метод Ньютона (метод касательных)

Проверяем выполнение условия сходимости на концах заданного интервала: - выполняется. За начальное приближение корня можно принять .

Исходные данные:

x0 e x F(x)
0,2 0,01 0,46557 -1,02E-05

Программа:

Public Function F(x)

F = (x + 1) ^ 2 - 1 / x

End Function

Public Function F1(x)

F1 = 2 * (x + 1) + 1 / x / x

End Function

 

Public Sub Nyton()

x = Cells(2, 1)

e = Cells(2, 2)

1 xk = x - F(x) / F1(x)

If Abs(xk - x) >= e Then x = xk: GoTo 1

Cells(2, 3) = xk

Cells(2, 4) = F(xk)

EndSub

 

Метод простой итерации

Определяем значение M:

Исходные данные:

x0 e M x F(x)
  0,001   0,465699 0,000963

 

Программа:

Function F(x)

F = (x + 1) ^ 2 - 1 / x

End Function

Sub Iter()

x = Cells(2, 1)

e = Cells(2, 2)

M = Cells(2, 3)

1 xk = x - F(x) / M

If Abs(xk - x) >= e Then x = xk: GoTo 1

Cells(2, 4) = xk

Cells(2, 5) = F(xk)

End Sub

 

Решение СЛАУ (систем линейных алгебраических уравнений)

Решить систему уравнений методом Гаусса:

 

Решение приведено в другом документе (в приложении).

 

Решение СЛАУ (систем линейных алгебраических уравнений)

Решить систему уравнений методом прогонки (или итерационным методом с точностью 0,01)

 

Метод прогонки

Исходные данные:

a b c d x r
        1,344086 -8,9E-16
    -1   0,967742 -4,4E-16
-1       2,215054 1,78E-15
        1,892473  

 

Программа:

Public Sub Progonka()

Const n = 4

Dim a(n), b(n), c(n), d(n), u(n), v(n), x(n + 1), r(n)

For i = 1 To n

a(i) = Cells(i + 1, 1)

b(i) = Cells(i + 1, 2)

c(i) = Cells(i + 1, 3)

d(i) = Cells(i + 1, 4)

u(i) = -c(i) / (a(i) * u(i - 1) + b(i))

v(i) = (d(i) - a(i) * v(i - 1)) / (a(i) * u(i - 1) + b(i))

Next i

For i = n To 1 Step -1

x(i) = u(i) * x(i + 1) + v(i)

Next i

For i = 1 To n

r(i) = d(i) - a(i) * x(i - 1) - b(i) * x(i) - c(i) * x(i + 1)

Cells(i + 1, 5) = x(i)

Cells(i + 1, 6) = r(i)

Next i

EndSub

 

Решить систему уравнений итерационным методом с точностью 0,01

 

Метод Якоби

x1 x2 x3 x4
       
1,666667 0,75 2,4  
1,416667 0,933333 1,95 1,8
1,355556 0,883333 2,226667 2,025
1,372222 0,967778 2,171667 1,886667
1,344074 0,949861 2,216222 1,914167
1,350046 0,968037 2,207139 1,891889
1,343988 0,964273 2,21523 1,896431
1,345242 0,96781 2,213569 1,892385
1,344063 0,967082 2,215085 1,893216

 

Программа

Public Sub Prog2()

Dim X1(10), X2(10), X3(10), X4(10)

X1(1) = Cells(2, 1)

X2(1) = Cells(2, 2)

X3(1) = Cells(2, 3)

X4(1) = Cells(2, 4)

For i = 2 To 10

X1(i) = (5 - X2(i - 1)) / 3: Cells(i + 1, 1) = X1(i)

X2(i) = (3 - X1(i - 1) + X3(i - 1)) / 4: Cells(i + 1, 2) = X2(i)

X3(i) = (12 + X2(i - 1) - X4(i - 1)) / 5: Cells(i + 1, 3) = X3(i)

X4(i) = (6 - X3(i - 1)) / 2: Cells(i + 1, 4) = X4(i)

Next i

End Sub

МетодЗейделя

x1 x2 x3 x4
       
1,666667 0,333333 2,466667 1,766667
1,555556 0,977778 2,242222 1,878889
1,340741 0,97537 2,219296 1,890352
1,341543 0,969438 2,215817 1,892091
1,343521 0,968074 2,215197 1,892402
1,343975 0,967805 2,215081 1,89246
1,344065 0,967754 2,215059 1,892471
1,344082 0,967744 2,215055 1,892473
1,344085 0,967742 2,215054 1,892473

 

Программа

Public Sub Prog3()

Dim X1(10), X2(10), X3(10), X4(10)

X1(1) = Cells(2, 1)

X2(1) = Cells(2, 2)

X3(1) = Cells(2, 3)

X4(1) = Cells(2, 4)

For i = 2 To 10

X1(i) = (5 - X2(i - 1)) / 3: Cells(i + 1, 1) = X1(i)

X2(i) = (3 - X1(i - 1) + X3(i - 1)) / 4: Cells(i + 1, 2) = X2(i)

X3(i) = (12 + X2(i - 1) - X4(i - 1)) / 5: Cells(i + 1, 3) = X3(i)

X4(i) = (6 - X3(i - 1)) / 2: Cells(i + 1, 4) = X4(i)

Next i

EndSub

 

Численное интегрирование

Вычислить интеграл по квадратурным формулам прямоугольников, трапеций, парабол. n=6.

 

Вычисляем интеграл по формулам средних прямоугольников, трапеций, парабол.

a  
b  
n  
   
h 0,5
Ср. прям 39,23419
Трапеций 53,68516
Симпсона 52,63814

 

Программа

Public Function F(x)

F = 7 * x ^ 2 - 3 * Sqr(x)

End Function

Public Sub Integr()

a = Cells(1, 2)

b = Cells(2, 2)

n = Cells(4, 2)

s1 = 0: s2 = 0: s3 = 0

h = (b - a) / n

Cells(5, 2) = h

x = a

Do While x < b

s1 = s1 + F(x) * h

x = x + h

Loop

Cells(6, 2) = s1

s2 = (F(a) + F(b)) / 2

x = a + h

Do While x < b

s2 = s2 + F(x)

x = x + h

Loop

s2 = s2 * h

Cells(7, 2) = s2

h = (b - a) / 2 / n

s3 = 0

x = a

Do While x < b

s3 = s3 + h * (F(x) + 4 * F(x + h) + F(x + 2 * h)) / 3

x = x + 2 * h

Loop

Cells(8, 2) = s3

End Sub

 

Решение Задачи Коши для дифференциального уравнения первого порядка.

 

Решить задачу Коши методами Эйлера, модифицированным методом и методом Рунге-Кутты на заданном отрезке:

.

 

Программы

Public Function f(x, y)

f = y - 2 * x * x + 3

End Function

 

Public Sub Prog1() // МетодЭйлера

k = 0

x = 0

h = 0.2

y = 4

Do While x <= 1

y = y + h * f(x, y)

Cells(2 + k, 1) = k

Cells(2 + k, 2) = x

Cells(2 + k, 3) = y

k = k + 1

x = x + h

Loop

End Sub

 

 

PublicSubprog2() // Модифицированный метод Эйлера

k = 0

x = 0

h = 0.2

y = 4

Do While x <= 1

y1 = y + h * f(x, y)

y = y + h * (f(x, y) + f(x + h, y1)) / 2

Cells(2 + k, 5) = x

Cells(2 + k, 6) = y

k = k + 1

x = x + h

Loop

End Sub

 

Public Sub prog3() //МетодРунге-Кутта

k = 0

x = 0

h = 0.2

y = 4

Do While x <= 1

k0 = h * f(x, y)

k1 = h * f(x + h / 2, y + k0 / 2)

k2 = h * f(x + h / 2, y + k1 / 2)

k3 = h * f(x + h, y + k2)

y = y + (k0 + 2 * k1 + 2 * k2 + k3) / 6

Cells(2 + k, 8) = x

Cells(2 + k, 9) = y

k = k + 1

x = x + h

Loop

EndSub

 

Результат работы программы:

k x y   x y   x y
    5,4     5,532     5,544187
  0,2 7,064   0,2 7,36744   0,2 7,395424
  0,4 9,0128   0,4 9,537877   0,4 9,58627
  0,6 11,27136   0,6 12,08181   0,6 12,15649
  0,8 13,86963   0,8 15,04621   0,8 15,15465
    16,84356     18,48837     18,64008

 

Приближение функции по методу наименьших квадратов (МНК)



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: