2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Площадь под сплайном Mathematica
Сообщение02.11.2015, 09:06 
Аватара пользователя


15/02/15
13
Здравствуйте. Имеется сплайн по набору данных. Как в Mathematica вычислить площадь под ним в заданном интервале по оси абсцисс?
Изображение

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение02.11.2015, 20:01 
Заслуженный участник
Аватара пользователя


30/01/09
7135
А проинтегрировать?

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение03.11.2015, 12:52 
Аватара пользователя


15/02/15
13
мат-ламер в сообщении #1069638 писал(а):
А проинтегрировать?

да, спасибо, за совет! а кто-нибудь знает как получить эти интегралы аналитически? То есть сумму интегралов склеенных многочленов по соответствующим интервалам без учета дефекта сплайна?

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение03.11.2015, 13:00 
Заслуженный участник


27/04/09
28128
Ничего, что вы даже вид, в котором ваш сплайн представлен, не показали? Давайте мы ещё угадаем, что вы ели на завтрак. :wink:

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение03.11.2015, 13:35 
Аватара пользователя


15/02/15
13
arseniiv в сообщении #1069812 писал(а):
Ничего, что вы даже вид, в котором ваш сплайн представлен, не показали? Давайте мы ещё угадаем, что вы ели на завтрак. :wink:

Хм.. сплайн получил по листу данных, как его представить нужно?. Я в mathematica 2,5 дня. Думал, может есть стандартные команды вроде: RazlojitSplineNaMnogo4leni[f[x],{x,0,10}], которые работают без всяких представлений. Я еще не завтракал.

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение03.11.2015, 15:55 
Заслуженный участник


27/04/09
28128
c0smas в сообщении #1069825 писал(а):
Хм.. сплайн получил по листу данных, как его представить нужно?
Ну, как вы его в Mathematica представили? График же построили каким-то образом. (Или это не из неё график? Мне просто показалось.) Может оказаться проще численно проинтегрировать.

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение03.11.2015, 16:54 
Аватара пользователя


15/02/15
13
arseniiv в сообщении #1069875 писал(а):
c0smas в сообщении #1069825 писал(а):
Хм.. сплайн получил по листу данных, как его представить нужно?
Ну, как вы его в Mathematica представили? График же построили каким-то образом. (Или это не из неё график? Мне просто показалось.) Может оказаться проще численно проинтегрировать.

получил с набора данных. Представил вот так:
plist = {{x1,y1},....,{xn,yn}}; - или вам прям циферки нужны? не пойму...
f = Interpolation[plist, Method -> "Spline", InterpolationOrder -> 2];
дальше можно численно проинтегрировать, да:
NIntegrate[f[x], {x, x1, x2}]
Но интересно не просто число получить, а расписать сплайн на сумму многочленов в определенных интервалах. Ну а дальше интегрировать. Есть такая фича в mathematica, как раскладка сплайна на аналитические функции?

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение03.11.2015, 17:34 
Заслуженный участник


27/04/09
28128
Ага, вот с этим уже можно работать! :-)

В этом случае используется (по крайней мере, в версии 8.1) BSplineFunction (можно выкопать её в представлении f как f[[4, 1]]). А вот внутреннее представление последней я чего-то не нашёл. Можно поугадывать. А вот базисные функции готовые есть — BSplineBasis, применение PiecewiseExpand покажет многочлены.

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение03.11.2015, 20:13 
Заслуженный участник
Аватара пользователя


30/01/09
7135
arseniiv в сообщении #1069915 писал(а):
А вот базисные функции готовые есть — BSplineBasis
, применение PiecewiseExpand покажет многочлены.

Может достаточно и базисных. С крайними В-сплайнами надо будет поаккуратнее.

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение03.11.2015, 22:27 
Заслуженный участник


27/04/09
28128
мат-ламер в сообщении #1069964 писал(а):
Может достаточно и базисных.
Ага, и на чего их умножать? Коэффициенты-то неизвестны (нам — а Mathematica знает, как их записала, и использует).

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение04.11.2015, 19:16 
Заслуженный участник
Аватара пользователя


30/01/09
7135
В крайнем случае, если нет доступа к коэффициентам сплайна и прмежуточных полиномов, то можно вставить между узлов сплайна ещё по точке, вычислить значение функции в ней, а площадь под параболой
Цитата:
InterpolationOrder -> 2
легко находится по её значениям в трёх точках.

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение04.11.2015, 19:18 
Заслуженный участник


27/04/09
28128
«Просто площадь» как раз легко считается упомянутым NIntegtate.

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение04.11.2015, 22:31 
Аватара пользователя


15/02/15
13
arseniiv в сообщении #1069915 писал(а):
Ага, вот с этим уже можно работать! :-)

В этом случае используется (по крайней мере, в версии 8.1) BSplineFunction (можно выкопать её в представлении f как f[[4, 1]]). А вот внутреннее представление последней я чего-то не нашёл. Можно поугадывать. А вот базисные функции готовые есть — BSplineBasis, применение PiecewiseExpand покажет многочлены.

ООО! Спасибо!

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение05.11.2015, 00:48 
Заслуженный участник


27/04/09
28128
Хорошо, если это поможет. :-)

 Профиль  
                  
 
 Re: Площадь под сплайном Mathematica
Сообщение31.01.2016, 15:29 
Аватара пользователя


15/02/15
13
Друзья, опять вопрос про площади под кривыми =)
Есть три распределения случайных величин: InfDist, CanDist, FibDist. Нашел их с помощью SmoothKernelDistribution[data]. Чтобы построить ROC-кривую, построил такой график:
ParametricPlot[{NIntegrate[PDF[CanDist, x], {x, t,4}], (NIntegrate[PDF[InfDist, x], {x, t, 4}] +NIntegrate[PDF[FibDist, x], {x, t, 4}])/2}, {t, 0, 4}]
Теперь мне нужно вычислить площадь под этой кривой (AUC). Подскажите, как это сделать?
Изображение

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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