Нелинейная регрессия на Scilab - PullRequest
0 голосов
/ 22 сентября 2018

Я новичок в scilab (я использую 5.5.2), и мне нужно сделать нелинейную регрессию.У меня есть набор данных точек, который ведет себя как синусоида, поэтому я хочу найти параметры этой синусоиды.

Вот мой набор данных:

t1=[11800, 11805, 11810, 11817, 11824, 11829, 11834, 11839, 11844, 11849, 11854, 11859, 11866, 11871, 11878, 11883, 11888, 11893, 11898, 11903, 11908, 11915, 11920, 11928, 11933, 11938, 11943, 11948, 11953, 11958, 11965, 11970, 11975, 11980, 11987, 11992, 11997, 12002, 12007, 12014, 12019, 12024, 12029, 12037, 12042, 12047, 12052, 12057, 12063, 12069, 12074, 12079, 12084, 12091, 12096, 12101, 12106, 12111, 12119, 12123, 12128, 12133, 12138, 12146, 12151, 12156, 12161, 12169, 12174, 12179, 12184, 12188, 12193, 12201, 12206, 12211, 12218, 12223, 12228, 12233, 12238, 12243, 12251, 12256, 12260, 12268, 12273, 12278, 12283, 12288, 12292, 12297, 12302, 12310, 12317, 12322, 12327, 12332, 12337]


v1=[
0.36
0.59
0.81
0.92
0.90
0.76
0.54
0.31
0.17
0.19
0.36
0.59
0.81
0.92
0.90
0.76
0.54
0.31
0.17
0.19
0.36
0.59
0.81
0.92
0.90
0.77
0.54
0.31
0.17
0.19
0.35
0.59
0.81
0.92
0.90
0.77
0.55
0.32
0.18
0.19
0.35
0.59
0.80
0.92
0.90
0.77
0.55
0.32
0.17
0.19
0.35
0.59
0.80
0.92
0.90
0.79
0.55
0.32
0.18
0.18
0.35
0.59
0.80
0.92
0.92
0.79
0.57
0.32
0.18
0.18
0.35
0.58
0.80
0.92
0.92
0.79
0.57
0.32
0.18
0.18
0.35
0.58
0.80
0.92
0.92
0.79
0.57
0.34
0.18
0.18
0.34
0.58
0.80
0.92
0.92
0.80
0.57
0.34
0.18
]

Чтобы сделать нелинейныйрегрессия Я добавил набор инструментов, который содержит функцию nlinregr, и назвал ее так:

fun='A*sin(W*t1+P)'
dfun='[sin(W*t1+P), A*t1*cos(W*t1+P), A*cos(W*t1+P)]'

[p, yhat,stat]=nlinregr([t1 v1], 't1 v1', fun, dfun,'A W P', 'v1')

С «забавной» синусоидальной функцией, которую я пытаюсь подогнать, «dfun» матрица, составленная из аналитической производной в зависимости отна моих параметрах A, W и P.

При выполнении этой функции я получаю сообщение об ошибке «Несогласованное умножение», но через 2 часа я все еще не могу указать, где проблема ....

Может кто-нибудь помочь мне, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...