Поиск:

Ответ в темуСоздание новой темы Создание опроса
> восстановление значений умноженых на матрицу, определение значений умн. на матрицу 
:(
    Опции темы
Андрей А
Дата 24.9.2004, 22:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Народ помогите расколоть задачу.
Есть матрица 4x4:
1.1000000000000000 1.0901226582931150 1.0586606002640680 1.0080886692402250

1.0865561322623290 1.1000000000000000 1.0917324174590570 1.0624243262013280

1.0453597772655500 1.0833275531627040 1.1000000000000010 1.0941123323336140

0.9783399882464660 1.0403029693517960 1.0819218565679880 1.1000000000000000

Есть четыре произвольных значения(в диапазоне
от 0 до 100000), допустим 5, 2, 14, 7.
Умножаем их на матрицу. Надо по результату этого
умножения узнать что за значения были умножены на матрицу.
Но есть одна фишка. Вся эта задача реализована на C++ и
все значения только в типе double.
И это значит что после умножения мы получим эти значения:
29.15652906396762
30.099319821206
30.45022083221438
30.18286465127438

Вот зная их и зная матрицу надо узнать 5,2,14,7.

Помощь оплачу!
Пишите на [email protected]

  Вверх
LuckLess
Дата 24.9.2004, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 15.9.2004

Репутация: нет
Всего: 1



А как получается число , при умножении числа на матрицу ??При данной операции обычно получается опять матрица...
PM MAIL   Вверх
podval
Дата 25.9.2004, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Что имеем: пусть A - вон та матрица, записанная выше, а x = [5,2,14,7]' - тот самый вектор (штрих означает транспонирование, т.е. вектор-столбец).
После умножения матрицы на вектор получаем вектор:

y = A*x

Чтобы получить из y снова x, надо сделать следующее:

х = inv(A)*y, где inv(.) - продедура обращения матрицы.

Однако, если матрица A именно такая, как указано, то значения исходного и рассчитанного x не совпадут, т.к. матрица A плохо обусловлена (посчитайте определитель).
Поэтому результат будет сильно зависеть от того, насколько скрупулезно составлена процедура обращения матрицы А. Да и это вряд ли поможет.

Вот прогнал в Матлабе.
Результат произведения матрицы на вектор:

29.558
30.354
30.452
29.819

И назад получаем вот что:

Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 4.380076e-017.

х =

4
8
20
11


И другим способом обращения матрицы:

Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 4.380076e-017.
(Type "warning off MATLAB:nearlySingularMatrix" to suppress this warning.)

x =

1.8071
10.5929
6.1721
9.4125
PM WWW ICQ   Вверх
Akina
Дата 27.9.2004, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Если известны начальная матрица и конечный вектор - запросто.

A * B = C

B = С * (1 / A)


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Peter
Дата 27.9.2004, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 28.7.2003
Где: Ставрополь

Репутация: нет
Всего: 1



Цитата(Akina @ 27.9.2004, 09:25)
Если известны начальная матрица и конечный вектор - запросто.

A * B = C

B = С * (1 / A)

Ох, кто бы еще математику учил... Я за такие ответы студентам сразу нехорошие отметки ставлю. НА МАТРИЦУ ДЕЛИТЬ НЕЛЬЗЯ!!!
A*B=C -> B=[A^(-1)]*C
Обратную матрицу искать надо.


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
maxim1000
Дата 27.9.2004, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата
Ох, кто бы еще математику учил... Я за такие ответы студентам сразу нехорошие отметки ставлю. НА МАТРИЦУ ДЕЛИТЬ НЕЛЬЗЯ!!!

ну, это - вопрос терминологии, не надо из-за нее ставить нехорошие отметки smile.gif
деление - операция, обратная умножению
а запись 1/A (ведь не было же написано B/A) вполне подходит на обозначение обратной матрицы
только не стоит забывать о том, что умножение матриц некоммутативно



--------------------
qqq
PM WWW   Вверх
podval
Дата 27.9.2004, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Модератор: Давайте вернёмся к теме обсуждения.
PM WWW ICQ   Вверх
dm9
Дата 27.9.2004, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Если придираться, возникнут проблемы, связанные с конечностью дробной части double.
Добавлено @ 20:23
То есть восстановление чисел возможно лишь с какой-то точностью...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0643 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.