Возможна ли разработка приложения на Octave с GUI? |
Компания ALT Linux
Опубликован: 12.03.2015 | Доступ: свободный | Студентов: 582 / 65 | Длительность: 20:55:00
Темы: Математика, Программное обеспечение, Физика
Специальности: Математик, Преподаватель, Физик
Лекция 9:
Решение обыкновенных дифференциальных уравнений и систем
9.3 Реализация численных методов
Ниже приведены тексты функций, реализующие рассмотренные в п. 9.2 численные методы решения дифференциальных уравнений.
function[x, t]= eiler(a, b, n, x0) % Функция решения задачи Коши x'(t) = g(t, x) x(a) = x0 методом Эйлера. % n — количество отрезков, на которые разбивается интервал [a, b]. h=(b-a)/n; % Вычисление шага h. x(1)=x0; for i =1:n+1 % Формирование системы равноотстоящих узлов ti t(i)=a+(i-1)*h; end % Вычисление значений функции в узловых точках по формуле (9.11) for i =2:n+1 x(i)=x(i-1)+h*g(t(i-1),x(i-1)); end endЛистинг 9.1. Функция решения задачи Коши методом Эйлера.
function[x, t]= eiler_m(a, b, n, x0) % Функция решения задачи Коши x'(t) = g(t, x)x(a) = x0 % модифицированным методом Эйлера. % n — количество отрезков, на которые разбивается интервал [a, b]. h=(b-a)/n;% Вычисление шага h. x(1)=x0; for i =1:n+1 % Формирование системы равноотстоящих узлов ti t(i)=a+(i-1)*h; end % Вычисление значений функции по формулам (9.13) — (9.14). for i =2:n+1 tp=t(i-1)+h/2; xp=x(i-1)+h/2*g(t(i-1), x(i-1)); x(i)=x(i-1)+h*g(tp, xp); end endЛистинг 9.2. Функция решения задачи Коши модифицированным методом Эйлера.
function[x, t]= runge_kut(a, b, n, x0) % Функция решения задачи Коши x'(t) = g(t, x) x(a) = x0 методом Рунге-Кутта % n — количество отрезков, на которые разбивается интервал [a, b]. h=(b-a)/n;% Вычисление шага h. x(1)=x0; for i =1:n+1 % Формирование системы равноотстоящих узлов ti t(i)=a+(i-1)*h; end % Вычисление значений функции формуле (9.16). for i =2:n+1 % Расчёт коэффициентов K1, K2, K3, K4 K1=g(t(i-1), x(i-1)); K2=g(t(i-1)+h/2, x(i-1)+h/2*K1); K3=g(t(i-1)+h/2, x(i-1)+h/2*K2); K4=g(t(i-1)+h, x(i-1)+h-K3); % Расчёт приращения delt delt=h/6*(K1+2*K2+2*K3+K4); x(i)=x(i-1)+delt; end endЛистинг 9.3. Функция решения задачи Коши методом Рунге-Кутта..