Подобрать функцию к графику

Oleg4534

вот так кривулька выглядит:

Необходимо построить функцию F(A которая будет точно ложиться на график.
что известно о функции:
1) она очень простая (только операции + - / * и скорее всего, даже корня нет и состоит буквально из пары операций
2) где-то в районе 90-100 она пересекает абсциссу (т.е. не стремится к нулю, а пересекает)
3) данные обсчитаны на машине, но доступа к исходникам нет (т.е. в итоге должна получиться функция точь в точь совпадающая со вторым столбцом данных (я уже несколько зав-ей разгадал, осталась только эта вот
вот данные, по которым надо подобрать вид кривой и коэффициентов:
 
 
27 74,2
29 72,9
30 72,2
31 71,5
32 70,8
33 70
34 69,2
35 68,4
36 67,6
37 66,8
38 65,9
39 65
40 64,1
41 63,2
42 62,2
43 61,1
44 60
45 58,8
46 57,6
47 56,2
48 54,8
49 53,1
50 51
51 49,1
52 46
53 37
54 32,6
55 30
56 27,9
57 26,2
58 24,6
59 23,2
60 21,9
61 20,7
62 19,6
63 18,5
64 17,4
65 16,5
66 15,5
67 14,6
68 13,7
69 12,9
70 12
71 11,2
72 10,5
73 9,7
74 8,96
75 8,24
76 7,53
77 6,84
78 6,16
79 5,49
80 4,84
82 3,57

что-то с остальными я разобрался, а с этой вот торможу...
заранее благодарю за помощь

nicoletta

А я бы сказал, что это - кубическая парабола, причем лежащая на боку, т.е. A(B) = aB^3 + bB^2 + cB + d

Arthur8

Если повернуть твой график относительно точки 40 и 53 на твоем графике, это это будет какойннить тангенс, повернутый на 45 градусов, наверное с коэффициентом
имхо, надо написать у-е прямой вида у=-аx+b или что то в этом роде. И както впихнуть туда тангенс.
т.е. берется для прямой преобразование поворота на 45 против часовой, далее из прямой надо сделать тангенс

Arthur8

а мож и кубическая парабола... все от коэффициентов зависит...

nicoletta

Если B - x
A - y
регрессивный анализ как полинома дает
y(x)=-(2.5825952*10^(-12*x^8+(6.224271*10^(-10*x^7-(5.2454071*10^(-8*x^6+(1.5523251*10^(-6*x^5+(1.2213615*10^(-5*x^4-0.0015867*x^3+0.0530021*x^2-1.9887288*x+88.5491889
очень похоже. так что это - какой-то полином, с количеством членов и требуемой точностью предлагаю поиграть самостоятельно.

lenmas

Ты еще не сместил в центр этой штуковины. Может, и покрасивей получится :)

Oleg4534

Степени абсциссы выше 2 с вероятностью 90% отсутствуют.
И коэффициенты тоже должны красивые получиться.
Вечером постараюсь снять показания с другими коэффициентами (после того, как находится вид кривой коэффициенты подбираются на раз)
Примеры зависимостей(те, что уже подобраны):
F(x)=-a/x+b
F(x)=(x-a)/(x+b)
пока что пытаюсь подобрать что-нибудь вроде F(x)=-(корень(x*x+a)-x)*x , но как я уже говорил, корни скорее всего отсутствуют.

seeknote

а чем проблема составить систему уравнений от-но x и y со степенями от -2 до +2:
cij*x_i(k)*y_j(k) = b_k
25 неизвестных - уравнений у тебя куда больше
потом решить эту систему в той же математике?

pita

Скоммунизди из локарки Origin и установи его.
2. Вгони туда свои данные.
3. Поищи в менюшках пункт а-ля "Approximation"
4. ?
5. PROFIT

Oleg4534

1. Скоммунизди из локарки Origin и установи его.
А чем по-твоему построен график из первого поста?
и я уже 3 года как не в локалке.

seeknote

ну?

Oleg4534

3. Поищи в менюшках пункт а-ля "Approximation"
4. ?
5. PROFIT
Я там не разобрался во всей этой абракодабре :( , поэтому запросил "помощь зала".
ничем кроме мнк ни в жисти не пользовался =(

Oleg4534

Ну давай, объясни мне, профит
берём данные:

50 -428,04
103 -156,3
156 -69,24
171 -54,4
196 -34,7
203 -30,06
216 -22,23
239 -10,47
259 -1,94
263 -0,39
264 -0,01
269 1,85
272 2,93
274 3,64
287 8,07
302 12,58
317 16,71
332 20,48
347 23,91
362 27,07
377 29,97
385 31,42
400 34
408 35,29
423 37,58
438 39,72
443 40,4
458 42,35
476 44,53
506 47,82
511 48,33
516 48,83

вставляем в ориджн
строим график.
жмем Analysis -> Fitting -> Nonlinear Curve Fit -> Open Dialog
там выбираем
Category = Rational
Function = Rational4
и что за уйню он мне выдает?

красный график подобрала машина, черный - я ручками.
потому и пишу тут, прошу вот совета, может кто узнаёт эту загогульку из первого поста в лицо.

vizier

Необходимо построить функцию F(A которая будет точно ложиться на график.
имхо неблагодарное занятие. лучше зафить полиномом с нужной точностью
зы
а я почему-то про экпоненты подумал

def app(x, p): return p[0]*(p[1]-x) + p[2]*exp(p[3]*(p[4]-x/(1+exp(p[3]*(p[4]-x

Oleg4534

нет. нужна именно функция, потому что потом от неё пляска пойдёт.
я уже почти подобрался к решению, вот очень похожая штука:

осталось только коэффициенты подобрать

nicoletta

Ну так, в чем проблема? неизвестных 5, уравнений - не один десяток. Школьную алгебру лень вспоминать?

Oleg4534

продифференцировал, вычел константу, увидел знакомую кривульку 1/(а+х^2)
в общем косяк, походу это и правда арктангенс :shocked: :ooo: :ooo:

vtdom79

а кусочно-линейная чем не нравится? Просто все соседние точки отрезками соединить

seeknote

а кусочно-линейная чем не нравится? Просто все соседние точки отрезками соединить
:grin: :grin: :grin:

mtk79

C*exp(-a^2/(100^2-x^2 — c пересечением нуля в т.100
хотя график более похож на f(52)+D*arctg(-C*(x-52 или на f(52)+D*Arth(-C*(x-52
Оставить комментарий
Имя или ник:
Комментарий: