Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/89: Рейтинг темы: голосов - 89, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35

Нахождение обратной матрицы

11.06.2014, 07:20. Показов 18563. Ответов 63
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане и программисты
у кого то имеется код для нахождения обратной матрицы в Visual Basic Applecetion, при помощь которого можно будет считать матрицы в Excel?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.06.2014, 07:20
Ответы с готовыми решениями:

Нахождение обратной матрицы.
Ребят, нет ни у кого программы для нахождения обратной матрицы? Заранее благодарен!

Вычисление определителя и нахождение обратной матрицы методом исключения
Нужна только блок-схема, а то в схемах я пень пнем. Вот код. Function input_error() As Integer ' err – идентификатор...

Умножение матрицы на матрицу, и нахождение обратной матрицы
Здравствуйте! нужно написать программу, которая могла бы производить всякие операции над матрицами (двухмерными массивами) меня...

63
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35
12.06.2014, 12:07  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Catstail Посмотреть сообщение
- крут был тот, кто это писал 50 лет назад на Алголе
ну да )
слушай это сама функция же
а где саб?

Добавлено через 5 минут
Function Inv_Matr(matr() As Double) As Double()

это означает что когда вызывается данная функция ей присваиваются начальные аргументы matr()?

эта matr() должен функции передавать саб?
0
12.06.2014, 12:11

Не по теме:

Цитата Сообщение от Artem Ivanov Посмотреть сообщение
а где саб?
Один в один
Цитата Сообщение от SoftIce Посмотреть сообщение
- А шапочка, пгостите, где?

0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35
12.06.2014, 12:13  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
Один в один
Сообщение от SoftIce
- А шапочка, пгостите, где?
ага)
но ведь правда где саб
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38226 / 21158 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
12.06.2014, 12:14
Цитата Сообщение от Artem Ivanov Посмотреть сообщение
это означает что когда
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
Sub Test_invmatr()
Dim X(1 To 3, 1 To 3) As Double
Dim R() As Double
 
    X(1, 1) = 1
    X(1, 2) = 2
    X(2, 1) = -2
    X(2, 2) = 1
    X(3, 3) = 1
 
    R = Inv_Matr(X)
 
    If Ubound(R,1)=1 then
       MsgBox "Обратная матрица не существует. Опр=0"
    else
       For i% = 1 To 3
            For j% = 1 To 3
                 Debug.Print R(i%, j%); " ";
            Next j%
            Debug.Print
       Next i%
    End if
End Sub
0
es geht mir gut
 Аватар для SoftIce
11275 / 4761 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
12.06.2014, 12:15
В сабе нужно заполнить матрицу. Потом передать ее в функцию. Функция вернет обратную матрицу.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38226 / 21158 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
12.06.2014, 12:16
Цитата Сообщение от Artem Ivanov Посмотреть сообщение
саб
- это что?

SoftIce, у этого анекдота есть классический русский аналог... Даже не анекдот, а поговорка:

"Бабушка, дай напиться, а то так есть хочется, аж переночевать негде"
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35
12.06.2014, 12:17  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
1



