Advertisement
Guest User

Untitled

a guest
May 21st, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.30 KB | None | 0 0
  1. function Jacc=ieqprime(k,R_data);
  2. %
  3. % "Распаковываем" R_data
  4. %
  5. t=R_data.t; T=R_data.T; alpha=R_data.alpha; beta=R_data.beta;
  6. %
  7. % Создаем "смещенный" на один элемент назад вектор k:
  8. % k(i) = k_disp(i+1)
  9. % Обрежем последний элемент за ненадобностью и чтобы не мешал увеличенной
  10. % размерностью вектора
  11. %
  12. k_disp = [0; k];
  13. k_disp = k_disp(1:T+2);
  14. %
  15. % Создадим якобиан и поначалу заполним его целиком по общему правилу
  16. % (помним про особенности нумерации).
  17. % Поправки на краях матрицы будут применены позднее
  18. %
  19. l_diagn = alpha^2*beta*(k.^(alpha-1)).*(k_disp.^(alpha-1));
  20. m_diagn = alpha*(alpha-1)*beta*(k.^(alpha-2)).*(k_disp.^alpha) - ...
  21.                 (alpha^2*beta + alpha)*(k.^(alpha-1));
  22. u_diagn = ones(T+2, 1);  
  23. Jacc = spdiags([l_diagn m_diagn u_diagn], -1:1, T+2, T+2);
  24. %
  25. % В начале нумерации поправки не требуются. Функция F_{T+1} равна постоянно
  26. % нулю; следовательно, то же касается и ее производных.
  27. %
  28. Jacc(T+2,:) = zeros(1,T+2);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement