Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2012, 11:33   #1
Alex.Pi
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 14
Вопрос Как избежать деления на ноль при интерполяции?

Здравтсвуйте!
Я пытаюсь написать алгоритм интерполяции кубическими сплайнами. В знаменателе в формулах данного метода содержиться компонент параметризации x[i + 1] - x[i]. Естественно, что если две ближайшие точки совпадают, то происходит деление на ноль. Мне нужны именно кубические сплайны и я не могу использовать линейную интерполяцию в подобных случаях. Я не так давно начал заниматься данными задачами и не знаком с методами, которые используются в таких ситуациях. Расскажите, пожалуйста, как избежать деления на ноль?
Спасибо.
Alex.Pi вне форума Ответить с цитированием
Старый 05.04.2012, 13:26   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Код:
const epsilon=0.000000000001;
.............................
if |x[i+1]-x[i]|<epsilon then // в знаменателе используем вместо разности элементов эпсилон.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 05.04.2012, 13:29   #3
Alex.Pi
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Rin Посмотреть сообщение
Код:
const epsilon=0.000000000001;
.............................
if |x[i+1]-x[i]|<epsilon then // в знаменателе используем вместо разности элементов эпсилон.
хм, сейчас попробую. Спасибо
Alex.Pi вне форума Ответить с цитированием
Старый 05.04.2012, 15:22   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от Alex.Pi Посмотреть сообщение
Мне нужны именно кубические сплайны
Простите, с каких пор одинаковые абсциссы стали препятствием для построения кубического сплайна?..
120405.jpg

Цитата:
Сообщение от Rin
Код:
if |x[i+1]-x[i]|<epsilon then // в знаменателе используем вместо разности элементов эпсилон.
Ага, ага... И получаем неустойчивое решение...
Vago вне форума Ответить с цитированием
Старый 05.04.2012, 16:16   #5
Alex.Pi
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 14
По умолчанию

[QUOTE=Vago;1015261]Простите, с каких пор одинаковые абсциссы стали препятствием для построения кубического сплайна?..[\QUOTE]

не могли бы вы привести формулы. по которым посчитан этот график? И как это было реализовано в коде?

Последний раз редактировалось Alex.Pi; 05.04.2012 в 16:20.
Alex.Pi вне форума Ответить с цитированием
Старый 05.04.2012, 16:33   #6
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от Alex.Pi Посмотреть сообщение
не могли бы вы привести формулы. по которым посчитан этот график?
Мог бы.

Цитата:
Сообщение от Alex.Pi
И как это было реализовано в коде?
С помощью молотка и чьей-то м... На чистом C с использованием Win32 API для окошка и графиков.
Vago вне форума Ответить с цитированием
Старый 05.04.2012, 18:26   #7
Alex.Pi
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 14
По умолчанию

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

ЗЫ. Для графиков я использую gnuplot

для модераторов:
в принципе, ответ получен и тему можно закрыть, если она больше никому не интересна
Alex.Pi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка деления на ноль Сметуська Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.03.2011 18:13
Ошибка деления на ноль El_Blasto Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 16.12.2010 10:09
Delphi, ошибка деления на ноль, хотя знаменатель не ноль Эренка Помощь студентам 7 22.04.2010 15:56
Ошибка деления на ноль nolz Помощь студентам 3 07.03.2010 13:14
Проверка деления на ноль (Как проверить?) Moonka Помощь студентам 10 23.04.2007 19:41