Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Решение системы из N уравнений с N неизвестными - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Решение системы из N уравнений с N неизвестными
Решение системы из N уравнений с N неизвестными
ronik710 Дата: Воскресенье, 04.12.2011, 12:31 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте.
Не встречал ли кто нибудь макрос, который решал бы систему из "N" уравнений с "N" неизвестными.
Например:
0,5*а+3*b-5*c=0
1*a-1.75*b-3*c=1
0*a+7*b+0*c=7

Количество уравнений может быть любой.
 
Ответить
СообщениеЗдравствуйте.
Не встречал ли кто нибудь макрос, который решал бы систему из "N" уравнений с "N" неизвестными.
Например:
0,5*а+3*b-5*c=0
1*a-1.75*b-3*c=1
0*a+7*b+0*c=7

Количество уравнений может быть любой.

Автор - ronik710
Дата добавления - 04.12.2011 в 12:31
MCH Дата: Воскресенье, 04.12.2011, 19:25 | Сообщение № 2
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Обязательно макрос нужен, решение формулами не подойдет?
К сообщению приложен файл: 6391867.xls (16.5 Kb)
 
Ответить
СообщениеОбязательно макрос нужен, решение формулами не подойдет?

Автор - MCH
Дата добавления - 04.12.2011 в 19:25
ronik710 Дата: Воскресенье, 04.12.2011, 22:19 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Я так и думал. И думал что может у кого то есть готовый код. Вот жду.
 
Ответить
СообщениеЯ так и думал. И думал что может у кого то есть готовый код. Вот жду.

Автор - ronik710
Дата добавления - 04.12.2011 в 22:19
SM Дата: Понедельник, 05.12.2011, 02:55 | Сообщение № 4
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
В матричной форме система линейных уравнений записывается так: A*X = B.
Вызываем форму.
В RefEdit'ах формы указываем диапазоны:
коэффициентов системы - Матрица A;
вектора свободных членов - Матрица B;
вектора неизвестных - Матрица X (достаточно указать первую ячейку диапазона).
Жмём кнопку OK, получаем значения X.
К сообщению приложен файл: Reshenie_SLU.xls (61.0 Kb)


Excel изощрён, но не злонамерен
 
Ответить
СообщениеВ матричной форме система линейных уравнений записывается так: A*X = B.
Вызываем форму.
В RefEdit'ах формы указываем диапазоны:
коэффициентов системы - Матрица A;
вектора свободных членов - Матрица B;
вектора неизвестных - Матрица X (достаточно указать первую ячейку диапазона).
Жмём кнопку OK, получаем значения X.

Автор - SM
Дата добавления - 05.12.2011 в 02:55
ronik710 Дата: Понедельник, 05.12.2011, 16:36 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Спасибо большое SM, .
А задача решается по тому же принципу как и в первом ответе?
Сам к сожалению код легко читать не умею.
 
Ответить
СообщениеСпасибо большое SM, .
А задача решается по тому же принципу как и в первом ответе?
Сам к сожалению код легко читать не умею.

Автор - ronik710
Дата добавления - 05.12.2011 в 16:36
SM Дата: Понедельник, 05.12.2011, 18:49 | Сообщение № 6
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
Quote (ronik710)
А задача решается по тому же принципу как и в первом ответе?

Да, строка кода
X = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), В)
это тоже, что и формула на листе файла MCH
=МУМНОЖ(МОБР(A7:C9);D7:D9)
:
матрично умножаем матрицу, обратную A, на вектор B


Excel изощрён, но не злонамерен
 
Ответить
Сообщение
Quote (ronik710)
А задача решается по тому же принципу как и в первом ответе?

Да, строка кода
X = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), В)
это тоже, что и формула на листе файла MCH
=МУМНОЖ(МОБР(A7:C9);D7:D9)
:
матрично умножаем матрицу, обратную A, на вектор B

Автор - SM
Дата добавления - 05.12.2011 в 18:49
ronik710 Дата: Вторник, 06.12.2011, 10:17 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

А не пожкажете еще вопросик?
Вы формулу "=МУМНОЖ(МОБР(A7:C9);D7:D9)" получили кнопкой запись макроса? Потом просто вставили в свой код?
 
Ответить
СообщениеА не пожкажете еще вопросик?
Вы формулу "=МУМНОЖ(МОБР(A7:C9);D7:D9)" получили кнопкой запись макроса? Потом просто вставили в свой код?

Автор - ronik710
Дата добавления - 06.12.2011 в 10:17
SM Дата: Вторник, 06.12.2011, 13:29 | Сообщение № 8
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
Quote (ronik710)
Вы формулу "=МУМНОЖ(МОБР(A7:C9);D7:D9)" получили кнопкой запись макроса? Потом просто вставили в свой код?

Нет, строку
X = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), В)
макрорекордером получить нельзя - только самому вбить в код.
ronik710, уговорили - в файле (вместо этой одной строки) доморощенная процедура, решающая систему ЛУ:
К сообщению приложен файл: Reshenie_SLU_12.xls (39.5 Kb)


Excel изощрён, но не злонамерен
 
Ответить
Сообщение
Quote (ronik710)
Вы формулу "=МУМНОЖ(МОБР(A7:C9);D7:D9)" получили кнопкой запись макроса? Потом просто вставили в свой код?

Нет, строку
X = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), В)
макрорекордером получить нельзя - только самому вбить в код.
ronik710, уговорили - в файле (вместо этой одной строки) доморощенная процедура, решающая систему ЛУ:

