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

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

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

ReDim Preserve xe(1 To n) As Double

2021-04-18 79
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.017 с.