Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Дисциплины:
2021-04-18 | 79 |
5.00
из
|
Заказать работу |
|
|
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!