Sub Test_invmatr()
Dim X(1 To 3, 1 To 3) As Double
Dim R() As Double
X(1, 1) = 1
* * X(1, 2) = 2
* * X(2, 1) = -2
* * X(2, 2) = 1
* * X(3, 3) = 1
R = Inv_Matr(X)
If Ubound(R,1)=1 then
* * * *MsgBox "Обратная матрица не существует. Опр=0"
* * else
* * * *For i% = 1 To 3
* * * * * * For j% = 1 To 3
* * * * * * * * *Debug.Print R(i%, j%); " ";
* * * * * * Next j%
* * * * * * Debug.Print
* * * *Next i%
* * End if
End Sub
она считает только 3 на 3 так?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38226 / 21158 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
12.06.2014, 12:24
Цитата Сообщение от Artem Ivanov Посмотреть сообщение
она считает только 3 на 3 так?
- ты не сдашь зачет (или что там у тебя...)
Она вычислит обратную матрицу для любой разумной размерности. Входная матрица должна быть соотв. образом описана.
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35
12.06.2014, 12:26  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
ты не сдашь зачет (или что там у тебя...)
Она вычислит обратную матрицу для любой разумной размерности. Входная матрица должна быть соотв. образом описана.
я знаю что обратная матрица! ошибку выдает!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38226 / 21158 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
12.06.2014, 12:40
На каких данных?
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35
12.06.2014, 12:44  [ТС]
ошибка в Private Sub cmbCalc_Click()
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38226 / 21158 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
12.06.2014, 12:59
И что? Код твой я не вижу. Причин для ошибки в этой строке может быть десяток.
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35
12.06.2014, 13:05  [ТС]
сейчас скину все!
Вложения
Тип файла: rar СЛАУ.rar (42.5 Кб, 10 просмотров)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38226 / 21158 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
12.06.2014, 13:19
Код - помойка. Вычисление обратной матрицы ты даже отформатировать поленился. Все свалил бездумно. Так программы не пишутся.
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35
12.06.2014, 15:19  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Код - помойка. Вычисление обратной матрицы ты даже отформатировать поленился. Все свалил бездумно. Так программы не пишутся.
сможешь помочь чтобы обратная работала?

Добавлено через 49 минут
с остальным сам разберусь!
0
12.06.2014, 17:45

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
ты не сдашь зачет
как-то возникают сомнения - а нужно ли, чтобы он таки сдал?

0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35
12.06.2014, 17:53  [ТС]
Цитата Сообщение от ikki Посмотреть сообщение
как-то возникают сомнения - а нужно ли, чтобы он таки сдал?
почему люди влезают не в свои дела
0
12.06.2014, 18:03

Не по теме:

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

впрочем, позицию Catstail'а я ни в коем случае не осуждаю и не обсуждаю.
это его выбор.

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38226 / 21158 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
12.06.2014, 20:24
Выкладываю код не для Artem Ivanov, а для тех, кто в состоянии им воспользоваться. Код рабочий. Источник указан. Перевод мой. Протестирован на матрице Гильберта.

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
Function Inv_Matr(matr() As Double) As Double()
Dim A() As Double
Dim R() As Double
 
    n% = UBound(matr, 1)
    
    ReDim A(1 To n%, 1 To 2 * n%) As Double
 
    M% = 2 * n%
    s% = 0
    
    For i% = 1 To n%
        For j% = 1 To M%
            If j% <= n% Then
               A(i%, j%) = matr(i%, j%)
            Else
               If j% = n% + i% Then
                  A(i%, j%) = 1
               Else
                  A(i%, j%) = 0
               End If
            End If
        Next j%
    Next i%
 
    For i% = 1 To n%
    
        k% = i%
        
        s% = 0
        
        Do
        
           If Abs(A(k%, i%)) <= 0.00000000000001 Then
              s% = 1
              If k% < n% Then
                 k% = k% + 1
              Else
                 ReDim R(1 To 1) As Double
                 Inv_Matr = R
                 Exit Function
              End If
           Else
              Exit Do
           End If
                
        Loop
    
        If s% = 1 Then
        
           For j% = 1 To M%
               T# = A(k%, j%)
               A(k%, j%) = A(i%, j%)
               A(i%, j%) = T#
           Next j%
        
        End If
        
        For j% = M% To i% Step -1
            A(i%, j%) = A(i%, j%) / A(i%, i%)
        Next j%
        
        For k% = 1 To n%
            If k% <> i% Then
               For j% = M% To i% Step -1
                   A(k%, j%) = A(k%, j%) - A(i%, j%) * A(k%, i%)
               Next j%
            End If
        Next k%
    
    Next i%
    
    ReDim R(1 To n%, 1 To n%) As Double
    
    For i% = 1 To n%
        For j% = 1 To n%
            R(i%, j%) = A(i%, j% + n%)
        Next j%
    Next i%
    
    Inv_Matr = R
 
