Средства отладки процедур, их сохранение и использование (подключение)
Одним из основных средств отладки процедур является функция трассировки trace(имя процедуры). Детальность ее работы задается системной переменной printlevel:=n (уравень вывода). При n=1 результат выводится только для непосредственно исполняемой функции или оператора. Для вывода информации о выполнении k-го уровня вложеннсти надо использовать знечения этой переменной от 5*k до 5*(k+1). Так, при n от 1 дл 5 выводятся результаты трассировки первого уровня, при n от 6 до 10 - второго и т.д. Максимальное значение n=100 обеспечивает трассировку по всем уровням вложенности процедуры. Для отладки процедур в системе Maple имеется специальный интерактивный отладчик - debugger. Для включения отладчика в работу необходимо подать команду: Stopat(имя процедуры) Признаком, указывающим на работу отладчика, является изменение приглашения к вводу со знака > на DBG>. Теперь, подавая команды next (следующий), step (шаг) и stop (остановка), можно проследить выполнение процедуры. С помощью команды showstat (имя процедуры) можно вывести ее листинг, причем в нем строки вычисляемых элеменотов пронумерованы, что весьма удобно при разборе работы процедуры. Существует множество других команд отладчика. Справку по ним можно получить выполнив команду ?Debugging Когда процедура отлажена и оттестирована, ее можно сохранить в файле с расширением m командой save(), которая позволяет сохранить любой объект Maple. Впоследствии, когда для вычислений потребуется данная процедура, ее можно прочитать в другом сеансе Maple командой read(). Решение алгебраических уравнений и систем уравнений Основная функция solve. Одиночные нелинейные и тригонометрические уравнения. Системы нелинейных и трансцендентных уравнений
Основная функция solve Для решения линейных и нелинейных уравнений в аналитическом виде используется достаточно универсальная и гибкая функция solve(eqn, var)
В решениях помимо переменных %N могут встречаться следующие обозначения: Одиночные нелинейные и тригонометрические уравнения Решение одиночных нелинейных уравнений вида f(x)=0 легко обеспечивается функцией solve(f(x),x). Например: > solve(x^3-2*x+1,x); 1/2 1/2 1,1/25 -1/2,-1/2-1/25 > solve(x^(3/2)=3,x); 2/3 3 Функция solve старается дать решение в аналитическом виде. Для получения корней в численном виде надо использовать функцию evalf или convert. > s:=solve(sqrt(ln(x))=2,x); > s1:=evalf(s); > convert(s,float); s:= exp(4) s1:= 54.59815003 54.59815003 Часто бывает удобно представлять уравнение и его решения в виде отдельных объектов, отождествленных с определенной переменной.Это позволяет в дальнейшем использовать полученные решения в других вычислениях. В частности, это позволяет легко проверить решение подстановкой subs: > e1:={x^3-2*x+1=0}; > s:=solve(e1,x); 3 e1:= {x - 2 x + 1 = 0} s:= {x = 1}, {x = -1/2 + 1/2 sqrt(5)}, {x = -1/2 - 1/2 sqrt(5)} > subs(s[2],e1);evalf(%); 3 {(-1/2 + 1/2 sqrt(5)) + 2 - sqrt(5) = 0} {0 = 0} Если результат решения представлен через функцию RootOf, то получить все корни можно через функцию allvalues.
> solve({exp(x)=sin(x)},x); {x = RootOf(_Z - ln(sin(_Z)))} > allvalues(%); {x =.3627020561 - 1.133745919 I} > a:=solve({x^5-2*x=-3},x); 5 a:= {x = RootOf(_Z - 2 _Z + 3)} > allvalues(a); {x = -1.423605849}, {x = -.2467292569 - 1.320816347 I}, {x = -.2467292569 + 1.320816347 I}, {x =.9585321812 -.4984277790 I}, {x =.9585321812 +.4984277790 I} Сводящиеся к одному уравнения вида f1(x)=f2(x) также решаются функцией solve(f1(x)=f2(x),x). При решении тригонометрических уравнений периодичность тригонометрических функций и связанная с этим множественность решений не учитывается. > solve(sin(x)=cos(x)-1, x); - 1/2 Pi, 0 В данном примере найдено одно главное решение. Используя системную переменную _EnvAllSolutions, которой присвавается значение true (по умолчанию - false), можно получить все решения. > _EnvAllSolutions:= true: > solve(sin(x)=cos(x)-1, x); - 1/2 Pi + 2 Pi _Z~, 2 Pi _Z~ В данном примере переменные _Z~ означают ряд натуральных чисел. Таким образом, получены все решения уравнения с учетом периодичности тригонометрических функций.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|