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
7067
А проинтегрировать?

 Профиль  
                  
 
 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
7067
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
7067
В крайнем случае, если нет доступа к коэффициентам сплайна и прмежуточных полиномов, то можно вставить между узлов сплайна ещё по точке, вычислить значение функции в ней, а площадь под параболой
Цитата:
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, Супермодераторы



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

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


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

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