Имам следната крива (примерни данни, които са донякъде оскъдни, но трябва да разберат целта). Има четири точки по тази крива (указани със стрелките), които бих искал да използвам като референтни точки. Тези точки трябва да бъдат изместени с определени количества (x1
, x2
, x3
и x4
съответно) в посоката на стрелката. Тези четири местоположения винаги ще трябва да бъдат преместени с конкретни суми. Въпреки това не е толкова лесно, колкото преместването на тези конкретни точки, защото трябва да поддържам цялостната форма на кривата.
Има ограничения, които винаги ще се поддържат. Стрелката, свързана с x2
, никога няма да се припокрие със стрелката, посочена от x1. Стрелката, свързана с x3
, никога няма да надмине тази на x2
. Стрелката, свързана с x4
, никога няма да надмине тази, свързана с x3
. Кривата винаги ще има тази обща форма и винаги ще бъде изместена в тези 4 точки.
С други думи, стрелките в изображението по-долу са представителни примери за начина, по който тази крива трябва да бъде изместена.
Как мога да направя това? Една идея, която имах, беше да напасна някакъв вид сплайн и след това по някакъв начин да трансформирам този сплайн по елегантен начин въз основа на тези точки. Но наистина не съм сигурен.
Ето данните от този пример в Matlab
x = [6; 7; 7.2; 7.3; 7.5; 7.7; 7.9; 8; 8.13; 8.2; 8.21; 8.31; 8.4; 8.41; 8.45; 8.47; 8.5; 8.6; 8.8; 9; 9.6; 10];
y = [0; 0.01; 0.02; 0.1; 1; 1.1; 0.9; 0.6; 0; -0.5; -1; -1.1; -0.93; -0.9; -0.7; -0.6; -0.2; 0; 0.1; 0.12; 0; 0];
plot(x,y);
Пример за крайна цел Можете да видите как цялата крива се е изместила с посочените количества, но цялата форма се запазва.