Подгонка Gnuplot: особая матрица в заданном или особая матрица в обратном ртр

Я хотел бы объединить данные с gnuplot с параметром подгонки, который является интервалом подгонки. Это не работает даже на моем собственном примере:

Вот мой код:

fichier="test_fit_droite"
f1(x)=a1-b1*x
#f2(x)=a2-b2*log(1-x/Tc)

#f(x)=x<Tc ? f1(x):f2(x)
f(x)=f1(x)
Tc=8
w1=33
w2=2
a1=1
a2=1
b1=1
b2=1
plot fichier using ($1):($2)
fit [0:w1] f(x) fichier using ($1):($2) via w1, a1, b1

Вот мои данные:

1       9.3
2       12.8
3       15
4       18
5       21
6       24
7       27
8       30
9       33.2
10      36
11      39
12      42
13      45.9
14      48
15      51
16      54
17      59
18      60
19      63
20      66
21      69
22      72
23      75
24      78
25      81
26      84
27      87
28      90
29      115
30      20
31      320
32      40
33      23

И ошибка:

введите описание изображения здесь

Фактически у меня есть почти кривая y=3*x+6 для x<28, и после того, как я поместил данные, которые делают что-то совершенно случайное и неподходящее для y=3*x+6

Я хочу, чтобы gnuplot обнаружил, что должен остановить примерку после x=28, но не находит его.

Когда я ставлю a1=3, b1=-6, и я просто помещаю w1, gnuplot говорит "особая матрица в числах" и ничего не делает (останавливается на шаге 0)

Не могли бы вы помочь мне?

Спасибо!!

================== EDIT ========================

Теперь я хочу поместить свою функцию в объединение двух интервалов.

Вот мой код:

    f(x)=(x<Tc0-w1|x>Tc0+w2)?exp(a2)*1/((abs(x-(Tc0))**b2)):1/0
plot f(x), fichier_cv using (Tc0-w1 < $1 && $1 < Tc0+w2 ? 1/0 : $1):($2)
pause -1

fit f(x) fichier_cv using (Tc0-w1 < $1 && $1 < Tc0+w2 ? 1/0 : $1):($2) via Tc0, a2, b2

Я определил мои переменные Tc0 и т. Д. Выше.

Первые две строки работают отлично (я вижу график с "разрезом" посередине).

Но припадок возвращает мне это:

Максимум. количество точек данных, увеличенных до: 3072 Макс. количество точек данных, увеличенных до: 4608 Неопределенное значение во время оценки функции "fit_en_cours", строка 37: ошибка во время подгонки

Я не понимаю "неопределенное значение", потому что график работает отлично, и мой файл содержит значения за пределами [Tc0-w1;Tc0+w2]

Более того, я сделал это:

fit [7.56:12.9] f(x) fichier_cv using (Tc0-w1 < $1 && $1 < Tc0+w2 && $1 < 12 && $1 > 7.55 ? 1/0 : $1):($2) via Tc0, a2, b2

(7.55 и 12 - это минимальные и максимальные значения x моего файла данных), но он возвращает мне ту же ошибку.

Спасибо вам

0 ответов

Другие вопросы по тегам