grf
Зарегистрирован: 05.04.2005 Сообщения: 1242 Откуда: Москва
|
Добавлено: Пн Янв 16 2006 11:01 Заголовок сообщения: |
|
|
Говоря проще, у тебя есть поверхность, твоя теплоемкость, с наложенной сеткой твои измерения. Я сам неоднократно сталкивался с такой задачей, уравнение пуассона, я решал ее для электрического поля.
Здесь возможны 2 варианта:
1 если необходимые тебе точки лежат вне сетки, тогда без серьеной интерполяции не обойтись и велика вероятность серьезной ошибки.
2. необходимые тебе точки лежат внутри сетки, тогда делаешь линейную (самая простая) интерполяцию. Действуешь по алгоритму:
1. Находишь в какой ячейке у тебя лежит твоя точка, пусть это ячейка (для простоты ячеки прямоугольные, но это не обязательно) с координатами и теплоемкостями x1,y1,с1 x2,y1,с2 x1,y2,с3 x2,y2,с4 координаты точки x,y причем x1<=x<=X2 и y1<=y<=y2
2. Ищешь уравнение прямой проходящей через точки, x1,y1,c1 и x2,y1,c2
3. ищешь значение с1x, которое принадлежит этой прямой и находится на точке x,y1
4. повторяешь пункт 2 для точек x1,y2,c3 и x2,y2,c4
5. повторяешь пункт 3 и находишь с2x для точки x,y2
6. повторяешь пункт 2 для точек x,y1,c1x и x,y2,c2x
7. повторяешь пункт 3 и находишь cxy для точки x,y
При желании аналогичную процедуру можно провести по 2 другим сторонам ячейки и найти среднее значение теплоемкости из этих 2.
Я не опытный программист, но написание этой программы на delphi заняло у меня меньше дня. На поле с прямоугоными ячейками с сеткой 1000 на 1000 ячеек программа находила значение гораздо меньше, чем за секунду. |
|