【问题标题】:Parallel fitting on MathematicaMathematica 上的平行拟合
【发布时间】:2012-11-22 14:18:21
【问题描述】:

我的数据如下所示

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 来做,但我得到了几十个错误。你们知道这是怎么做到的吗?

感谢您的努力。

【问题讨论】:

标签: parallel-processing wolfram-mathematica curve-fitting data-analysis least-squares


【解决方案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}]

输出:

{FittedModel[1. -1.13164*10^-17 x],FittedModel[2. -2.26329*10^-17 x],拟合模型[1. -1.13164*10^-17 x],FittedModel[3.],FittedModel[1. -1.13164*10^-17 x]}

很可能,Mathematica 被您的数据数组 a 和 Table 语句中的拟合参数 a 弄糊涂了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    相关资源
    最近更新 更多