Математический форум Math Help Planet
Обсуждение и решение задач по математике, физике, химии, экономике Теоретический раздел |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
новый онлайн-сервис число, сумма и дата прописью |
|
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Страница 1 из 1 |
[ Сообщений: 8 ] |
|
Автор | Сообщение | |
---|---|---|
Nikolay_Arm |
|
|
Есть задача - привести к сокращенному виду формулу: A = (B-C*1)*(B-C*2)*(B-C*3)*(B-C*4)*(B-C*5)*(B-C*6)* ... (B-C*D) коэффициенты В, С и D - поступают на вход функции. Область применения - компьютерная графика. Эти вычисления - для расчета светопропускания (B) в тумане с переменной, линейно изменяющейся плотностью (C) на дистанции (D). Подобное решил Inigo Quilez (вот статья http://www.iquilezles.org/www/articles/fog/fog.htm) но он зачем-то привел у себя неверную формулу. Это вообще решаемо? |
||
Вернуться к началу | ||
Booker48 |
|
|
Что такое "сокращённый вид"?
|
||
Вернуться к началу | ||
Nikolay_Arm |
|
|
В таком виде мне надо в цикле осуществлять столько умножений, сколько есть дистанции D.
Сокращенный вид подразумевается что-то вроде: A = log(B)/(log(C)*D!) однако хотелось бы не применять факториал, потому что его тоже не получится посчитать одним простым выражением. |
||
Вернуться к началу | ||
Booker48 |
|
|
Приведённый вами пример может оказаться существенно "дороже" в вычислительном смысле, чем 2D умножений.
Для выбора реализуемой формулы желательно иметь представление об области значений переменных, требуемой точности и т.п. |
||
Вернуться к началу | ||
Nikolay_Arm |
|
|
Области значения переменных:
В - светопропускание, может быть от 0.8 до 0.9999 (примерно) С - дельта изменения В с высотой на 1 метр дистанции, может быть как равна B (если туман высотой всего в 1 метр) так и до 0.0001 D - дистанция, от 1 до 10000, условно говоря 10 км максимум. Вычисления проводятся в шейдере, поэтому компактность важнее стоимости - шейдер имеет ограниченное количество инструкций для выполнения, поэтому даже 5 тысяч умножений не подходят. Все эти параметры могут сильно меняться в пределах одного кадра (т.е. прям в соседних пикселях одной картинки могут быть разные) поэтому рассчитать все варианты заранее и запихать их в таблицу представляется плохой идеей. |
||
Вернуться к началу | ||
Nikolay_Arm |
|
|
Судя по всему этот ряд невозможно упростить.
Поэтому рассматриваю вариант попроще: A = (B-C)*(B-C^2)*(B-C^3)*(B-C^4)*(B-C^5)*(B-C^6)* ... (B-C^D) |
||
Вернуться к началу | ||
Andy |
|
|
Nikolay_Arm
Nikolay_Arm писал(а): Поэтому рассматриваю вариант попроще: A = (B-C)*(B-C^2)*(B-C^3)*(B-C^4)*(B-C^5)*(B-C^6)* ... (B-C^D) Чем этот вариант проще? |
||
Вернуться к началу | ||
Nikolay_Arm |
|
|
Да, отличий немного.
Задачу в исходной постановке считаем нерешаемой. |
||
Вернуться к началу | ||
[ Сообщений: 8 ] |
Похожие темы | Автор | Ответы | Просмотры | Последнее сообщение |
---|---|---|---|---|
Привести к каноническому виду и т.д
в форуме Векторный анализ и Теория поля |
4 |
583 |
28 июн 2018, 16:15 |
|
Привести к каноническому виду | 7 |
837 |
28 окт 2016, 12:26 |
|
Как привести к решаемому виду | 1 |
228 |
01 фев 2018, 16:49 |
|
Привести к каноническому виду | 1 |
296 |
04 ноя 2017, 07:15 |
|
Привести к каноническому виду 1 | 4 |
326 |
19 ноя 2016, 13:59 |
|
Привести к линейному виду
в форуме Алгебра |
1 |
250 |
13 янв 2021, 12:22 |
|
Привести к каноническому виду
в форуме Линейная и Абстрактная алгебра |
1 |
306 |
19 ноя 2016, 13:46 |
|
Привести к каноническому виду | 13 |
1138 |
23 май 2015, 16:38 |
|
Привести к каноническому виду | 0 |
385 |
19 фев 2017, 09:11 |
|
Привести к каноническому виду | 3 |
397 |
17 дек 2014, 10:53 |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |