ReDim Preserve xe(1 To n) As Double — КиберПедия 

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

ReDim Preserve xe(1 To n) As Double

2021-04-18 82
ReDim Preserve xe(1 To n) As Double 0.00 из 5.00 0 оценок
Заказать работу

ReDim Preserve ye(1 To n) As Double

x = CDbl(TextBox3)

'If CheckBox1 Then

'TextBox4 = Format(Kanon(x, xe, ye), "0.000")

'Else

'extBox4 = ""

'End If

If CheckBox1 Then

Call Kanon3(x, xe, ye, nad, ziclo)

TextBox4 = Format(ziclo, "0.000")

Label6 = nad

Else

TextBox4 = ""

End If

If CheckBox2 Then TextBox5 = Format(lagr(x, xe, ye), "0.000") Else TextBox5 = ""

If CheckBox3 Then TextBox6 = Format(Newtonn(x, xe, ye), "0.000") Else TextBox6 = ""

End Sub

Sub Kanon3(x As Double, xe As Variant, ye As Variant, Polinom As String, Kanon_znac As Double)

Dim xx() As Double

Dim yye() As Double

n = Application.Count(xe)

ReDim xx(1 To n, 1 To n) As Double

ReDim yye(1 To n, 1 To 1) As Double

For i = 1 To n

For j = 1 To 1

yye(i, j) = ye(i)

Next j

Next i

For i = 1 To n

For j = 1 To n

If j = 1 Then xx(i, j) = xe(i) ^ 0

If j = 2 Then xx(i, j) = xe(i) ^ 1

If j = 3 Then xx(i, j) = xe(i) ^ 2

If j = 4 Then xx(i, j) = xe(i) ^ 3

If j = 5 Then xx(i, j) = xe(i) ^ 4

If j = 6 Then xx(i, j) = xe(i) ^ 5

Next j

Next i

Kanon_znac = 0

For i = 1 To n

Kanon_znac = Kanon_znac + Application.Product(Application.Index(Application.MMult(Application.MInverse(xx), yye), i), x ^ (i - 1))

Next i

Polinom = "P3(x)="

For i = 1 To n

If Application.Product(Application.Index(Application.MMult(Application.MInverse(xx), yye), i), 1) < 0 Then

Polinom = Polinom & Format(Application.Product(Application.Index(Application.MMult(Application.MInverse(xx), yye), i), 1), "0.00")

If i = 1 Then Polinom = Polinom & ""

If i = 2 Then Polinom = Polinom & "x^1"

If i = 3 Then Polinom = Polinom & "x^2"

If i = 4 Then Polinom = Polinom & "x^3"

If i = 5 Then Polinom = Polinom & "x^4"

If i = 6 Then Polinom = Polinom & "x^5"

Else

Polinom = Polinom & "+"

Polinom = Polinom & Format(Application.Product(Application.Index(Application.MMult(Application.MInverse(xx), yye), i), 1), "0.00")

If i = 1 Then Polinom = Polinom & ""

If i = 2 Then Polinom = Polinom & "x^1"

If i = 3 Then Polinom = Polinom & "x^2"

If i = 4 Then Polinom = Polinom & "x^3"

If i = 5 Then Polinom = Polinom & "x^4"

If i = 6 Then Polinom = Polinom & "x^5"

End If

Next i

End Sub

Function lagr(x As Double, xe As Variant, ye As Variant)

n = Application.Count(xe)

lagr = 0

For i = 1 To n

p = 1

For j = 1 To n

If j <> i Then p = p * (x - xe(j)) / (xe(i) - xe(j))

Next j

lagr = lagr + ye(i) * p

Next i

End Function

Function Newtonn(x As Double, xe As Variant, ye As Variant)

n = Application.Count(xe)

Dim D() As Variant

ReDim D(n, n) As Variant

‘конечные разности 1-ого порядка в 1-0м столбце массива d

For i = 1 To n - 1

D(i, 1) = ye(i + 1) - ye(i)

Next i

For j = 2 To n - 1

For i = 1 To j

D(i, j) = D(i + 1, j - 1) - D(i, j - 1)

Next i

h = xe(2) - xe(1)

Next j

ne = ye(1)

For i = 1 To n - 1

p = 1

For j = 1 To i

p = p * (x - xe(j)) / (j * h)

Next j

ne = ne + p * D(1, i)

Next i

Newtonn = ne

End Function

 

Некоторые комментарии к программам:

модули

Function lagr(x As Double, xe As Variant, ye As Variant)

Function Newtonn(x As Double, xe As Variant, ye As Variant)

Sub Kanon3(x As Double, xe As Variant, ye As Variant, Polinom As String, Kanon_znac As Double)

обеспечивают вычисления значений интерполяционных полиномов Лагранжа, Ньютона и канонического интерполяционного полинома.

Подпрограмма Private Sub CommandButton 3_ Click () обеспечивает ввод исходных данных и отображение их в объекте Label 5.

Подпрограмма Private Sub CommandButton 4_ Click () обеспечивает вызов модулей lagr, Newtonn и Kanon 3.

    При этом модуль Kanon 3 выполнен не в виде функции Function, а в виде подпрограммы Sub. Такая организация позволяет получать из подпрограммы Kanon 3 несколько выходных параметров, в частности параметр Polinom As String и параметр Kanon _ znac As Double.

Калькулятор поддерживает вычисление значений интерполяционных полиномов степенью не выше пятой, хотя изменения программы для увеличения степени вычисляемых интерполяционных полиномов достаточно просты.

Если в качестве исходной интерполяционной таблицы ввести значения X = 1,4, 5, 7 и Y = 3, 10, 2, 5 и вычислить значение интерполяционного полинома для X = 2.372, то получим результаты, показанные на рис. 3.4.10.

Значения канонического интерполяционного полинома и полинома Лагранжа для X = 2.372 совпадают и равны величине 17.597. В то время как значение интерполяционного полинома Ньютона для X = 2.372 равно величине 9.005. Дело в том, в калькуляторе для вычисления значений интерполяционного полинома Ньютона используется формула для равноотстоящих узлов интерполяционной таблицы, а это условие в рассматриваемом примере не соблюдается.

Так что для введённой интерполяционной таблицы аналитическое выражение интерполяционного полинома имеет вид P 3 (x) = -28.83 + 43.04 x – 12.17 x 2 + 0.96 x 3, а его значение при X = 2.372 равно величине 17.597

Рис. 3.4.10

 

 

Метод наименьших квадратов

 

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

Процесс состоит из двух этапов: выбор вида уравнения регрессии и определение коэффициентов уравнения регрессии.

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

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

 


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.