русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Дифференциальные уравнения


Дата добавления: 2013-12-24; просмотров: 751; Нарушение авторских прав


Интегрирование

Simplex метод

Если требуется найти переменные, при которых линейная функция многих переменных имеет максимум (или минимум) при выполнении определенных ограничений, заданных в виде линейных равенств или неравенств, то следует использовать симплекс-метод. Для этого сначала необходимо загрузит пакет simplex, а затем воспользоваться командой maximize (или minimize), где теперь в качестве range можно указывать в фигурных скобках ограничительную систему неравенств. Пакет simplex предназначен для решения задач линейной оптимизации. После его загрузки команды maximize и minimize меняют свое действие. Теперь эти команды выдают координаты точек, при которых заданная линейная функция имеет максимум или минимум. При этом допускается дополнительная опция для поиска только неотрицательных решений NONNEGATIVE.

Пример

При каких значениях переменных функция f(x,y,z)=-x+2y+3z имеет максимум, если требуется выполнение условий x+2y-3z<=4, 5x-6y+7z<=8, 9x+10z<=11, а все переменные неотрицательные?

>restart: with(simplex);

Целевая функция

>f:=-x+2*y+3*z;

Ограничения

>organ:={x+2*y-3*z<=4, 5*x-6*y+7*z<=8, 9*x+10*z<=11}:

Решение

>maximize(f, organ, NONNEGATIVE);

 

Неопределенный интеграл вычисляется с помощью 2-х команд:

1) прямого исполнения – int(f, x), где f – подынтегральная функция, x – переменная интегрирования;

2) отложенного исполнения – Int(f, x) – где параметры команды такие же, как и в команде прямого исполнения int. Команда Int выдает на экран интеграл в аналитическом виде математической формулы.

>Int((1+cos(x))^2,x)= int((1+cos(x))^2,x);

Для вычисления определенного интеграла в командах int и Int добавляются пределы интегрирования, например

>Int((1+cos(x))^2,x=0..Pi)= int((1+cos(x))^2,x=0..Pi);



Численное интегрирование выполняется командой evalf(int(f, x=x1..x2), n), где n – точность вычислений (число знаков после запятой).

>Int((1+cos(x))^2,x=0..Pi)= evalf(int((1+cos(x))^2,x=0..Pi),10);

 

 

Для решения дифференциальных уравнений возможно использование набора функций, представленных в библиотеке DEtools.

Решение таких уравнений (систем уравнений) возможно также с помощью встроенной команды dsolve.

Формат команды: dsolve(deqs,vars,eqs);

где deqs - дифференциальное уравнение (уравнения) и начальные условия,
vars - переменная (переменные), eqs - дополнительные ключевые слова.

По умолчанию dsolve находит точное символьное решение, что не всегда возможно.

В таком случае возможно приближенное решение уравнения в виде разложения в ряд или численным методом.

>deqs:=diff(y(x),x$3)=x*sin(x);

>dsolve(deqs,y(x));

Добавим начальные условия. Значение Y=4 в точке X=0 можно записать как y(0)=4.

>dsolve({deqs, y(0)=4}, y(x));

Значение первой производной Y=2 в точке X=0 можно записать как
D(y)(0)=2
>dsolve({deqs, y(0)=4, D(y)(0)=2}, y(x));

Значение второй производной Y=7 в точке X=0 можно записать так
(D@@2)(y)(0)=7 или так D(D(y))(0)=7

>dsolve({deqs, y(0)=4, D(y)(0)=2, (D@@2)(y)(0)=7}, y(x));

Продемонстрируем графические возможности библиотеки DEtools.
>with(DEtools):

>DEplot(deqs, y(x), x=-2..1, [[y(0)=4, D(y)(0)=2, (D@@2)(y)(0)=7]], y=3.5..5, stepsize=0.05);




<== предыдущая лекция | следующая лекция ==>
Экстремумы | Линейная алгебра


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.