Рис.1.34. Данные эксперимента и расчетный график

Зная коэффициенты полинома, можно функцией polyval вычислить значение полинома при любом значении его аргумента (то есть получить сплошную расчетную кривую, проходящую через отдельно расположенные экспериментальные точки).

Если же требуется подобрать такую зависимость, которая не содержит некоторые степени (например, y=3x5+6x3+x+65) то тем самым требуется найти минимум функции. Поясним это на примере. Пусть требуется функция вида y=c1+c2x2+c3x3, тогда, используя функцию fminsearch(‘fname’,c) получим вектор коэффициентов.

Однако в функцию fminsearch следует передавать не вышеописанную функцию у(х), а переделанный ее вариант вида  yiexperimental-(c1+c2xi2+c3xi3). Тогда минимум функции будет достигнут в случае, если вычисленные ее значения практически совпадают с экспериментальными, то есть идеально описывают экспериментальные данные. Опишем для этого функцию exGl.

function s=exGl(c)

global x;

global y;

s=0;

for i=1:length(x)

   s=s+(y(i)-c(1)-c(2)*x(i)^2-c(3)*x(i)^3)^2;

end

end

 
global x; global y; c=[2, 1, 0];

Сначала определяем вектор предполагаемых приблизительно значений с (если его неудачно выбрать то ответ не получится). Потом объявляем переменные х и у глобальными.

     

Затем вводим экспериментальные данные. После этого запускаем функцию fminsearch. Полученный от нее вектор значений с используем для построения (рис.1.35) расчетной кривой. Потом сравниваем, насколько точно кривая идет через экспериментальные точки.

Рис.1.34. Расчетная кривая идет между экспериментальными точками.

function Start_3

x=[10.1 10.2 10.3 10.8 10.9 11 11.1 11.4 12.2 13.3 13.8 14 14.4 14.5 15 15.6 15.8 17 18.1 19];

y=[24 36 26 45 34 37 55 51 75 84 74 91 85 87 94 92 96 97 98 99];

[c,err]=fminsearch('exGl',c) t=x(1):0.1:x(length(x)); fy=c(3)*t.^3+c(2)*t.^2+c(1); plot(x,y,'o',t,fy,'r-'); end c = -93.7295 1.9899 -0.0774 err = 754.2148

Интерполяция функций. Для реализации сплайн-интерполяции используется функция yi=interp1(x,y,xi,method) где х массив абсцисс, у массив ординат (экспериментальных точек), xi точки, в которых необходимо вычислить значение с помощью сплайна, yi функция в этих точках. В зависимости от используемых методов, получаются различные результаты (Рис.1.36). Для уплотнения экспериментальных точек, создан массив xi из точек с одинаковым шагом, и для них будут найдены значения функции y(x). Кроме того, создан массив из точек t и эти точки расположены между экспериментальными. Для них тоже будут найдены значения функции y(t)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: