#0
by Leksandr
Коллеги, создавал ли кто-нибудь в 1С аналог функции экселя Goal Seek? Пример: есть площадь прямоугольника S=a*b. Знаем S, знаем b. Нужно найти а. Данная функция решает задачу перебором возможных значений a и считает, что решение найдено, если равенство верно.
#7
by Leksandr
Это простейший пример. Там в экселе длинная цепочка связей между ячейками с использование макросов... Всё сложно крч. Поэтому там же в экселе решение находится с использованием Goal Seek (опять таки вызовом из макросов)
#11
by Mikeware
Только дурак считает, что для того, чтобы найти Площадь Ильича - нужно длину Ильича умножить на ширину Ильича... Умный знает, что нужно взять интеграл по поверхности Ильича.
#12
by Leksandr
пробую метод деления пополам - есть у кого-нибудь пример использования этого метода?
#13
by Зойч
Начало. Ввод xn, xk, epsy. Если F(xn) = 0, то Вывод (корень уравнения — xn). Если F(xk) = 0, то Вывод (корень уравнения — xk). dx := xk — xn. Пока |F(xi)| > epsy повторять: dx := dx / 2; xi := xn + dx; если sign(F(xn)) ? sign(F(xi)), то xk := xi; иначе xn := xi. конец повторять Вывод (Найден корень уравнения — xi с точностью по y — epsy). Конец.
#16
by Mikeware
от дожили... площадь прямоугольника вычисляют половинным делением, да еще просят код для этого....
#17
by Leksandr
Спасибо Зойч! Вот реализовал пример (функция S(x)= x*y+10): &НаСервереБезКонтекста Функция РасчитатьИкс(S,y) xn=0; //начало диапазона xk=1000000000; //конец диапазона epsy=0.005; //точность xi=0 ; Если F(xn,y,S) = 0 //крайняя правая точка Тогда Возврат xn; КонецЕсли; Если F(xk,y,S) = 0 //крайняя левая точка Тогда Возврат xk; КонецЕсли; dx=xk-xn; //длина диапазона Пока Макс(F(xi,y,S), -F(xi,y,S)) > epsy //если модуль функции больше погрешности Цикл dx=dx/2; //длина половины диапазона xi=xn+dx; //середина диапазона (текущая) Если (F(xn,y,S)>=0 И F(xi,y,S)>=0) ИЛИ (F(xn,y,S)<=0 И F(xi,y,S)<=0) Тогда xn=xi; Иначе xk=xi; КонецЕсли; КонецЦикла; Возврат Окр(xi,2); КонецФункции &НаСервереБезКонтекста Функция F(x,y,S) Возврат S-x*y-10; КонецФункции
#22
by Leksandr
S=a*b - это простейший пример зависимости функции Y(x) от х. На самом деле функция то может содержать и тройные интегралы и пределы и прочую лабуду... В рабочем варианте этой задачи ведётся ряд сложных расчетов в Excel c использованием макросов и большого количества таблиц с данными, видимо поэтому "писатели" этого экселевского файла решили использовать именно goal seek, вызывая его с помощью макросов
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Excel и 1С - вопрос про Excel?
- Excel -> 1C ("Excel.Application")
- Программно скопировать область из Excel книги 1 в Excel книгу 2
- Поиск с помощью метода Seek() в ADODB.RecordSet
- Можно ли отредактировать файл Excel из 1С без установленного Excel?
- Excel - ошибка при закрытия Excel
- Как пересохранить из нового Excel в старый Excel ?
- Выгрузка в Excel по шаблону Active Document различия Excel 2010 Excel 2016
- Выгрузка в Excel по шаблону Active Document различия Excel 2010 Excel 2016 ч2
В этой группе 1С
- Отобрать запросом значения нескольких свойств объекта Номенклатура.
- v7: ЗиК: годовая премия (перерасчет отпуска)
- документ в Word из 1С (Active Document)
- Skypein кто пробовал?
- Как сохранить в регистр сведений данные о пользователе ИБ?
- какова вероятность генерации одинакового УИД объекта в двух разных базах 1с?
- v8: SQL Проверьте предыдущие ошибки
- v8: 1c 8.2 УПП не списывается по партиям
- Обновление отображения в управляемой форме после её изменения
- УТ 10.3 и Эквайринг сбербанк (загрузка платежек)
- Пересчёт количества при изменении единицы измерения
- Не получается программно установить ТипЗначенияСписка
- Отправка писем из 1с встроенным почтовиком уходит в бесконечный цикл...
- БП в ОСВ по счету с отбором по контрагенту попадает док. другого контрагента ...
- Как убрать реализацию из книги доходов и расходов усн?
- резервирование лицензий 1С
- РСВ-1. Раздел 6.8. Не выделяются периоды больничного
- Не активна кнопка добавления субконто на счете 97.01...
- Запись в ячейку составного типа табличного поля
- 1с Розница 1.0 Возврат наличкой до закрытия кассовой смены при покупке по банк.