Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Ошибка в интерполяции VBA
 
i я добавил от себя. В оригинале в строке (r2, r(i), g(i), r(i + 1), g(i + 1)) были (r2, r(0), g(0), r(1), g(1)). Я заметил, что если поменять эти 0 и 1 на, скажем, 12 и 13, то значения будут другие. Было предположение, что ошибка в этом, потому заменил на i? чтобы не было привязки к определенному числу.

То что делается на листе с формулами мне известно. Именно там реализован расчет. Суть его следующая:
Планируется построить здание с размерами сторон B и L. Внутри здания размещаются комнаты, как ячейки, со сторонами b и l. Размеры сторон этих ячеек кратны размерам сторон здания (не может размещаться половина комнаты или какая то часть, только целая). Но, вариаций размеров сторон ячеек может быть великое множество. Например, для здания размером 100×120м могут быть ячейки 1х1, 1х2, 1х4, 1х5....20х30, ...50х60 и так далее.

Какие стороны получаются кратными для данных длин здания  решается на листе и получаются строка значений l и столбец значений b. Внутри этого диапазона программа ищет массу здания. Получается табличка из масс для каждой длины и ширины комнаты. То есть расчет идет перебором по всем значениям и по этому он записан в функцию, где исходные данные только длина и ширина комнаты, а итог - масса здания. И в эту функцию мне нужно вставить интерполяцию, потому и не делаю её на листе.
Ошибка в интерполяции VBA
 
Здравствуйте!

На просторах интернета нашел как сделать интерполяцию внутри vba, чтобы и значения тоже были внутри. Вот  ссылка на оригинал.

Сделал под себя и обнаружил, что дальше 3 значения расчет ведется неверный. Формула интерполяции верная. Проверил на бумаге и подсчитал при 1.3, получил -0.1761, написал ход расчета в функцию, получил -0.1684. Подскажите, где ошибка в трех соснах?

Вот мой код
Код
Function interpol_one()
   Dim r, g, r2 As Single
   
   r = Array(1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.2, 2.4, 2.6, 2.8, 3)
   g = Array(-0.125, -0.139, -0.153, -0.174, -0.195, -0.219, -0.245, -0.274, -0.305, -0.339, -0.375, -0.455, -0.545, _
   -0.645, -0.755, -0.875)
   r2 = 1.31

   
   interpol_one = LinearInterpolation(r2, r(i), g(i), r(i + 1), g(i + 1))
    
End Function
 
Function LinearInterpolation(ByVal x As Double, ByVal x1 As Double, ByVal fx1 As Double, _
                                    ByVal x2 As Double, ByVal fx2 As Double) As Double
    If (x2 - x1) <> 0 Then LinearInterpolation = fx1 + (fx2 - fx1) * (x - x1) / (x2 - x1)
End Function
[ Закрыто] Подстановка значений в формулу и вывод итогов в таблицу
 
Да теперь всё понятно,  что делать дальше! Премного благодарен за труды!! :)
[ Закрыто] Подстановка значений в формулу и вывод итогов в таблицу
 
Вау!
то что нужно!  :D  Фантастика!!!))))Я неделю голову ломал как это реализовать)))) Крутотень какая)))
Спасибище огромное!!!! Я Ваш должник!!)))

Вникаю в код в модуле, вы получается вручную туда все формулы забили?
Изменено: 2502 - 17.09.2013 17:33:44
[ Закрыто] Подстановка значений в формулу и вывод итогов в таблицу
 
ber$erk, спасибо за наводку, пошел разбираться! :)
[ Закрыто] Подстановка значений в формулу и вывод итогов в таблицу
 
ber$erk, я написал в файле, что расчет условный и по факту занимает целый лист. Также в первом сообщении написал "а на выходе через десяток формул выдается ответ в виде массы данной комнаты".

Прилагаю файл с полным расчетом, если так будет проще.

Юрий М, новое имя чего? Файла, профиля или?
[ Закрыто] Подстановка значений в формулу и вывод итогов в таблицу
 
Нет, здесь каждая просто строка таблицы умножается на 2, а столбец на 3.14. Мне же нужно, чтобы значение каждой ячейки таблицы бралось из B13 при разных значениях b и l.

Другими словами,
для ячейки M12 значение из B13 при B6=L12 и B7=M11
для ячейки M13 значение из B13 при B6=L13 и B7=M11;
для ячейки N12 значение из B13 при B6=L12 и B7=N11 и тд.
[ Закрыто] Подстановка значений в формулу и вывод итогов в таблицу
 
Здравствуйте!
Возникла непростая для меня задача, ответов на которую найти не смог.
В excel делаю расчеты, где в 2 ячейки вбивается длина и ширина комнаты здания, а на выходе через десяток формул выдается ответ в виде массы данной комнаты.

Также сделано, что задавая стороны здания, excel выдает столбец с возможной шириной и возможной длиной комнаты, размеры которой получаются кратными сторонам здания. Например, здание 100×120м, стороне здания 100м будет комната со стороной 1, 2, 4, 5, 10, 20 и тд. аналогично для другой стороны. В итоге 2 столбца.

Нужно чтобы в те ячейки, куда я вбиваю длину и ширину комнаты здания, значения брались из этих двух столбцов, причем поочередно, а результат заносился в таблицу.

В итоге должно получиться, что задавая длину и ширину здания, мы получаем таблицу масс комнаты в зависимости от её размеров.

Возможно такое реализовать?
Страницы: 1
Наверх