我有一些数据适合。功能如下:
y = a*exp(b*x) + c*exp(d*x)
,
其中" a"," b" " C"和" d"是系数
我想使用gnm
包来适应双指数函数。但结果似乎并不好。
还有其他任何包吗?
Java或其他语言能做到吗?
library(gnm);
data = read.table("F:\\AP\\R\\data.txt", header = T);
x <- data$X1;
y <- data$Y1;
set.seed(1);
saved.fits <- list();
for(i in 1:60){
saved.fits[[i]] <- suppressWarnings(gnm(y ~ Exp(1+x, inst = 1)+ Exp(1+x, inst =2),verbose = FALSE))
}
table(round(unlist(sapply(saved.fits, deviance)), 4))
X1:
1
2
3
4
五
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
三十
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114个
Y1:
9514.833
9463.002
9386.4277
9320.292
9252.0957
9187.4775
9122.5947
9068.1279
9013.3232
8930.418
8875.416
8789.1973
8727.9355
8649.0547
8600.0693
8529.3359
8490.0801
8421.7842
8371.4688
8303.041
8256.1719
8193.1416
8159.1553
8091.3022
8028.9263
7966.6748
7893.2056
7819.4702
7710.0962
7613.6069
5609.2266
5573.5923
5537.665
5501.6279
5477.5825
5450.0518
5435.9521
5402.5327
5379.1743
5348.1226
5320.5049
5282.2158
5263.5146
5236.125
5216.4038
5188.0493
5170.293
5142.6416
5114.8125
5087.1606
5059.5898
5032.0352
5001.5537
4979.8364
4951.5854
4932.1138
4903.7363
4888.1841
4869.7168
4854.7617
我也有一个问题,我可以在Web服务器中使用Matlab而不是R.因为我必须通过滤波,平滑,拟合等方法处理一些电信号。但是,当并发任务增加时,我担心Matlab liabray会崩溃。