Как найти все корни уравнения fsolve maple

GeekBrains

Команда: fsolve ( )

По умолчанию Maple пытается найти аналитическое выражение для корней уравнения. Если это не удается, то, как отмечалось выше, в области вывода ничего не печатается. В подобных случаях (если корни действительно существуют) можно воспользоваться командой fsolve(), которая находит численное решение уравнения или системы уравнений. Формат команды отличается от формата команды solve() наличием третьего параметра опция:

fsolve (уравнения, переменные, опция);

Задание первых двух параметров соответствует заданию аналогичных параметров в команде solve(), а параметр опция может принимать значения из таблицы 1.

Таблица 1. Значения параметра опцuя команды fsolve ( )

Для произвольного уравнения по умолчанию эта функция находит одно решение, но для полиномов определяются все действительные корни. Для нахождения всех корней полинома, включая комплексные, следует задать опцию complex. В примере 4 показано использование команды численного решения уравнений.

Пример 4. Численное решение уравнений.

Здесь также показано, как можно последовательно находить корни произвольного уравнения, задавая интервал изменения неизвестной величины с учетом полученного решения на предыдущем шаге нахождения корня (последние три команды).

4. Другие команды решения уравнений

Кроме универсальных команд solve () и fsolve () решения уравнений и систем уравнений, система Maple содержит специализированные команды, предназначенные либо для решения определенного класса уравнений, либо нахождения решений в заданном числовом поле. Здесь эти команды описаны предельно кратко для того, чтобы читатель знал об их существовании. Более подробно об этих командах можно узнать в справочной системе Maple, выполнив команду ?имя_команды, где вместо параметра имя_команды следует подставить ее действительное имя.

Команда isolve () ищет все целые решения уравнений. Если в уравнении задано несколько неизвестных, то строится решение относительно всех заданных неизвестных.

Пример 5. Целочисленное решение уравнений.

В решении последнего уравнения примера 5 использована целочисленная переменная _Z1 сгенерированная Maple.

Команда msolve () также ищет целочисленные решения уравнения, но только по модулю, заданному вторым параметром.

Пример 6. Целочисленное решение уравнений по заданному целому модулю.

Команда rsolve () строит общее решение рекуррентного уравнения, используя начальные значения, если они заданы, или через их символьные обозначения, если они не заданы.

Пример 7. Решение рекуррентных уравнений.

# Используя заданные начальные условия

5. Решение неравенств

Команда solve () используется для решения неравенств и систем неравенств в области вещественных чисел точно так же, как и для решения уравнений и систем уравнений. Ответ выражается либо в виде множества неравенств, либо через функции RealRange () и Open (). Первая определяет замкнутый отрезок действительных чисел, а вторая используется для указания того, что граничная точка не входит в построенное решение. Для задания решения в виде множества, следует задать в виде множества либо само неравенство, либо неизвестную, относительно которой ищется решение. Если этого не сделать, то ответ будет получен с использованием указанных функций определения действительных отрезков.

GeekBrains

Пример 8. Решение неравенств.

В примере 8 решены два неравенства, для каждого из которых построено решение в виде множества и в форме действительных интервалов.

1. Говорухин В.Н., Цибулин В.Г. Введение в Maple. Математический пакет для всех. – М.: Мир, 1997. – 208 с.

2. Дьяконов В.П. Математическая система Maple V. – М.: Издательство “Солон”,1998.

3. Двайт Г.Б. Таблицы интегралов и другие математические формулы. – М.: Наука. Главная редакция физико-математической литературы, 1983. – 176 с.

4. Матросов А.В. Maple 6. Решение задач высшей математики и механики. – СПб.:БХВ — Петербург, 2001.– 528 с.

5. Манзон Б.М. Maple V Power Edition – М.: Информационно-издательский дом “Филинъ”,1998г.

Решение в численном виде — функция fsolve

Для получения численного решения нелинейного уравнения или системы нелинейных уравнений в форме вещественных чисел удобно использовать функцию:

Эта функция может быть использована со следующими параметрами:

  • complex — находит один или все корни полинома в комплексной форме;
  • full digits — задает вычисления для полного числа цифр, заданного функцией Digits;
  • maxsols=n — задает нахождение только n корней;
  • interval — задается в виде а. .b или х=а. .b, или (х=а. .b, y=c. .d, . > и обеспечивает поиск корней в указанном интервале.

Функция fsolve дает решения сразу в форме вещественных или комплексных чисел, что и показывают следующие примеры:

Заметим, что локализация поиска корней в заданном интервале позволяет отыскивать такие решения, которые не удается получить с помощью функций solve и fsolve в обычном применении. В последнем из приведенных примеров дается решение системы нелинейных уравнений, представленных уравнениями f и д.

Чтобы еще раз показать различие между функциями solve и fsolve, рассмотрим пример решения с их помощью одного и того же уравнения erf(x) = 1/2:

Функция solve в этом случае находит нетривиальное решение в комплексной форме через функцию RootOf, тогда как функция fsolve находит обычное приближенное решение.

Решение уравнений с использованием функции fsolve

В SCILAB есть функция fsolve для решения сложных уравнений, содержащих функции разного вида. В вызов функции можно включить производную (для метода касательных) или только функцию для метода половинного деления f(x). Функция fsolve вызывается следующим образом:

[х [,v |,info|]|=fsolve(xO,fct [,fjac| |,tol|),

где xO — вектор реальных чисел, представляющих начальное приближение для решения real;

fct — внешняя (функция или список), описывающих уравнение fct(x) = 0;

fjac — внешняя (функция или список), описывающих якобиан или производные,

tol — скаляр задающий условия при проверке сходимости. По умолчанию tol = 1.0 х Ю’ 10 .

Подробное описание возможностей функции fsolve можно найти в описании.

Пример 1. Рассмотрим использование функции fsolve при решении уравнения cos(x) — х 2 = 0.

Решение. Определим графически корпи уравнения.

  • —>х=[-5:0.5:5];
  • —>plot(x,cos(x),’-k’)
  • —>plot(x,x A 2,’-k’)

Из графика па рис. 15 видно, что у уравнения имеется два корня, которые находятся на отрезке [-1, 1]. Определим функцию и её производную с помощью команды deff.

  • —>deff(‘[y]=f(x)’,[‘y=cos(x)-x A 2’])
  • —>deff(‘[y 1 ]=f 1 (x)’,[‘y 1 =-sin(x)-2*x’])

Зададим начальное значение и решим уравнения, не используя производную.

>х0=-0.4 —>х 1 =fsolve(x0,f) xl =

Используя другое начальное значение, найдём второй корень:

  • —>х0=0;
  • —>x2=fsolve(x0,f) х2 =

Решим уравнение с использованием производной —>x2=fsolve(0,f,f 1) х2 =

При другом начальном значении, например хо = 0.1, получим второй корень уравнения: хО =

GeekBrains

Добавить комментарий

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