0 / 0 / 0
Регистрация: 04.02.2022
Сообщений: 6

Аппроксимация. Метод наименьших квадратов

24.02.2022, 17:23. Показов 863. Ответов 9

Студворк — интернет-сервис помощи студентам
Добрый вечер! НЕобходимо выполнить аппроксимацию точек, методом наименьших квадратов. Не хочет запускать команду, помогите найти ошибку
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub lb3()
Dim mx(5) As Variant
Dim my(5) As Variant
Mas2 = Array(14, 6, 2, 20, 3, 27, 15, 8, 10, 99)
For i = LBound(Mas2) To UBound(Mas2)
If i Mod 2 = 0 Then
mx(j) = Mas2(i)
j = j + 1
Else
my(jj) = Mas2(i)
jj = jj + 1
End If
Next i
'Debug.Print "x: " & Join(mx, vbTab)
'Debug.Print "y: " & Join(my, vbTab)
Call lab4(mx, my, a, b)
MsgBox "y=" & Round(a, 3) & "*x+" & Round(b, 3)
End Sub
 
Sub lab4(x As Variant, y As Variant, a As Double, b As Double)
n% = UBound(x, 1)
Sx# = 0
Sy# = 0
Sxy# = 0
Sx2# = 0
SY2# = 0
For i% = 1 To n%
    Sx# = Sx# + x(i%)
    Sy# = Sy# + x(i%)
    Sxy# = Sxy# + x(i%) * y(i%)
    Sx2# = Sx2# + x(i%) ^ 2
    SY2# = SY2# + y(i%) ^ 2
Next i%
    D# = CDb1(n%) * Sx2# - Sx# ^ 2
    Da# = CDb1(n%) * Sxy# - Sx# * Sy#
    Db# = Sy# * Sx2# - Sx# * Sxy#
    a = Da# / D#
    b = Db# / D#
End Sub
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.02.2022, 17:23
Ответы с готовыми решениями:

массивы и аппроксимация методом наименьших квадратов в VB
Координаты N точек записаны в текстовом файле в виде двумерного массива чисел Xi,Yi (i=1,2,....). На экранной форме разметить поле для...

Метод наименьших квадратов
Приветствую! Помогите написать в вижуал бэйсике метод найменших квадратов 8-ми пар данных точек, (которые вводяться с формы или массива)...

Метод Наименьших Квадратов - формула
День добрый! Делаю курсовик и остановился на небольшой проблеме: Есть формула: \sum_{i=1}^{n}(Y-Yi)^{2} =>min Все значения для...

9
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
24.02.2022, 17:59
Цитата Сообщение от Klau Посмотреть сообщение
помогите найти ошибку
Где код взял? Копипастил или переписывал?

Добавлено через 3 минуты
1. Переменные a и b надо объявить.
2. Исправить функцию CDb1 на CDbl
0
0 / 0 / 0
Регистрация: 04.02.2022
Сообщений: 6
24.02.2022, 18:04  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
Где код взял? Копипастил или переписывал?
переписывал
0
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
24.02.2022, 18:06
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub lb3()
Dim mx(5) As Variant, a As Double, b As Double
Dim my(5) As Variant
Mas2 = Array(14, 6, 2, 20, 3, 27, 15, 8, 10, 99)
For i = LBound(Mas2) To UBound(Mas2)
If i Mod 2 = 0 Then
mx(j) = Mas2(i)
j = j + 1
Else
my(jj) = Mas2(i)
jj = jj + 1
End If
Next i
'Debug.Print "x: " & Join(mx, vbTab)
'Debug.Print "y: " & Join(my, vbTab)
Call lab4(mx, my, a, b)
MsgBox "y=" & Round(a, 3) & "*x+" & Round(b, 3)
End Sub
 
Sub lab4(x As Variant, y As Variant, a As Double, b As Double)
n% = UBound(x, 1)
Sx# = 0
Sy# = 0
Sxy# = 0
Sx2# = 0
SY2# = 0
For i% = 1 To n%
    Sx# = Sx# + x(i%)
    Sy# = Sy# + x(i%)
    Sxy# = Sxy# + x(i%) * y(i%)
    Sx2# = Sx2# + x(i%) ^ 2
    SY2# = SY2# + y(i%) ^ 2
Next i%
    D# = CDbl(n%) * Sx2# - Sx# ^ 2
    Da# = CDbl(n%) * Sxy# - Sx# * Sy#
    Db# = Sy# * Sx2# - Sx# * Sxy#
    a = Da# / D#
    b = Db# / D#
End Sub
1
0 / 0 / 0
Регистрация: 04.02.2022
Сообщений: 6
24.02.2022, 18:10  [ТС]
Спасибо! помогло)
0
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
26.02.2022, 04:34
Цитата Сообщение от Klau Посмотреть сообщение
НЕобходимо выполнить аппроксимацию точек, методом наименьших квадратов.
Что именно получается в результате работы программы?
0
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
26.02.2022, 05:39
Цитата Сообщение от Argus19 Посмотреть сообщение
Что именно получается в результате работы программы?
Код посмотри, и поймёшь
0
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
26.02.2022, 06:14
Цитата Сообщение от I can Посмотреть сообщение
Код посмотри, и поймёшь
Мне нужен метод МНК и способ решения, полученных в результате его работы, системы уравнений, для получения, в свою очередь, коэффициентов полинома нужной степени. Для чего я и задал вопрос.
Уважаемый Catstail пытался помочь, но пока не получилось.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
26.02.2022, 07:52
Argus19, да, тема забылась... Но она подвешена.
1
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
26.02.2022, 10:05
Цитата Сообщение от Catstail Посмотреть сообщение
Но она подвешена.
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2022, 10:05
Помогаю со студенческими работами здесь

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

Найти сумму квадратов трех наименьших членов строки матрицы
применяя процедуру к каждой строке матрицы А поочередно найти сумму квадратов трех наименьших членов строки матрицы .см.Фото .Заранее...

Аппроксимация полиномом по методу наименьших квадратов
аппроксимация полиномом по методу наименьших квадратов CLS INPUT “ВВЕДИТЕ СТЕПЕНЬ ПОЛИНОМА»; n n=n+1 DIM...

Объясните, что такое аппроксимация функции методом наименьших квадратов
и если не трудно, нарисуйте как это будет выглядеть в VB. А то надо задачку решить, а что это такое совсем не могу понять - в математике я...

Метод интерполяции и Метод наименьших квадратов
Пишу курсовую. Помогите пожалуйста . Нужен программный код на языке VBA для метода интерполяции с помощью метода наименьших квадратов.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru