1

Тема: Знайти коефіцієнти функції [цікава задача]

Доброго часу панове (і пані теж). В результаті деякого дослідження є імпірично отримані певні дані, зведені в табличку.

Самі дані

1338
1325
1311
1298
1281
1265
1246
1229
1209
1190
1170
1148
1126
1104
1080
1057
1033
1009
984
960
935
910
886
861
836
811
786
762
738
712
688
664
639
616
592
569
547
524
503
483
461
443
423
405
388
371
356
342
330
312
300
290
280
270
262
256

Треба знайти функцію від часу (час можна рахувати від 1 до 55). Забігаючи трошки вперед скажу, що "достатньо" точно цю задачу вже вирішив, (достатньо для моїх умов), але цікаво чи можливо її вирішити точніше, і без брутфорсу (хоча можна і з брутформом, просто лінь писати).

Моє рішення, імпіричне

Я побудував графік, і на око підбирав коефіцієнти, максимальна розбіжність складає 5.201;


t = 1,2..55;
coef1 = 600,0;
coef2 = 0,042;
coef3 = 2,065;
coef4 = 824,0;

x(t) = coef1 * sin(x*coef2 + coef3) + coef4;

Результат роботи функції

1.34e3
1.326e3
1.312e3
1.297e3
1.281e3
1.265e3
1.247e3
1.229e3
1.21e3
1.19e3
1.17e3
1.149e3
1.128e3
1.106e3
1.083e3
1.06e3
1.037e3
1.013e3
989.002
964.635
940.02
915.201
890.22
865.123
839.954
814.756
789.575
764.454
739.438
714.572
689.898
665.461
641.303
617.468
593.997
570.932
548.313
526.181
504.573
483.529
463.086
443.279
424.143
405.713
388.021
371.097
354.972
339.675
325.232
311.668
299.008
287.274
276.487
266.665
257.827

Збіжність

1.793
1.467
1.256
-0.816
0.276
-0.437
1.072
-0.165
0.884
0.253
-0.025
1.088
1.627
1.63
3.137
3.187
3.82
4.077
5.002
4.635
5.02
5.201
4.22
4.123
3.954
3.756
3.575
2.454
1.438
2.572
1.898
1.461
2.303
1.468
1.997
1.932
1.313
2.181
1.573
0.529
2.086
0.279
1.143
0.713
0.021
0.097
-1.028
-2.325
-4.768
-0.332
-0.992
-2.726
-3.513
-3.335
-4.173



Подякували: mamkin haker, 0xDADA11C72

2 Востаннє редагувалося HetmanNet (02.12.2021 21:02:58)

Re: Знайти коефіцієнти функції [цікава задача]

Chemist-i написав:

x(t) = coef1 * sin(x*coef2 + coef3) + coef4;

Здається одруківка у вас:
x(t) = coef1 * sin(t*coef2 + coef3) + coef4;
Взагалі ваша формула нагадує ряд Фур'є, точніше лише форму коли виключно синусна складова присутня та перша гармоніка. Тож скоріше всього ваш набір даних належить до якоїсь періодичної функції. Тому щоб підвищити точність треба додати косинусну складову та підвищувати кількість гармонік.

Подякували: Chemist-i, leofun012