Прогностические модели и международный обмен метеоинформацией

Полезные ссылки:
Метеоцентр.Азия - наш сайт с высокодетализированными прогнозами погоды по пунктам Pоссии и мира
Облегчённая версия Метеоклуба (для смартфонов)

Прогностические модели и международный обмен метеоинформацией

Сейчас в Метеоклубе:
Участников - 1 [ Mischel ]
Максимальное одновременное количество посетителей: 308 [2 Ноя 2013 22:42]
Гостей - 296 / Участников - 12

 - Начало - Ответить - Статистика - Pегистрация - Поиск -

МЕТЕОКЛУБ : независимое сообщество любителей метеорологии (Европа и Азия) : ФОРУМ О ПОГОДЕ И ПРИРОДЕ / Метеорология: наука и практика / Прогностические модели и международный обмен метеоинформацией
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 39 . 40 . >>
Автор Сообщение
Sadovnik
Участник

# Дата: 22 Май 2015 07:00 - Поправил: Sadovnik


matrix145
...Модельный прогноз - это множество вариаций, множество ответов на один вопрос, у модели 2+2 не равно 4, ответ каждый раз иной, но не означает, что он неверный
Имхо, такого быть не должно, что 2+2 не равно 4. Где логика? Такому алгоритму вообще не будет доверия.
Логика модели может быть какой угодно, но реализуется она на ЭВМ. А ЭВМ на самом "низком" уровне оперирует битами 0/1 (сигналами) и никакой нелинейности не допускает - есть сигнал или нет. Другое дело, что некоторые результаты вычисления нелинейных диф.уравнений не могут быть представлены в двоичном формате. Либо приходится округлять "вручную", либо, желая сохранить максимальную точность, полагаться на машину. Вот здесь и может быть зарыта собачка, потому как ЭВМ может округлять длинные числа достаточно странно, многое будет зависеть от разного рода факторов- состояния памяти, длины регистра и т.д.
Хороший алгоритм не должен при абсолютно одинаковых данных приводить к разным результатам.
Думаю, как-то так.

surok
Участник

Санкт-Петербург (север)
# Дата: 22 Май 2015 10:02


Sadovnik
ЭВМ может округлять длинные числа достаточно странно, многое будет зависеть от разного рода факторов- состояния памяти, длины регистра и т.д.

Это вы точно знаете или предполагаете? Мне такие тонкости неизвестны, но выглядит это странно. При одних и тех же расчётах на одной и той же машине от прогона к прогону будут использоваться разные регистры для чисел? Про состояние памяти совсем не понял.
Получается, рассчитываем мы, например, какой-нибудь механизм, сопротивление материалов, нам надо решить, как его сделать, чтобы не развалился. Думаю, там тоже есть и нелинейность, и дифференциальные уравнения. И что, у нас каждый раз новый результат будет получаться?

Sadovnik
Участник

# Дата: 24 Май 2015 06:52


Смотрите первое слово ответа - имхо (imho). ЭВМ все-таки ограниченна длиной/емкостью регистров/памяти. Бесконечная дробь или число пи не могут быть абсолютно точно выражены ЭВМ. Но если пи в алгоритме можно зашифровать как конечное число, округляя его, то результат сложного расчета возможно не удается округлять "заранее", т.к. при большом числе итераций это может привести к значительным ошибкам в результате. Поэтому, скорее всего, как всегда идут на компромисс, полагаясь на всю вычислительную мощь ЭВМ, зато получают более достоверный результат, правда платя за это цену нестабильности этого результата, т.е. в разных прогонах результат может незначительно отличаться.
Иными словами, намерено округляя результаты промежуточных расчетов для стабильности результата, мы получаем бОльшую погрешность, чем погрешность предписываемая непосредственно математической моделью. А используя мощность ЭВМ на всю катушку, получаем нестабильный результат, но погрешность его не превышает погрешность математической модели. Таким образом, зачем принимать во внимание более мелкую погрешность, когда сама модель дает погрешность более значительную.
Наверное, есть и еще какие-то моменты связанные с интерпретацией физических моделей в математические, т.е. в данном случае двоичный формат ограниченного пространства ЭВМ.

Да, где-то я читал специальную литературу о том что при вычислениях на "низких" языках результаты сложных вычислений могут быть неточно выражены и значение последней значащей цифры, вообще говоря, могут разнится, вплоть до попадания некоторого мусора. Даже, помниться показаны примеры расчетов, которые дают разные результаты, т.е. делишь одно число на другое, а конечная значащая цифра принимает одно-одно, а потом хлоп и другое значение.

Насчет сопротивления материалов. Думаю и там может быть подобное. Все дело, как мне думается в "значности" результата. Программы для сопромата и метеозадач все же разные. Если для задач сопромата точность может быть ограничена, например, 15 цифрами после запятой (принудительным округлением), то для метеозадач, наверняка это мало, учитывая значительно большее количество итераций. Вот принудительно никто и не округляет (в алгоритме).

Может я и ошибаюсь, поправьте если не так.

Corvus
Автор сайта

###Corvus###
# Дата: 24 Май 2015 07:57 - Поправил: Corvus


Вот здесь и может быть зарыта собачка, потому как ЭВМ может округлять длинные числа достаточно странно, многое будет зависеть от разного рода факторов- состояния памяти, длины регистра и т.д.
Sadovnik

Ошибки моделей связаны не с этим, а с погрешностью определения начального состояния атмосферы (невозможно ведь утыкать всю планету метеостанциями с шагом 1 км, да и спутниковое зондирование атмосферы имеет некую дискретность, не очень маленькую), которая на порядки больше, чем та, о которой Вы говорите. Вопрос погрешности расчёта самой ЭВМ по этой причине вообще не актуален.

surok
Участник

Санкт-Петербург (север)
# Дата: 24 Май 2015 15:15


Sadovnik
Поэтому, скорее всего, как всегда идут на компромисс, полагаясь на всю вычислительную мощь ЭВМ, зато получают более достоверный результат, правда платя за это цену нестабильности этого результата, т.е. в разных прогонах результат может незначительно отличаться.

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

Corvus
Автор сайта

###Corvus###
# Дата: 24 Май 2015 16:31


surok

От прогона к прогону берутся начальные данные чуть-чуть иные, в них вводятся небольшие дополнительные возмущения, в итоге нередко прогнозы довольно сильно отличаются. Эффект бабочки во всей красе.

surok
Участник

Санкт-Петербург (север)
# Дата: 24 Май 2015 17:33


Corvus
берутся начальные данные чуть-чуть иные

Нет-нет, тут-то всё понятно. Но matrix145 и Sadovnik говорят о том, что результаты будут разными при одинаковых входных данных.

Sadovnik
Участник

# Дата: 25 Май 2015 06:59


Corvus
Речь шла об абсолютно одинаковых входных данных и при этом разных выходных результатах.

Sadovnik
Участник

# Дата: 25 Май 2015 11:23


информация к размышлению - ЭВМ даже случайные последовательности чисел генерировать не умеет, получаются псевдослучайные.

Sadovnik
Участник

# Дата: 25 Май 2015 11:49


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

Языки высокого уровня, как правило, ограничены определенной точностью, обрезанием/округлением результата. Плата за это увеличение времени расчетов. Языки низкого уровня предоставляют всю мощь ЭВМ и по быстродействию значительно быстрее, но плата за это может быть потерей точности на границе последних цифр.

Вот некоторое объяснение специалиста, коим я не являюсь: URL. По крайней мере оно демонстрирует, что одинаковые входные данные, могут дать разные результаты (там это на примере 32-разрядных приложений). Но наверное, такие же проблемы и у 64 разрядных (и любых других), только граница значащих цифр значительно дальше.

surok
Участник

Санкт-Петербург (север)
# Дата: 25 Май 2015 12:12


Sadovnik

А зачем сравнивать языки высокого и низкого уровней? У нас уже есть скомпилированная программа (модель атмосферы), которую мы и гоняем на компьютере.

В приведённой вами статье описываются различия результатов при запуске на 32- и 64-битных системах. Не наш случай. Также там описываются внесения изменений в код - тоже не наш случай.

Мы гоняем одну неизменную модель на одной машине с одними входными данными.

