2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3, 4, 5, 6 ... 55  След.

А вам пакет PARI/GP интересен?
Да 83%  83%  [ 58 ]
Нет 6%  6%  [ 4 ]
Не уверен(а) 11%  11%  [ 8 ]
Всего голосов : 70
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение26.09.2010, 17:34 
Аватара пользователя
dmd в сообщении #356402 писал(а):
Ещё интересно узнать, как организовать пакетное сохранение данных в файл. Вызывать write отдельно для каждого найденного числа (строки чисел вектора/матрицы) - не эффективно медленно.

Самое простое - включить log и просто печатать результаты на экран. См. post255964.html#p255964

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение17.11.2010, 22:27 
Аватара пользователя
spk в сообщении #376487 писал(а):
PARI/GP - то что нужно: быстрая и нетяжёлая. И очень легко встраивается (в отличии от Mathematica) в batch-обработку. А примитивы языка достаточно хорошо поименованы и легко понимаются. Уже начал на ней переписывать свои расчёты. Только у меня возникло два вопроса:
1. есть ли встроенная возможность перестановки столбцов матриц, координат векторов и тому подобная обработка списков?
2. если ли встроенная возможность "общего" разбора входных файлов: например, содержимое файла - это элементы матрицы, разделённые либо ' ', либо ', ' и т.п.? Или понимаются только PARI/GP-файлы?

1. Переставить столбцы матрицы $M$ можно в соответствии с перестановкой $p$ можно, например, так:
Код:
Mnew = matrix(matsize(M)[1], matsize(M)[2], i, j, M[i,p[j]] )


2. Нет. Понимаются файлы только в формате PARI/GP. Варианта два: read или readvec.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение18.11.2010, 16:46 
Спасибо за ответ!

Код:
Mnew = matrix(matsize(M)[1], matsize(M)[2], i, j, M[i,p[j]] )

На сколько я понимаю, это создание новой матрицы на основе копирования столбцов из указанной. А можно ли как-нибудь переставлять столбцы без создания новой матрицы? Для меня это важный момент в производительности: матриц много и они большие. Просто очень не хотелось бы это неэффективно делать через поэлементное копирование.

Спасибо.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение18.11.2010, 17:10 
Аватара пользователя
spk в сообщении #376993 писал(а):
А можно ли как-нибудь переставлять столбцы без создания новой матрицы?

Увы, но нет.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение19.11.2010, 18:28 
А Вы не подскажите, как сделать Gaussian elimination в PARI/GP для прямоугольной матрицы? Моя задача - привести матрицу над $GF(2)[x]/\langle f(x) \rangle$ к трапецевидному виду.

Спасибо.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение19.11.2010, 23:57 
Аватара пользователя
spk в сообщении #377407 писал(а):
А Вы не подскажите, как сделать Gaussian elimination в PARI/GP для прямоугольной матрицы?

mathnf() (или даже mathnfmod()) - не оно? Если нет, поищите там рядом всякие mat*.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение22.01.2011, 16:22 
А Вы не подскажите, а как сделать ввод моих собственных аргументов из командной строки в Pari-GP? Хочется обойтись без конфигурационных файлов и их чтения в Pari-скрипте:
Код:
gp -q -arg1=15 -arg2=[1,2,3,4,5]


Спасибо.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение24.01.2011, 09:31 
Создаётся cmd-файл примерно такого содержания
Код:
echo print(%1+44)>lst
gp -f -q<lst

Вместо print() свою функцию опишите в этом файле
Затем запускаете
Код:
tst.cmd <ваш аргумент>

Это в Винде, в Линухе изящнее можно

 
 
 
 
Сообщение01.04.2011, 19:12 
Вот вопрос возник - существует ли готовый код аналога polrootsmod для составного модуля?
Допускаю, конечно, что слишком многого хочу, т.к. видимо в общем случае решений может быть очень много. Если конкретно, то меня интересует решение сравнения $x^2 \equiv a\mod b$ по составному модулю $b$.

 
 
 
 
Сообщение02.04.2011, 13:06 
Аватара пользователя
dmd в сообщении #430054 писал(а):
Вот вопрос возник - существует ли готовый код аналога polrootsmod для составного модуля?

Обычно в таких случаях ищутся корни по модулю каждого из простых степеней в разложении составного модуля, а затем комбинируются по китайской теореме об остатках.
dmd в сообщении #430054 писал(а):
Если конкретно, то меня интересует решение сравнения $x^2 \equiv a\mod b$ по составному модулю $b$.

Для этого у меня есть процедурка:
Код:
\\ all square roots of x modulo odd m
{ asqrtmod(x, m) = my(p, r, t, l);
        r=[];
        if(!issquare(Mod(x,m)),return(r));
        p=factorint(m);
        t=[];
        l=matsize(p)[1];
        for(i=1,l,
                t = concat(t,[Mod(sqrt(x + O(p[i,1]^p[i,2])),p[i,1]^p[i,2])]);
        );
        forvec(s=vector(l,i,[0,1]),
           r=concat(r,[lift(chinese(vector(l,i,t[i]*(-1)^s[i])))])
        );
        vecsort(r)
}

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение13.04.2011, 19:37 
Подскажите, пожалуйста, PARI/GP умеет решать уравнения 2-й степени с двумя неизвестными в целых числах?

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение13.04.2011, 19:52 
Аватара пользователя
nnosipov в сообщении #434455 писал(а):
Подскажите, пожалуйста, PARI/GP умеет решать уравнения 2-й степени с двумя неизвестными в целых числах?

В общем виде - нет, но есть кое-какие полезные скрипты. См. это обсуждение.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение22.12.2012, 16:35 
Есть ли в PARI/GP функция, преобразующая Mod(a,b) в a? Очень сильно нужна.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение22.12.2012, 22:43 
Аватара пользователя
Sonic86 в сообщении #661894 писал(а):
Есть ли в PARI/GP функция, преобразующая Mod(a,b) в a?
lift(Mod(a,b))=a (при $0\leqslant a<|b|$, если $a,b\in\mathbb Z$)

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.01.2013, 14:25 
RIP в сообщении #662164 писал(а):
lift(Mod(a,b))=a (при $0\leqslant a<|b|$, если $a,b\in\mathbb Z$)
Ура! Спасибо!

 
 
 [ Сообщений: 825 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 55  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group