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

Вход

Регистрация

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

 

= Мир MS Excel/Возможен ли циклический алгоритм? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Возможен ли циклический алгоритм?
Коляба Дата: Суббота, 16.02.2013, 21:22 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

У меня есть другой вопрос из области теории, бизко к функции ЕСЛИ.
Но! Вопрос для многих практических задач интересный.
Бесспорно Excel - мощный инструмент для вычислений. Но в задачах математического моделирования часто необходимо реализовать циклический алгоритм. Пример. Численное решение уравнения. Подставляем в формулу значения аргумента (изначально задаем интервал значений аргумента, на котором с некоторым шагом вычисляется значение функции), находим интервал из двух соседних значений, содержащий решение, счиаем величину "невязки". Если она превышает минимум, интервал разбивается на меньшие, цикл повторяется до тех пор, пока "невязка" не войдёт в ТУ.
С моими знаниями можно сделать лишь примитивное решение для подобных задач - прописать некоторое конечное число циклов. Во-первых, это топорное, некрасивое решение. Во-вторых, сколько бы циклов вручную не было прописано, реальная задача може быть такой, что их будет недостаточно.
До недавнего времени был уверен, что циклические алгоритмы excel в принципе не поддеррживает, но один товарищ мне стал доказывать, что варианты их создания есть (но он уже не помнит, как делается, было давно и неправда:)).
Кто-нибудь компетентен в этом вопросе?


Сообщение отредактировал Коляба - Суббота, 16.02.2013, 21:42
 
Ответить
СообщениеУ меня есть другой вопрос из области теории, бизко к функции ЕСЛИ.
Но! Вопрос для многих практических задач интересный.
Бесспорно Excel - мощный инструмент для вычислений. Но в задачах математического моделирования часто необходимо реализовать циклический алгоритм. Пример. Численное решение уравнения. Подставляем в формулу значения аргумента (изначально задаем интервал значений аргумента, на котором с некоторым шагом вычисляется значение функции), находим интервал из двух соседних значений, содержащий решение, счиаем величину "невязки". Если она превышает минимум, интервал разбивается на меньшие, цикл повторяется до тех пор, пока "невязка" не войдёт в ТУ.
С моими знаниями можно сделать лишь примитивное решение для подобных задач - прописать некоторое конечное число циклов. Во-первых, это топорное, некрасивое решение. Во-вторых, сколько бы циклов вручную не было прописано, реальная задача може быть такой, что их будет недостаточно.
До недавнего времени был уверен, что циклические алгоритмы excel в принципе не поддеррживает, но один товарищ мне стал доказывать, что варианты их создания есть (но он уже не помнит, как делается, было давно и неправда:)).
Кто-нибудь компетентен в этом вопросе?

Автор - Коляба
Дата добавления - 16.02.2013 в 21:22
Michael_S Дата: Суббота, 16.02.2013, 22:19 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Легко решается в VBA.
Возможно решение и формулой (формулами), но сложнее.
 
Ответить
СообщениеЛегко решается в VBA.
Возможно решение и формулой (формулами), но сложнее.

Автор - Michael_S
Дата добавления - 16.02.2013 в 22:19
Матрёна Дата: Суббота, 16.02.2013, 22:30 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

Цитата (Michael_S)
Легко решается в VBA.

Абсолютно согласна с Михаилом.
В VBA - ВСЁ, ЧТО ХОЦЦА!
 
Ответить
Сообщение
Цитата (Michael_S)
Легко решается в VBA.

Абсолютно согласна с Михаилом.
В VBA - ВСЁ, ЧТО ХОЦЦА!

Автор - Матрёна
Дата добавления - 16.02.2013 в 22:30
Serge_007 Дата: Суббота, 16.02.2013, 22:36 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Матрёна)
В VBA - ВСЁ, ЧТО ХОЦЦА!

Матрёна, на VBA раскрасьте синим цветом слово "Привет", а красным слово "друг" в ячейке А1, в которой находится формула =А2&В2 (в А2 находится слово "Привет", а в В2 слово "друг" ) с сохранением формулы (что бы она была там всегда, без перезаписи)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Матрёна)
В VBA - ВСЁ, ЧТО ХОЦЦА!

Матрёна, на VBA раскрасьте синим цветом слово "Привет", а красным слово "друг" в ячейке А1, в которой находится формула =А2&В2 (в А2 находится слово "Привет", а в В2 слово "друг" ) с сохранением формулы (что бы она была там всегда, без перезаписи)

Автор - Serge_007
Дата добавления - 16.02.2013 в 22:36
Коляба Дата: Суббота, 16.02.2013, 23:36 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Цитата (Michael_S)
Легко решается в VBA.
Возможно решение и формулой (формулами), но сложнее.

Ну, значит положительный ответ принципиально есть. Попробую найти самостоятельно. Честно говоря, трудно представляю, какие формулы могут заставить выполнять повторное вычисление в одних и тех же ячейках (менять значения аргументов в формулах) без дополнительных действий пользователя. Ладно, ещё подумаем над этим...
 
Ответить
Сообщение
Цитата (Michael_S)
Легко решается в VBA.
Возможно решение и формулой (формулами), но сложнее.

Ну, значит положительный ответ принципиально есть. Попробую найти самостоятельно. Честно говоря, трудно представляю, какие формулы могут заставить выполнять повторное вычисление в одних и тех же ячейках (менять значения аргументов в формулах) без дополнительных действий пользователя. Ладно, ещё подумаем над этим...

Автор - Коляба
Дата добавления - 16.02.2013 в 23:36
Serge_007 Дата: Суббота, 16.02.2013, 23:41 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Коляба)
трудно представляю, какие формулы могут заставить выполнять повторное вычисление в одних и тех же ячейках (менять значения аргументов в формулах) без дополнительных действий пользователя

См мой ответ в этой теме: http://forum.msexcel.ru/index.php/topic,9108.0.html


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Коляба)
трудно представляю, какие формулы могут заставить выполнять повторное вычисление в одних и тех же ячейках (менять значения аргументов в формулах) без дополнительных действий пользователя

См мой ответ в этой теме: http://forum.msexcel.ru/index.php/topic,9108.0.html

Автор - Serge_007
Дата добавления - 16.02.2013 в 23:41
Коляба Дата: Суббота, 16.02.2013, 23:53 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, спасибо. ИЗМЕНИТЬЕСЛИ не пробовал. Посмотрим, что за зверь.
 
Ответить
СообщениеSerge_007, спасибо. ИЗМЕНИТЬЕСЛИ не пробовал. Посмотрим, что за зверь.

Автор - Коляба
Дата добавления - 16.02.2013 в 23:53
Michael_S Дата: Суббота, 16.02.2013, 23:56 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Цитата (Коляба)
ИЗМЕНИТЬЕСЛИ не пробовал.

А где вы такую нашли?
 
Ответить
Сообщение
Цитата (Коляба)
ИЗМЕНИТЬЕСЛИ не пробовал.

А где вы такую нашли?

Автор - Michael_S
Дата добавления - 16.02.2013 в 23:56
Коляба Дата: Воскресенье, 17.02.2013, 00:50 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Цитата (Michael_S)
А где вы такую нашли?

По ссылке, сообщение выше. Есть ли такая функция в excel и как работает - пока ещё не смотрел.
 
Ответить
Сообщение
Цитата (Michael_S)
А где вы такую нашли?

По ссылке, сообщение выше. Есть ли такая функция в excel и как работает - пока ещё не смотрел.

Автор - Коляба
Дата добавления - 17.02.2013 в 00:50
Коляба Дата: Воскресенье, 17.02.2013, 00:53 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Хех, в полном алфавитном перечне не обнаружилось ИЗМЕНИТЬЕСЛИ surprised
Искал в Excel 2007. Что не так?
 
Ответить
СообщениеХех, в полном алфавитном перечне не обнаружилось ИЗМЕНИТЬЕСЛИ surprised
Искал в Excel 2007. Что не так?

