русс | укр

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

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

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

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


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

Численное решение уравнений


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


Решение уравнений

Для решения уравнений используется функция solve(eq,x), где eq – решаемое уравнение, x – имя переменной, относительно которой разрешается уравнение. Пример:

> solve(x^2+x-1=0,x);

 

> solve(a*x+b=0,x);

> solve(a*x+b=0,b);

Если уравнение имеет несколько решений, то решение уравнения можно присвоить некоторой переменной, например p. Далее можно использовать k-е решение уравнения в виде p[k]:

> p:=solve(x^2+x-1=0,x): p[1];

> simplify(p[1]*p[2]);

Системы уравнений решаются с помощью такой же функции solve({eq1,eq2,...},{x1,x2,...}), только теперь в параметрах функции следует указывать в первых фигурных скобках через запятую уравнения, а во вторых фигурных скобках перечисляются через запятую переменные, относительно которых требуется решить систему. Если необходимо использовать полученные решения уравнений для дальнейших вычислений, то необходимо результат, возвращаемый функцией solve присвоить какой-нибудь переменной, например, p, а затем выполнить команду assign(p). Пример:

Ø solve( {x+y=a,x-y=b}, {x,y} );

 

 

> p:=solve( {x+y=a,x-y=b}, {x,y} ):

assign(p);

x;

> a:=5;b:=-2;

> p:=solve( {x+y=a,x-y=b}, {x,y} ):

assign(p);

x;

 

 

Попробуем решить уравнение: x6-2x+1=0, используя функцию solve:

> solve(x^6-2*x+1=0,x);

 

Функция solve дает один корень (1) и набор выражений вида RootOf(_..). Дело в том, что произвольное уравнение степени выше 4 с рациональными коэффициентами может не иметь корней, выразимых в виде радикалов над рациональными числами. Решения таких уравнений называются алгебраическими числами. Данное уравнение неразрешимо в радикалах, и Maple нашла единственный корень, выразимый в радикалах (1), и сообщила, что оставшиеся корни являются алгебраическими числами: корнями многочлена z5+z4+z3+z2+z-1=0 (именно этот многочлен указан в аргументе функции RootOf).



Но можно найти приближенное численное решение при помощи функции fsolve:

> fsolve(x^6-2*x+1=0,x);

 

Команда solve, применяемая для решения тригонометрических уравнений, находит только главные решения, то есть выводит только одно решение из серии периодических решений:

> solve(sin(2*x)+cos(2*x)=1,x);

Команда solve применяется также для решения неравенств. Решение неравенства выдается в виде интервала изменения искомой переменной. В том случае, если решение неравенства полуось, то в поле вывода появляется конструкция вида RealRange(– , Open(a)), которая означает, что x (– , a), а – некоторое число. Слово Open означает, что интервал с открытой границей. Если этого слова нет, то соответствующая граница интервала включена во множество решений. Например:

> s:=solve(sqrt(x+3)<sqrt(x-1)+sqrt(x-2),x):

convert(s,radical);

 

Если надо получить решение неравенства не в виде интервального множества типа x (a, b), а в виде ограничений для искомой переменной типа a<x, x< b, то переменную, относительно которой следует разрешить неравенство, следует указывать в фигурных скобках. Например:

> solve(1-1/2*ln(x)>2,{x});

 

С помощью команды solve можно также решить систему неравенств. Например:

> solve({x+y>=2,x-2*y<=1,x-y>=0,x-2*y>=1},{x,y});



<== предыдущая лекция | следующая лекция ==>
Преобразование математических выражений | Скалярное, векторное произведение векторов и угол между векторами


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


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

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

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


 


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

 
 

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

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