End Function
 
'##### Тест - матрица Гильберта ######
 
Function Hilbert(n As Integer) As Double()
Dim X() As Double
 
    ReDim X(1 To n, 1 To n) As Double
    
    p% = 0
    For i% = 1 To n
        p% = p% + 1
        q% = p%
        For j% = 1 To n
            X(i%, j%) = 1 / q%
            q% = q% + 1
        Next j%
    Next i%
 
    Hilbert = X
 
End Function
 
 
Sub Test_invmatr()
Dim R() As Double
Dim X() As Double
 
    n% = 10
 
    X = Hilbert(n%)
 
    R = Inv_Matr(X)
    
    For i% = 1 To n%
        For j% = 1 To n%
            Debug.Print R(i%, j%); " ";
        Next j%
        Debug.Print
    Next i%
 
End Sub
Результат:

Code
1
2
3
4
5
6
7
8
9
10
 99.9966050009475  -4949.70689167208   79193.7607989712  -600543.308707188   2522249.71445721  -6305557.28232689   9608381.8656023  -8750423.20062815   4375182.37634022  -923644.212897149  
-4949.70677171804   326674.691288787  -5880061.38771019   47562626.8435956  -208084574.271628   535070510.590672  -832326496.843559   770039271.683986  -389830498.337093   83128486.5344565  
 79193.7565901612  -5880061.24423096   112896056.250559  -951246268.226849   4280580454.73545  -11236462967.4721   17756304679.2532  -16632881349.6894   8505421737.69739  -1828835230.75038  
-600543.260380996   47562624.6624352  -951246249.50188   8244090837.63841  -37871129229.5326   100989315032.345  -161582411925.166   152888338788.438  -78832870765.4285   17069191630.6846  
 2522249.45099904  -208084560.983641   4280580303.64622  -37871128666.8711   176731486747.884  -477174003968.651   771188922386.036  -735776047744.169   382037049295.216  -83212557115.2095  
-6305556.4947528   535070468.488954  -11236462432.3761   100989312392.545  -477173998747.507   1301382474919.18  -2120769824287.53   2037535754626.72  -1064247971726.6   232995733611.894  
 9608380.49989111  -832326421.254223   17756303660.8385  -161582406308.65   771188907669.631  -2120769807361.49   3480238026361.5  -3363553960231.28   1765865954691.03  -388327026322.139  
-8750421.83017916   770039194.11521  -16632880267.5638   152888332461.958  -735776029213.981   2037535726396.18  -3363553940731.96   3267454784762.86  -1723072937728.11   380402656018.566  
 4375181.6378954  -389830455.904437   8505421132.33798  -78832867101.0412   382037037918.744  -1064247952356.14   1765865936973.84  -1723072930493.45   912216089949.52  -202089218544.761  
-923644.047541133   83128476.9326566  -1828835091.69291   17069190769.9851  -83212554349.0587   232995728621.076  -388327021222.404   380402653262.438  -202089217932.641   44908774796.0608
2
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 35
12.06.2014, 22:04  [ТС]
Спасибо!разобрался!

Добавлено через 8 минут
она будет считать 10 на 10?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2014, 22:04

Нахождение обратной матрицы
Найти A^-1 и сделать проверку

Нахождение обратной матрицы
Через определитель и матрицу алгебраических дополнений unit Unit1; interface uses Windows, Messages, SysUtils, Variants,...

Нахождение обратной матрицы
Мне очень нужен код программы обратной матрицы.

Нахождение обратной матрицы
Здравствуйте, уважаемые программисты! Прощу помощи. Для заданной матрицы A(3,3), найти обратную А в -1 степени. Буду очень...

Нахождение обратной матрицы
Здравствуйте!помогите с программой на языке си-она демонстрирует нахождение обратной матрицы.я написал 3 на 3 юно мне надо в начале проги...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru