Параллельная подгонка на Mathematica

У меня есть данные, которые выглядят следующим образом

data=
Table[
    Table[
            a[[i]]*j+1,
        ,{j,dataLength}]
    ,{i,numOfDatasets}]

Я хотел бы сопоставить эти наборы данных с NonlinearModelFit[]

Table[
    NonlinearModelFit[data[[i]], a x + b, {a,b},x]
,{i,NumberOfDatasets}]

Функция, которую я хотел бы подогнать, не является линейной, но это всего лишь пример.

Моя проблема в том, что мне нужно распараллелить такую ​​операцию. Я пытался сделать это с помощью ParallelTable, но получаю десятки ошибок. Вы, ребята, знаете, как это делается?

Спасибо за любые усилия.


person The Quantum Physicist    schedule 22.11.2012    source источник
comment
Попробуйте опубликовать свой вопрос на нашем дочернем сайте Mathematica:   -  person Dr. belisarius    schedule 22.11.2012


Ответы (1)


После переименования вашего исходного массива a в arr и простого написания ParallelTable у меня работает:

dataLength = 10
numOfDatasets = 5
arr = Table[RandomInteger[i], {i, 1, numOfDatasets}]
data = Table[Table[arr[[i]], {j, dataLength}], {i, numOfDatasets}]
ParallelTable[NonlinearModelFit[data[[i]], a x + b, {a, b}, x], {i, numOfDatasets}]

Выход:

{Подходящая модель[1. -1,13164*10^-17 х],Подходящая модель[2. -2,26329*10^-17 х],подходящая модель[1. -1,13164*10^-17 x],Подходящая модель[3.],Подходящая модель[1. -1,13164*10^-17 х]}

Скорее всего, Mathematica запуталась в вашем массиве данных a и подходящем параметре a в вашем операторе Table.

person TemplateRex    schedule 24.01.2013