функция [X, Y] = main () f = inline ( 'beta1*x/(beta2+x)' , 'beta1' , 'beta2' , 'x' ); f1 = inline ( 'x/(beta2+x)' , 'beta1' , 'beta2' , 'x' ); f2 = inline ( '-beta1*x/(beta2+x)^2' , 'beta1' , 'beta2' , 'x' ); Х = [ 0,038 0,194 0,425 0,626 1,253 2,500 3,740 ]; Y = [ 0,05 0,127 0,094 0,2122 0,2729 0,2665 0,3317 ]; бета10 = 0,9 ; бета20 = 0,2 ; m = длина ( X ); R = нули ( m , 1 ); J = нули ( m , 2 ); v = [ beta10 , beta20 ] ' ; для k = 0 : 10 % итерация для i = 1 : длина ( X ) R ( i ) = Y ( i ) - f ( beta10 , beta20 , X ( i )); J ( i , 1 ) = - f1 ( beta10 , beta20 , X ( i )); J ( i , 2 ) = - f2 ( beta10 , beta20 , X ( i )); конец disp ( sprintf ( '%d %0.9g %0.9g %0.9g' , k , v ( 1 ), v ( 2 ), норма ( R ))); v = v - ( J '* J ) \ ( J '* R ); бета10 = v ( 1 ); бета20 = v ( 2 ); end % Цвета KSmrq красный =[ 0,867 0,06 0,14 ]; синий = [ 0 , 129 , 205 ] / 256 ; зеленый = [ 0 , 200 , 70 ] / 256 ; черный = [ 0 , 0 , 0 ]; белый = 0,99 * [ 1 , 1 , 1 ]; серый = 0,8 * белый ; фс = 30 ; дв = 7 ; рисунок ( 1 ); clf ; держись ; установить ( gca , 'fontsize' , fs ) ; Hx = xlabel ( '[S]' ) set ( gca , 'linewidth' , lw / 2 ); Hy = ylabel ( 'скорость реакции' ); удержание ; %axis equal; h = 0,1 ; xs = 0 ; xl = max ( X ) + 0,2 ; Xe = xs : h : xl ; Ye = 0 * Xe ; для i = 1 : length ( Xe ) Ye ( i ) = f ( beta10 , beta20 , Xe ( i )); end plot ( Xe , Ye , ' color' , blue , 'linewidth' , lw ); для i = 1 : длина ( X ) график ( X ( i ), Y ( i ), 'цвет' , красный , 'маркер' , 'd' , 'ширина линии' , lw ); конец ось ([ 0 4 0 0,35 ]); набор ( gca , 'XTick' , [ 0 1 2 3 4 ]); набор ( gca , 'YTick' , [ 0 0,05 0,1 0,15 0,2 0,25 0,3 0,35 ]); сохранить как ( gcf , 'Gauss_Newton_illustration.eps' , 'psc2' ); % сохранить как eps return