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
10744
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
11314
Россия, Москва
svv
Полезный класс.
Можно добавить ещё два признака:
  • второе появление в левой части без промежуточного появления в правой;
  • непоявление в правой части до конца программы после появления в левой части.
(Стандартные методы оптимизации использования переменных.)
Это хоть и не ошибки, но могут свидетельствовать о наличии других ошибок в программе (обычно с индексами и их пределами).

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


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

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


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

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

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

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

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

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


27/04/09
28128

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

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

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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