Автор - Коляба
Дата добавления - 17.02.2013 в 00:53
Michael_S Дата: Воскресенье, 17.02.2013, 01:00 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
По ссылке дословно
Цитата
Формально звучит как ИЗМЕНИТЬЕСЛИ.

это не значит, что такая функция существует.


Сообщение отредактировал Michael_S - Воскресенье, 17.02.2013, 01:01
 
Ответить
СообщениеПо ссылке дословно
Цитата
Формально звучит как ИЗМЕНИТЬЕСЛИ.

это не значит, что такая функция существует.

Автор - Michael_S
Дата добавления - 17.02.2013 в 01:00
Gustav Дата: Воскресенье, 17.02.2013, 01:57 | Сообщение № 12
Группа: Админы
Ранг: Участник клуба
Сообщений: 2772
Репутация: 1141 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Вот вам простейший циклический пример - решение в Excel стационарной двумерной задачи теплопроводности в плоской пластине при заданных граничных температурах (случайно я когда-то по образованию теплофизик).

Вдоль двух границ задана температура 100 градусов (пусть Цельсия) и вдоль двух других 0 градусов. Конечно-разностный шаблон описывающего задачу дифференциального уравнения в частных производных выглядит в данном случае очень просто: температура в узле (ячейке) внутри пластины (не на границе - там константы) равна среднеарифметическому значению четырех соседних узлов: слева, справа, сверху, снизу ("крест"). В контексте Excel это формула для ячейки B2: =(A2+C2+B1+B3)/4. Копируем ее в диапазон внутренних узлов пластины B2:K21 и наслаждаемся итерационным расчетом.

Для чистоты эксперимента можно стереть формулы из указанного диапазона в файле и ввести их заново, скопировав формулу из B2. Должна быть включена опция (говорю по интерфейсу 2007) "Включить итеративные вычисления" (круглая кнопка \ Параметры Excel \ Формулы).
К сообщению приложен файл: HeatTransfer.xls (25.5 Kb)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеВот вам простейший циклический пример - решение в Excel стационарной двумерной задачи теплопроводности в плоской пластине при заданных граничных температурах (случайно я когда-то по образованию теплофизик).

Вдоль двух границ задана температура 100 градусов (пусть Цельсия) и вдоль двух других 0 градусов. Конечно-разностный шаблон описывающего задачу дифференциального уравнения в частных производных выглядит в данном случае очень просто: температура в узле (ячейке) внутри пластины (не на границе - там константы) равна среднеарифметическому значению четырех соседних узлов: слева, справа, сверху, снизу ("крест"). В контексте Excel это формула для ячейки B2: =(A2+C2+B1+B3)/4. Копируем ее в диапазон внутренних узлов пластины B2:K21 и наслаждаемся итерационным расчетом.

Для чистоты эксперимента можно стереть формулы из указанного диапазона в файле и ввести их заново, скопировав формулу из B2. Должна быть включена опция (говорю по интерфейсу 2007) "Включить итеративные вычисления" (круглая кнопка \ Параметры Excel \ Формулы).

Автор - Gustav
Дата добавления - 17.02.2013 в 01:57
Коляба Дата: Воскресенье, 17.02.2013, 13:41 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Gustav, спасибо, интересный пример. Даже число итераций можно задавать, как оказалось. Значит по идее и мою задачу можно решить как-то, надо чуть-чуть подумать.
А мы с Вами практически коллеги: когда-то ТД и ТП тоже изучал достаточно большой курс на кафедре авиационных двигателей;)
 
Ответить
СообщениеGustav, спасибо, интересный пример. Даже число итераций можно задавать, как оказалось. Значит по идее и мою задачу можно решить как-то, надо чуть-чуть подумать.
А мы с Вами практически коллеги: когда-то ТД и ТП тоже изучал достаточно большой курс на кафедре авиационных двигателей;)

Автор - Коляба
Дата добавления - 17.02.2013 в 13:41
  • Страница 1 из 1
  • 1
Поиск:

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