Автор - SM
Дата добавления - 06.12.2011 в 13:29
ronik710 Дата: Вторник, 06.12.2011, 23:13 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Quote (SM)
Нет, строку
X = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), В)
макрорекордером получить нельзя - только самому вбить в код.

А как можно научится такие строки писать? Я пока изучаю 2 книжки
Книга: Использование макросов в Excel.
Автор: С. Роман
и
Второй там что то вроде научится VBA за выходные.

Там еще такого не встречал.
 
Ответить
Сообщение
Quote (SM)
Нет, строку
X = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), В)
макрорекордером получить нельзя - только самому вбить в код.

А как можно научится такие строки писать? Я пока изучаю 2 книжки
Книга: Использование макросов в Excel.
Автор: С. Роман
и
Второй там что то вроде научится VBA за выходные.

Там еще такого не встречал.

Автор - ronik710
Дата добавления - 06.12.2011 в 23:13
SM Дата: Среда, 07.12.2011, 01:41 | Сообщение № 10
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
Цитата SM
макрорекордером получить нельзя - только самому вбить в код.

Не, я не прав.
Вот:
Сначала придумываем формулу, параллельно читая справку об используемых в формуле функциях.
Макрорекордером записываем вставку в ячейку G2 нашей формулы: =МУМНОЖ(МОБР(A2:C4);D2:D4).
Останавливаем запись, смотрим в редакторе, что получилось:

[vba]
Код
Sub Макрос4()
' Макрос записан 07.12.2011 (Саша)
Range("G2").Select
ActiveCell.FormulaR1C1 = "=MMULT(MINVERSE(RC[-10]:R[2]C[-8]),RC[-7]:R[2]C[-7])"
End Sub
[/vba]

Значит, скорее всего, в Excel-VBA, в объекте WorksheetFunction должны быть функции MMULT и MINVERSE - аналоги функций рабочего листа.
Открываем в редакторе окно просмотра объектов (Object Browser),
в списке библиотек выбираем Excel, в левой половинке Browser'а находим WorksheetFunction, щёлкаем,
действительно: в правом списке находим и MMult и MInverse.
Всё. Конструкция готова:
X = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), В)
(только вместо адресов диапазонов аргументами функций будут или переменные-диапазоны,
или, в нашем случае, массивы (A и B)).


Excel изощрён, но не злонамерен
 
Ответить
Сообщение
Цитата SM
макрорекордером получить нельзя - только самому вбить в код.

Не, я не прав.
Вот:
Сначала придумываем формулу, параллельно читая справку об используемых в формуле функциях.
Макрорекордером записываем вставку в ячейку G2 нашей формулы: =МУМНОЖ(МОБР(A2:C4);D2:D4).
Останавливаем запись, смотрим в редакторе, что получилось:

[vba]
Код
Sub Макрос4()
' Макрос записан 07.12.2011 (Саша)
Range("G2").Select
ActiveCell.FormulaR1C1 = "=MMULT(MINVERSE(RC[-10]:R[2]C[-8]),RC[-7]:R[2]C[-7])"
End Sub
[/vba]

Значит, скорее всего, в Excel-VBA, в объекте WorksheetFunction должны быть функции MMULT и MINVERSE - аналоги функций рабочего листа.
Открываем в редакторе окно просмотра объектов (Object Browser),
в списке библиотек выбираем Excel, в левой половинке Browser'а находим WorksheetFunction, щёлкаем,
действительно: в правом списке находим и MMult и MInverse.
Всё. Конструкция готова:
X = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), В)
(только вместо адресов диапазонов аргументами функций будут или переменные-диапазоны,
или, в нашем случае, массивы (A и B)).

Автор - SM
Дата добавления - 07.12.2011 в 01:41
ronik710 Дата: Среда, 07.12.2011, 09:49 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Спасибо.
 
Ответить
СообщениеСпасибо.

Автор - ronik710
Дата добавления - 07.12.2011 в 09:49
kris Дата: Среда, 18.12.2013, 22:48 | Сообщение № 12
Группа: Гости
помогите пожалуйста решить! перепробовала все методы для этого уравнения, но корни никак найти не могу, иксель выдает ужасно огромные цифры

x+2y+3z=4
2x+y-z=3
3x+3y+2z=10[moder]Хочу Вас обрадовать. Аж дважды.
1. Ваша система уравнений (если, конечно, не углубляться в дебри высшей математики) не имеет решения. Начал решать на бумажке, получил 7х+5y=16 и 7х+5y=13
2. Эта тема закрыта. В следующий раз создавайте свою. А перед этим прочитайте Правила форума.
 
Ответить
Сообщениепомогите пожалуйста решить! перепробовала все методы для этого уравнения, но корни никак найти не могу, иксель выдает ужасно огромные цифры

x+2y+3z=4
2x+y-z=3
3x+3y+2z=10[moder]Хочу Вас обрадовать. Аж дважды.
1. Ваша система уравнений (если, конечно, не углубляться в дебри высшей математики) не имеет решения. Начал решать на бумажке, получил 7х+5y=16 и 7х+5y=13
2. Эта тема закрыта. В следующий раз создавайте свою. А перед этим прочитайте Правила форума.

Автор - kris
Дата добавления - 18.12.2013 в 22:48
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Решение системы из N уравнений с N неизвестными
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!