kir_vik
Участник

Рязань
# Дата: 25 Май 2015 14:15


Не претендую на абсолют, лишь мысли.
1. Не нужно 100% верить объяснению заплыва при рассчетах атмосфер. Ошибки могут возникать в самых неожиданных местах. Программа, а тем более модель, идеально вряд ли может быть верифицирована за разумную плату в разумные сроки.
2. Так там, в статье, и говорится про точночть в 7 знаке. Если нужно точнее, нужно брать другой тип, дабл или децимал (который, кстати, для фиников).
3. В статье говорит про блоки. А в них переменные с разной точностью скорее всего. Отсюда и сюрпризы.
4. Максимальную точность не всегда целесообразно брать. Память кушается, а точность в 10 знаке не нужна.
5. Ну как то же считаются взрывы, молекулы...
6. И как Corvus сказал, проблема с исходным материалом. Что толку беспокоиться о накапливаемой когда то ошибке, если точность, сеть измерений, ошибки при передаче (!), человеческий фактор присутствуют в полной мере.

kir_vik
Участник

Рязань
# Дата: 25 Май 2015 14:18


На языке низкого уровня замучаешься модели программировать))). Низкий уровень хорош для повышения скорости обработки небольших блоков вычисления..

Corvus
Автор сайта

###Corvus###
# Дата: 25 Май 2015 17:32


kir_vik

Современные модели написаны в основном на Си со вставками, написанными на Фортране (различные научные модули для описания конкретных физических процессов). Всё это компилируется и исполняется в Юникс-системах (чаще всего Линуксы разных мастей, бывает так же FreeBSD и т.п.).

Sadovnik
Участник

# Дата: 27 Май 2015 06:29


surok
А зачем сравнивать языки высокого и низкого уровней?
Затем, чтобы показать разницу результатов вычислений. Никто и не говорит, что модель вся пишется на языке низкого уровня, но как правильно заметили участники диалога, есть низкоуровневые вставки (для повышения производительности расчетов и т.д.).
Если, к примеру, у вас 25.4*3=76.2, то у ЭВМ это не всегда так. Вполне может оказаться 76.1999999(9). И даже не на самом низком уровне. Это пять-таки просто пример, но он все же простой, что уж говорить про сложные расчеты.

lelik
Участник

Ekaterinburg
# Дата: 27 Май 2015 07:02


Sadovnik
Где логика?
Почитайте о методах экстраполяции, многое станет ясно, в том числи и то, почему получаются разные результаты при одинаковых входных данных.

surok
Участник

Санкт-Петербург (север)
# Дата: 27 Май 2015 10:00


Sadovnik

Да зачем вообще говорить о языках программирования, если у нас уже есть готовая программа? Написанная и скомпилированная программа. И её мы запускаем. Подаём ей одни и те же данные, а результаты почему-то разные.

lelik
Почитайте о методах экстраполяции, многое станет ясно, в том числи и то, почему получаются разные результаты при одинаковых входных данных.

Если у нас экстраполяция идёт по одним и тем же методам, то откуда возьмётся разница в результатах?

Вы уже третий. Может вы сможете объяснить.

lelik
Участник

Ekaterinburg
# Дата: 27 Май 2015 10:52


surok
я идёт по одним и тем же методам
Ну, во-первых, отнюдь не факт, что по одним и тем же.
Во-вторых, для каждого случая может браться разное число исходных точек.
И в-третьих, сам термин "perturbations" как бы намекает, что имеют место приращения аргументов.

surok
Участник

Санкт-Петербург (север)
# Дата: 27 Май 2015 10:56


lelik

Если мы меняем какие-то данные или алгоритмы, то тут и спорить нечего - конечно результат будет другим. Предыдущие участники говорили о разных результатах при одинаковых условиях (данные, алгоритмы, компьютер и т.д.).

Sadovnik
Участник

# Дата: 27 Май 2015 11:03


surok
Да зачем вообще говорить о языках программирования, если у нас уже есть готовая программа?
А затем, что считая вручную, Вы вряд ли получите разные результаты при одинаковых данных. С ЭВМ такие фокусы случаются (см. простой пример).

