sashachca

задание 1

Jun 16th, 2018
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 2.05 KB | None | 0 0
  1. function task1
  2.   n = a = b = m = h = x0 = 0; N = 1;
  3.   X = Y = [];
  4.  
  5.   %n = 5; a = 0; b = 1; N = 10; % хотя лучше взять N = 15
  6.  
  7.   n = input('Введите число слагаемых: ');
  8.   a = input('Введите левый конец отрезка: ');
  9.   b = input('Введите правый конец отрезка: ');
  10.   N = input('Введите число точек отрезка: ');
  11.  
  12.   h = 1/N; % т.к число точек на отрезке [0, 1] будет равно 5 или 10 при шаге 0.2 или 0.1 соответственно
  13.  
  14. %  v = 0.05; % более мелкий шаг по вертикали для графика
  15. %  high = 0.2 + v;
  16. %  low = -0.1 - v;
  17. %  yticks = [low:v:high];
  18. %  set(gca,'ytick', yticks);
  19.    
  20.   sumY = Y(end+1) = expression(n, a);
  21.   X = (a+h):h:b;
  22.   for x = X
  23.     Y(end+1) = expression(n, x);
  24.     if sign(Y(end)) ~= sign(Y(end-1))
  25.       x0 = x - h/(abs(Y(end-1)/Y(end)) + 1); % находим значение в точке x0 из отношения, полученного из подобия треугольников (пункт 4)
  26.       line(x0, 0, 'Color','g','Marker','square','MarkerSize', 16); % изображаем зеленые квадраты вокруг таких x0
  27.     endif
  28.     sumY += Y(end);
  29.   endfor
  30.   X = [a, X];
  31.     grid on
  32.   line(X, Y); % график самой функции (пункт 2)
  33.   line([a, b], sumY/N, 'Color','r','LineWidth', 1); % горизонтальная линия на уровне ср.арифметического (пункт 3)
  34.  
  35.  
  36. endfunction
  37.  
  38.  
  39. function value = expression(n, x) % m-функция (пункт 1)
  40.   sum = value = 0;
  41.  
  42.   for k = 1:n
  43.     sum += summand(n, x, k);
  44.     %disp(summand(n, x, k)); % вывод k-го слагаемого
  45.   endfor
  46.  
  47.   value = 10/3*sqrt(exp(x))*sum + 4;
  48.  
  49. endfunction
  50.  
  51.  
  52. function s = summand(n, x, k) % вспомогательная функция для подсчета k-го слагаемого
  53.   s = 0;
  54.   s = (log(abs(x+k)))^2*cos((k^2+x)/n);
  55.  
  56. endfunction
Advertisement
Add Comment
Please, Sign In to add comment