我有两个向量:
y:
[1] 1889 1528 1213 1009 912 777 783 708 644 716 707 644 634 624 625
[16] 574 616 569 573 577 565 585 528 572 511 494 555 491 520 518
[31] 476 454 470 440 450 465 436 403 448 473 429 427 434 429 448
[46] 407 425 386 414 399 415 385 381 404 430 385 418 407 390 375
[61] 393 410 386 359 410 367 378 367 362 382 392 378 403 353 376
[76] 357 439 378 395 357 398 379 337 348 342 387 362 365 361 363
[91] 359 363 379 392 330 376 366 376 363 350 319 332 328 400 369
[106] 343 401 359 365 357 398 367 344 383 377 362 405 407 384 362
[121] 361 355 358 380 371 364 410 355 370 341 373 386 339 388 365
[136] 368 351 360 379 349 358 333 359 334 369 326 373 370 335 382
[151] 381 339 344 378 367 361 312 348 356 362 357 386 337 378 386
[166] 358 376 350 354 374 383 339 352 387 351 383 354 386 388 351
[181] 355 348 400 379 389 366 370 352 353 369 359 366 357 386 346
[196] 325 362 378 344
and x:
x<-seq(150e-9,19950e-9,100e-9)
我知道它们之间存在指数关系,它的形式如下: Y = A * EXP(B * X)+ C
我正在尝试使用非线性最小二乘函数来拟合数据,但我不断收到错误:'nlsModel中的错误(公式,mf,start,wts): 初始参数估计的奇异梯度矩阵'
我的代码是:
plot(x,y)
mod <- nls(y ~ a*exp( b * x) + c, start = list( a=3000, b = 500000, c=200 ))
lines(x, predict(mod, list(x = x)))
我输入的参数是我知道的接近预期值的参数。有谁知道我在这里做错了什么?
我已经尝试了参数a,b和c的各种初始值,但我总是遇到某种错误。
任何帮助表示感谢。