Доброго времени суток!
Прошу по возможности помочь.
Имеются два массива чисел Y и Х , собственно значения функции в точках Х. Необходимо найти значения функции в промежуточных точках, т.е. интерполировать.
Используя Mathcad, всё получается очень здорово
yy= cspline / pspline (x,y)
y(t)= interp(yy,x,y,t)
Я могу найти значения функции в любой! точке t [min(x),max(x)]
То же самое я хочу сделать теперь в MatLab'е
Т.к. я не совсем хорошо владею данный пакетом, возникли сложности.
Как я понял нужно использовать нечто вроде этого:
yy=interp1(x,y,xi); - вот первая проблема необходимо использовать заданные пользователем значения xi,
Соответственно у меня на выходе массив от 1 до № max(xi).
И хочу я получить значение yy в т. N.
yy(N)=... и я получаю элемент массива yy с номером N, а как мне получить само значение. Ладно еще если можно внести соответствие yy(N-первый элемент xi), тогда еще нормально. А промежуточные значения, скажем xi=1:10
а нужно yy(5.2), т.е значение ф-ции Y в точке 5,2 ( в Mathcad такое возможно)
Конкретный пример
Код:
K_sigma_add_y=[1 1 .99 .98 .97 .94 .85 .8 .7 .58 .5 .42 .42 .4 .39 .38 .375 .365 ...
.37 .38 .385 .4 .44 .5 .54 .565 .6 .65 .66 .7 .7 .725 .73 .77 .8 .83 ...
.84 .86 .865 .9 .917 .92 .925 .93 .935 .94 .95 .96 .97 .98 .98 .99 1 1];
K_sigma_add_x=[1e-4 5e-4 1e-3 2e-3 4e-3 6e-3 1e-2 2e-2 4e-2 6e-2 8e-2 1e-1 ...
.15 2e-1 .3 4e-1 5e-1 6e-1 8e-1 9e-1 1 2 4 6 7 8 9 10 15 20 25 30 35 ...
45 50 60 65 75 85 95 100 120 150 200 250 300 350 400 500 600 700 800 900 1000 ];
Нужно найти значение ф-ции К_сигма в любой точке, как видите х очень широко варьируется.
Пока я вижу только такой вариант
даже если сделать так xiKsigmaadd=1e-4:1e-4:1000; ну и проинтерполировать interp1, то на выходе будет массив с номерами от 1 до ... и как в таком случае получить значение функции в 0,058 например?
Хелп читал, Дьяконова (тот же хелп но на русском) тоже читал. Ничего соответствующего не нашел. Может плохо читал. Почему-то уверен что такой фокус можно проделать в Matlabe (раз уж можно в Маткаде).
Заранее спасибо.
надеюсь проблему описал как можно более полно.
-- Сб дек 04, 2010 21:55:27 --Ну вот...
стоило написать на форум стало всё понятно
Ответ таков yy=interp1(x,y,координата искомого значения функции, метод)
Может кому-нибудь понадобиться, если модераторы решат удалить я нисколько не обижусь.