2014 dxdy logo

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

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




 
 Mathematica. Интегрирование, интерполяция и ед. измерения
Сообщение26.01.2016, 07:36 
Аватара пользователя
Здравствуйте, у меня есть следующие данные (зависимость молярной теплоёмкость воды от температуры воды):
Код:
list = {{0., 4.217}, {1., 4.213}, {2., 4.21}, {3., 4.207}, {4., 4.205}, {5., 4.202}, {6., 4.2}, {7., 4.198}, {8., 4.196}, {9., 4.194}, {10., 4.192}, {11., 4.191}, {12., 4.189}, {13., 4.188}, {14., 4.187}, {15., 4.186}, {16., 4.185}, {17., 4.184}, {18., 4.183}, {19., 4.182}, {20., 4.182}, {21., 4.181}, {22., 4.181}, {23., 4.18}, {24., 4.18}, {25., 4.18}, {26., 4.179}, {27., 4.179}, {28., 4.179}, {29., 4.179}, {30., 4.178}, {31., 4.178}, {32., 4.178}, {33., 4.178}, {34., 4.178}, {35., 4.178}, {36., 4.178}, {37., 4.178}, {38., 4.178}, {39., 4.179}, {40., 4.179}, {41., 4.179}, {42., 4.179}, {43., 4.179}, {44., 4.179}, {45., 4.18}, {46., 4.18}, {47., 4.18}, {48., 4.18}, {49., 4.181}, {50., 4.181}, {51., 4.181}, {52., 4.182}, {53., 4.182}, {54., 4.182}, {55., 4.183}, {56., 4.183}, {57., 4.183}, {58., 4.184}, {59., 4.184}, {60., 4.185}, {61., 4.185}, {62., 4.186}, {63., 4.186}, {64., 4.187}, {65., 4.187}, {66., 4.188}, {67., 4.188}, {68., 4.189}, {69., 4.189}, {70., 4.19}, {71., 4.19}, {72., 4.191}, {73., 4.192}, {74., 4.192}, {75., 4.193}, {76., 4.194}, {77., 4.194}, {78., 4.195}, {79., 4.196}, {80., 4.196}, {81., 4.197}, {82., 4.198}, {83., 4.199}, {84., 4.2}, {85., 4.2}, {86., 4.201}, {87., 4.202}, {88., 4.203}, {89., 4.204}, {90., 4.205}, {91., 4.206}, {92., 4.207}, {93., 4.208}, {94., 4.209}, {95., 4.21}, {96., 4.211}, {97., 4.212}, {98., 4.213}, {99., 4.214}, {100., 4.216}};
Я добавляю к этим данным единицы измерения и интерполирую:
Код:
f = Interpolation@MapAt[Quantity[#1, ("Kilojoules")/("Kelvins" "Moles")] &, MapAt[Quantity[#1, "DegreesCelsius"] &, list, {;; , 1}], {;; , 2}];
Теперь интегрирую двумя способами:
Изображение
Надеюсь на Вашу помощь. Есть идея, что подобное поведение в первом случае связано с разной точностью у входных данных, т. к.:
Изображение

 
 
 
 Re: Mathematica. Интегрирование, интерполяция и ед. измерения
Сообщение26.01.2016, 16:15 
Тут скорее всего проблема в том, что пределы интегрирования не являются числовыми величинами. И вообще, зачем такие сложности, чем не устраивает безразмерная функция f = Interpolation[list]?

 
 
 
 Re: Mathematica. Интегрирование, интерполяция и ед. измерения
Сообщение26.01.2016, 16:30 
Аватара пользователя
...которая (проверил) в данном случае никаких ошибок при интегрировании не пишет.

 
 
 
 Re: Mathematica. Интегрирование, интерполяция и ед. измерения
Сообщение27.01.2016, 08:58 
Аватара пользователя
Ответ «делать по другому» самоцелью создания темы не был. Я планировал услышать что-то подобное:
    — вы всё делаете неправильно, правильно так: ...
    — вы всё делаете правильно, это баг...
    — вы делаете правильно, но есть такая особенность: ...
Vince Diesel, ранее использовал первый вариант синтаксиса (с размерными пределами интегрирования) и получал удобоваримый ответ, касательно безразмерной функции тут у меня несколько соображений: мне удобно пользоваться единицами измерений; я заплатил деньги за использование ед. измерений; мне интересно разобраться с подобным поведением программы.

 
 
 
 Re: Mathematica. Интегрирование, интерполяция и ед. измерения
Сообщение27.01.2016, 09:04 
Аватара пользователя
Qazed, раз уж здесь все такие злые :roll:, попробуйте поспрошать в этом ВК-сообществе (не помню, упоминал ли я раньше о нём в вашем присутствии; там есть несколько очень крутых специалистов).

 
 
 
 Re: Mathematica. Интегрирование, интерполяция и ед. измерения
Сообщение27.01.2016, 09:25 
Аватара пользователя
Спасибо, Aritaborian, у меня был опыт задавания подобных вопросов в этом сообществе. «Крутые специалисты» их игнорируют (как правило), стандартный ответ от других участников: «делайте по-другому», — после чего они предложат работающий (выше уже был предложен), но другой (выше) вариант кода. Да и аккаунта в ВК у меня уже нет. Попробую обратиться в Mathematica Stack Exchange.

 
 
 
 Re: Mathematica. Интегрирование, интерполяция и ед. измерения
Сообщение27.01.2016, 13:56 
Аватара пользователя
Не стоит закавычивать и тем самым оскорблять крутых специалистов, Qazed. В упомянутом сообществе на самом деле есть и сертифицированные инструкторы и даже самые что ни на есть разработчики ядра Wolfram Mathematica. И они охотно и порою очень подробно отвечают на вопросы. Да, не на все вопросы. Это коммьюнити не является официальной техподдержкой и существует на добровольных началах. Причины, по которым вам не ответили, могут быть разными.
Qazed в сообщении #1094568 писал(а):
Да и аккаунта в ВК у меня уже нет.
Завести новый — не проблема.
Qazed в сообщении #1094568 писал(а):
Попробую обратиться в Mathematica Stack Exchange.
А вот это — очень хорошая идея.

 
 
 
 Re: Mathematica. Интегрирование, интерполяция и ед. измерения
Сообщение28.01.2016, 03:54 
Аватара пользователя
Aritaborian, я и не думал подвергать сомнению чьи-то умственные способности, ей-боху об этом не думал и уж тем более так не считаю. Моя ирония заключалась в том, что «крутые специалисты» (я цитирую вас) нечасто отвечают на подобные вопросы, следовательно от их квалификации качество ответа мало зависит.
Единственный случай ответа мне оного был следующим. Сертифицированный специалист ответил, но его решение решением не оказалось, я сообщил об этом с указанием того, что проблема не решена и повторно попросил помощи. Никакой реакции от специалиста не последовало. Решение мне подсказали другие участники, но оно было принципиально другим.

 
 
 
 Re: Mathematica. Интегрирование, интерполяция и ед. измерения
Сообщение27.08.2016, 19:00 
Аватара пользователя
Кажется в таких случаях пишут что-то вроде "UPD", излаживаю свои изыскания кратенько...

В версии 11 кое-что починили:
Изображение
Кое-что испортили:
Изображение
Так испортили, что должно быть стыдно: Plot Functions Using Units
Изображение
Хвалёные возможности по перепроверке ответов. Как известно, Mathematica предпочитает вообще ничего не отвечать, чем давать неверный ответ.
Изображение
P. S. Зато теперь может построить график тангенса с нормальными разрывами.
P. P. S. За это просят деньги.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group