|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Решение в численном виде — функция fsolveДля получения численного решения нелинейного уравнения или системы нелинейных уравнений в формате вещественных чисел удобно использовать функцию fsolve(eqns, vars, options) Эта функция может быть использована со следующими параметрами: complex — находит один или все корни полинома в комплексной форме; fulldigits — задает вычисления для полного числа цифр, заданного функцией Digits; maxsols=n — задает нахождение только n корней; interval — задается в виде а..b или х=а..b или {x=a..b, y=c..d, …} и обеспечивает поиск корней в указанном интервале. Функция fsolve дает решения сразу в форме вещественных или комплексных чисел, что и показывают следующие примеры (файл fsolve): > fsolve(sin(х)=Pi/4,х); .9033391108 > fsolve(sin(х)=1/2,х=4..8); 6.806784083 > fsolve(2*х^2+х-1=10,x); -2.608495283, 2.108495283 > fsolve(х^5-х,x); -1., 0., 1.000000000 > fsolve(х^5-х,x,complex); -1.000000000, -1.000000000 I, 0., 1.000000000 I, 1.000000000 > eqns:= abs(x)*x+exp(x) > 0; eqns:= 0 <|x|x +ex > solve(eqns, {x}); {-2 LambertW(½)<x} > f:= sin(x+y) — exp(x)*y = 0: g:= x^2 - у = 2: fsolve{{f,g},{x,y},{x=-1..1,y=-2..0}); {x = -.6687012050, у = -1.552838968} Заметим, что локализация поиска корней в заданном интервале позволяет отыскивать такие решения, которые не удается получить с помощью функций solve и fsolve в обычном применении. В последнем из приведенных примеров дается решение системы нелинейных уравнений, представленных уравнениями f и g. Чтобы еще раз показать различие между функциями solve и fsolve, рассмотрим пример решения с их помощью одного и того же уравнения erf(x) = 1/2: > solve(erf(х)=1/2,х); RootOf(2 erf(_Z) -1) > fsolve(erf(x)=1/2); .4769362762 Функция solve в этом случае находит нетривиальное решение в комплексной форме через функцию RootOf, тогда как функция fsolve наводит обычное приближенное решение. Мы уже отмечали, что функция solve дает решение уравнения ехр(-х) = х в форме специальной функции Ламберта. Нетрудно заметить, что функция fsolve дает результат сразу в форме числа с плавающей точкой: > restart;eq:=exp(-х)=х;sol:=fsolve(ехр(-х)=х,х); eq: = e(-x) = х sol: =0.5671432904 Решение функциональных, рекуррентных и др. уравнений. Функция RootOf. Функция RootOf В решениях уравнений нередко появляется функция RootOf, означающая, что корни нельзя выразить в радикалах. Эта функция применяется и самостоятельно в виде RootOf(expr) или RootOf(expr, х), где expr — алгебраическое выражение или равенство, х — имя переменной, относительно которой ищется решение. Если переменная х не указана, ищется универсальное решение по переменной _Z. Когда expr задано не в виде равенства, решается уравнение expr=0. Для получения решений вида RootOf в явном виде может использоваться функция allvalues. Примеры применения функции RootOf (файл RootOf): > RootOf(х^2+1=0,х); RootOf (_Z² + 1) > allvalues(%); I, -I > RootOf(а*b^2+а/b,b); RootOf(_Z³ + 1) > allvalues(%); -1, ½ +½I√3, ½-½I√3 > RootOf(x^3-1,x) mod 7; RootOf(_Z³ + 6) > allvalues(%); -6(1/3), ½6(1/3) - ½I√3 6(1/3), ½6(1/3) + ½I√3 6(1/3) > evalf(%); -1.817120593,.9085602965-1.573672596 I,.908560296+1.573672596 I > RootOf(х^2-2*х+1,х) mod 5; Итак, функция RootOf является эффективным способом представления решения в компактном виде. Как уже отмечалось, наряду с самостоятельным применением она часто встречается в составе результатов решения нелинейных уравнений. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |