#!/usr/bin/ruby k, a, b, a1, b1 = 2, 4, 1, 12, 4 while TRUE # Next approximation p, q, k = k*k, 2*k+1, k+1 a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1 # Print common digits d = a / b d1 = a1 / b1 while d == d1 print d $stdout.flush a, a1 = 10*(a%b), 10*(a1%b1) d, d1 = a/b, a1/b1 end end
Особо важную роль играет способность системы Maxima производить разнообразные символьные преобразования алгебраических выражений. Следующий пример демонстрирует раскрытие скобок в них: (C1) p1:x^ 2-1 ; 2 (D1) x - 1 (C2) p2:x-1; (D2) x - 1 (C3) expand (p1*p2); 3 2 (D3) x - x - x + 1 (C4) expand ((p1+p2)^2); 4 3 2 (D4) x + 2 x - 3 x - 4 x + 4 Функцию divide можно использовать для нахождения частного и остатка от деления одного ... Maxima легко оперирует тригонометрическими выражениями. ...
Maxima может решать уравнения и системы алгебраических уравнений с помощью функции solve . Равная нулю правая часть уравнения может быть опущена: (C1) solve (x^2=1, x); (D1) [x = - 1, x = 1] (C2) solve(x^2-1,x); (D2) [x = - 1, x = 1] (C3) solve(log(x+3)=1, x); (D3) [x = %E - 3] При решении тригонометрических уравнений выдается только одно из бесконечного множества возможных решений: (C4) solve(sin(x)-1, x); SOLVE is using arc-trig functions to get a solution. ... Решите уравнение ln(tg x) = 0. ...
Графики строятся при помощи функции plot2d , например, (C1) plot2d([2*sin(x), cos(x)], [x, -2*%PI, 2*%PI]); . ... Вот как, например, запишется функция для рисования листа Мебиуса: (C2) plot3d([cos(x)*(3+y*cos(x/2)), sin(x)*(3+y*cos(x/2)), y*sin(x/2)], [x,-%pi,%pi],[y,-1,1],['grid,40,15]); . ... C3) Plot3d(r^.33*cos(th/3),[r,0,1],[th,0,6*%pi], ['grid,12,80], ['transform_xy,polar_to_xy], ['view_direction,1,1,1.4], ['colour_z,true]); . ...
Maxima может вычислять производные и интегралы, раскладывать функции в ряды Тейлора, вычислять пределы и находить точные решения обыкновенных дифференциальных уравнений. ... При вычислении кратных производных по нескольким переменным после указания функции перечисляются переменные дифференцирования с указанием соответствующих кратностей, например, (C7) diff(x^6*y^3, x, 4, y, 2); 2 (D7) 2160 x y . Функция integrate позволяет вычислять интегралы. ... Эта функция не определена в точке x = 4 . ...
Maxima позволяет легко манипулировать матрицами. ... B; [ 3 3 ] (D4) [ ] [ 7 7 ] Функция determinant вычисляет определитель матрицы. ... C7) transpose(A); [ 1 3 ] (D7) [ ] [ 2 4 ] Для получению обратной матрицы используется операция ^^-1 или функция invert . ... Использование матриц позволяет легко решать системы линейных уравнений с несколькими переменными. Пусть A - матрица коэффициентов системы, X - матрица неизвестных, B - матрица свободных членов системы. ...
Это файл critpoints.max : (комментарии в maxima аналогичны комментариям в C) -------------------------------------------------- */ critpts ():=( print ( Программа нахождения критических точек ), /* Запрос на ввод функции -------------------------------------------------- */ print ( Введите функцию f(x): ), f: read (), /* Печать введенной функции (для контроля) -------------------------------------------------- */ ...
... Ниже приводится небольшая программа для нахождения критических точек функции f(x) . ... Приведем текст программы : /* ----------------------------------------------------- Это файл critpoints.max : (Maxima использует комментарии в стиле C) -------------------------------------------------- */ critpts ():=( print ( Программа нахождения критических точек ), /* Запрос на ввод функции */ print ( Введите функцию f(x): ), f:read(), /* Печать введенной функции (для контроля) */ ...
Maxima - еще одна программа для выполнения математических вычислений, символьных преобразований, а также построения разнообразных графиков. ... Для работы с данной системой в ОС Linux следует в окне shell набрать команду maxima или xmaxima для запуска ее графической оболочки. ... При отображении результатов вычислений эта оболочка использует стандартные математические обозначения, в то время как xmaxima или maxima - только символы из таблицы ASCII-кодов. ...
... Классической системой с мелкозернистым параллелизмом является клеточный автомат , а игра Джона Конвея "Жизнь" - типичный пример клеточного автомата, представляющего собой дискретную динамическую систему. ... В этих мирах пространство представляет собой равномерную сетку, каждая ячейка которой (клетка) содержит информацию о своем состоянии. ... Клеточный автомат является тактируемой системой , т. е. смена состояний клеток происходит одновременно. ... Заражение начинается с центральной клетки. ...
... Это было совершенно неожиданно для всех, кроме английского ученого-кораблестроителя В. Рида, который предварительно провел исследования на модели броненосца и установил, что корабль опрокинется даже при небольшом волнении. ... Модели и моделирование используются человечеством давно. ... Хорошо построенная модель, как правило, доступнее для исследования, нежели реальный объект. ... Процесс построения модели называется моделированием. ... Объект Модель Изучение модели Знания об объекте . ...
Директивное программирование - один из наиболее естественных для человека подходов к написанию программ. ... Ниже приводится пример программы на языке C, в которой кроме главной функции main используются еще две подпрограммы - print_array , печатающая элементы переданного ей массива целых чисел, и selection , сортирующая массив, переданный ей в качестве аргумента. #include stdio.h void print_array ( int c[], int n, char* t) { int i; printf( %s ,t); for (i = 0; i Разместите текст этой ...
% move(число_дисков, откуда, куда, через) move(1,X,Y,_) :- write('Move top disk from '), %передвиньте верхний диск с write(X), write(' to '), write(Y), nl. move(N,X,Y,Z) :- N>1, M is N-1, move(M,X,Z,Y), move(1,X,Y,_), move(M,Z,Y,X).
... Принципиально иной подход к программированию заключается в том, чтобы описывать вычисление, используя уравнения, функции, логические выводы и т. п. Особое внимание в декларативном программировании уделяется тому, что нужно сделать, а не тому как это нужно сделать. ... Функциональное программирование весьма красиво и иногда в качестве первого языка программирования, изучаемого студентами, выбирается Haskell или Lisp. ... Создайте файл с именем triads.hs в который поместите следующий текст: . ...
... Можно сказать, что ООП - это моделирование объектов посредством иерархически связанных классов. ... Поместите в файл с именем life.rb фрагмент кода, расположенный ниже. (скачать файл life.rb) class Animal def breath #Дыхание print все животные дышат: вдохнули и выдохнули\n end end class Cat Animal def bark # Подать голос print Mew Mew, я кошка. \n end end class Dog def bark # Подать голос print Bow Wow, я собака. \n end end class Bird def lay_egg ...
usr/bin/ruby class Animal def breath #Дыхание print все животные дышат: вдохнули и выдохнули\n end end class Cat Animal def bark # Подать голос print Mew Mew , я кошка. \n end end class Dog def bark # Подать голос print Bow Wow, я собака. \n end end class Bird def lay_egg ...
По одной из классификаций языки программирования делятся на . ... декларативные (declarative) языки, . ... Главное заключается в следующем: декларативная программа заявляет (декларирует), что должно быть достигнуто в качестве цели, а директивная предписывает , как ее достичь. ... Предположим, вам надо пройти в городе из пункта А в пункт Б. Декларативная программа - это план города, в котором указаны оба пункта, плюс правила уличного движения. ...