2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Интерполяция сплайнами
Сообщение04.06.2016, 11:46 
Заслуженный участник


11/05/08
32166

(Оффтоп)

Кстати, вопрос на засыпку: а почему это на рисунках вершинки графиков такие срезанные?...

(я время от времени подбрасываю студентам подобные вопросики)

 Профиль  
                  
 
 Re: Интерполяция сплайнами
Сообщение04.06.2016, 11:57 


28/02/15
52
svv в сообщении #1128807 писал(а):
Выход: написать два последовательных цикла. В одном инициализировать массивы x и y. А во втором всё остальное, когда x и y уже сформированы.

Вероятно, в этих ошибках и дело: у меня после исправления кривая стала намного красивее.

Точно! Теперь всё получилось!

(Оффтоп)

Только угадает ли препод, где какая линия?
Изображение

 Профиль  
                  
 
 Re: Интерполяция сплайнами
Сообщение04.06.2016, 12:03 
Заслуженный участник
Аватара пользователя


23/07/08
10707
Crna Gora
В таких случаях я для проверки смещаю один график вверх на небольшую константу, в данном случае подойдёт $0.03$.

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

 Профиль  
                  
 
 Re: Интерполяция сплайнами
Сообщение04.06.2016, 12:04 
Заслуженный участник


11/05/08
32166

(Оффтоп)

byulent в сообщении #1128813 писал(а):
Только угадает ли препод, где какая линия?

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

 Профиль  
                  
 
 Re: Интерполяция сплайнами
Сообщение04.06.2016, 13:48 
Заслуженный участник


20/08/14
11252
Россия, Москва
svv
Полезный класс.
Можно добавить ещё два признака:
  • второе появление в левой части без промежуточного появления в правой;
  • непоявление в правой части до конца программы после появления в левой части.
(Стандартные методы оптимизации использования переменных.)
Это хоть и не ошибки, но могут свидетельствовать о наличии других ошибок в программе (обычно с индексами и их пределами).

 Профиль  
                  
 
 Re: Интерполяция сплайнами
Сообщение04.06.2016, 17:57 
Заслуженный участник
Аватара пользователя


23/07/08
10707
Crna Gora
Здорово!
Чтобы совсем уж «затянуть гайки», такими можно сделать и простые переменные, а не только элементы массивов. Так и видится параметрический класс, который каждый встроенный тип превращает в жёстко контролируемый. Программа взвоет!

 Профиль  
                  
 
 Re: Интерполяция сплайнами
Сообщение04.06.2016, 18:34 
Заслуженный участник


20/08/14
11252
Россия, Москва

(Контроль переменных)

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

(Мелкий совет по отладке)

svv
А если будете подобные методы контроля применять не разово, а часто и в своих программах, то удобно сделать контроль отключаемым по #define/if[n]def. Тогда после отладки меняете пару символов и после перекомпиляции получаете нормальную быструю программу. Часто в среде уже есть переменная DEBUG, осталось лишь её проверить. Собственно это стандартный подход ... :-)

 Профиль  
                  
 
 Re: Интерполяция сплайнами
Сообщение04.06.2016, 21:36 
Заслуженный участник


27/04/09
28128

(Холивар моде он)

Вообще нормальные компиляторы нормальных языков всё (или почти всё) это проверяют сами собой и предупреждают. Или даже ошибкой зовут.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: tolstopuz


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group