surok
Участник

Санкт-Петербург (север)
# Дата: 27 Май 2015 11:05


Sadovnik
см. простой пример

Какой?

lelik
Участник

Ekaterinburg
# Дата: 27 Май 2015 11:09


surok
о разных результатах при одинаковых условиях
Хорошо, первый например:
Пусть есть N точек данных, полученных в интервалах времени от 0 до (N-1). Требуется экстраполировать значение функции для интервала N.
Для экстраполяции возьмите 5, потом 6 и т.д. точек, например от (N-5) до (N-1) итд.
Вы получите разный результат, даже если каждый раз применяли один и тот же метод. И данные были одни и те же.

Sadovnik
Участник

# Дата: 27 Май 2015 11:11


lelik
Где логика?
Почитайте о методах экстраполяции, многое станет ясно, в том числи и то, почему получаются разные результаты при одинаковых входных данных.

Ну, во-первых, отнюдь не факт, что по одним и тем же.
Верну Вам ваш вопрос: "Где логика?" )

surok
Участник

Санкт-Петербург (север)
# Дата: 27 Май 2015 11:15


lelik
Для экстраполяции возьмите 5, потом 6 и т.д. точек
каждый раз применяли один и тот же метод. И данные были одни и те же.

Нет, как же, мы поменяли алгоритм экстраполяции, взяв другое количество точек (ну и данные тем самым тоже поменяв - их стало больше). То есть мы запустили программу, получили результаты, внесли изменения, опять запустили программу, получили другие результаты. Всё логично. А вот если бы мы запускали программу второй раз, не внося никаких изменений, то результаты были бы те же.

Sadovnik
Участник

# Дата: 27 Май 2015 11:21


surok
см. простой пример

Какой?


Друзья, устал толочь воду в ступе. Читайте внимательнее, зачем повторяться?

lelik
Участник

Ekaterinburg
# Дата: 27 Май 2015 11:23


Второй например.
Пусть получена закономерность экстраполяции, которая суть функция многих переменных y=f(x1, x2, ..., xn). Вводя приращения аргументов dxi, можно оценить, насколько "устойчива" данная функция, т.е. существует ли сходимость при вариациях аргументов.
y'(x1+dx1, x2, ..., xn)
y''(x1, x2+dx2, x3, ..., xn)
итд.
Если процесс сходящийся, то он сойдется при любом приращении аргумента.
(Хотя на самом деле приращение идет не к аргументу, а к членам матрицы из частных производных, что, впрочем, на качественном уровне объяснений сути не меняет.)

Sadovnik
Участник

# Дата: 27 Май 2015 11:24


surok
Нет, как же, мы поменяли алгоритм экстраполяции, взяв другое количество точек
Поддерживаю.

lelik
Участник

Ekaterinburg
# Дата: 27 Май 2015 11:25


surok
Нет, как же, мы поменяли алгоритм экстраполяции
Да ладно? Как описывали линейной зависимостью аx+b, так и продолжаем)

lelik
Участник

Ekaterinburg
# Дата: 27 Май 2015 11:29


Sadovnik
"Где логика?"
Третий например.
Пусть двумерный массив точек можно описать функцией типа y=f(x), которая непрерывна и дифференцируема на выбранном интервале.
У вас на выбор есть несколько типов аппроксимации: линейный, параболический, полином третьей степени, экспонента, степенная функция, логарифмическая функция. Что вы выберете?

Sadovnik
Участник

# Дата: 27 Май 2015 11:47


Это не примеры - это одни термины. Покажите на пальцах, что a+b=c и a+b#c. (Вот он вопрос - где логика?) Вместо знака сложения можете использовать любое другое действие, a и b тоже можете расписать другими значениями.

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

Вы слишком обще подходите к объяснению обсуждаемой темы. У вас то приращение плавает
lelik
при любом приращении аргумента
то входные данные не одинаковые
отнюдь не факт, что по одним и тем же
так это мы и так знаем

<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 39 . 40 . >>
Ваш ответ

          Отменить *Что это?

 » Логин  » Пароль 
 
 


Поддержка: miniBB forum software © 2001-2024