2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6 ... 29  След.

А вам пакет PARI/GP интересен?
Да 84%  84%  [ 54 ]
Нет 5%  5%  [ 3 ]
Не уверен(а) 11%  11%  [ 7 ]
Всего голосов : 64
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение26.09.2010, 17:34 
Модератор
Аватара пользователя


11/01/06
5532
dmd в сообщении #356402 писал(а):
Ещё интересно узнать, как организовать пакетное сохранение данных в файл. Вызывать write отдельно для каждого найденного числа (строки чисел вектора/матрицы) - не эффективно медленно.

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

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение17.11.2010, 22:27 
Модератор
Аватара пользователя


11/01/06
5532
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 


23/02/06
53
Санкт-Петербург
Спасибо за ответ!

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

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

Спасибо.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение18.11.2010, 17:10 
Модератор
Аватара пользователя


11/01/06
5532
spk в сообщении #376993 писал(а):
А можно ли как-нибудь переставлять столбцы без создания новой матрицы?

Увы, но нет.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение19.11.2010, 18:28 


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

Спасибо.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение19.11.2010, 23:57 
Модератор
Аватара пользователя


11/01/06
5532
spk в сообщении #377407 писал(а):
А Вы не подскажите, как сделать Gaussian elimination в PARI/GP для прямоугольной матрицы?

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

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение22.01.2011, 16:22 


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


Спасибо.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение24.01.2011, 09:31 


16/08/05
1121
Создаётся cmd-файл примерно такого содержания
Код:
echo print(%1+44)>lst
gp -f -q<lst

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

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

 Профиль  
                  
 
 
Сообщение01.04.2011, 19:12 


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

 Профиль  
                  
 
 
Сообщение02.04.2011, 13:06 
Модератор
Аватара пользователя


11/01/06
5532
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 
Заслуженный участник


20/12/10
8275
Подскажите, пожалуйста, PARI/GP умеет решать уравнения 2-й степени с двумя неизвестными в целых числах?

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение13.04.2011, 19:52 
Модератор
Аватара пользователя


11/01/06
5532
nnosipov в сообщении #434455 писал(а):
Подскажите, пожалуйста, PARI/GP умеет решать уравнения 2-й степени с двумя неизвестными в целых числах?

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

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение22.12.2012, 16:35 
Заслуженный участник


08/04/08
8519
Есть ли в PARI/GP функция, преобразующая Mod(a,b) в a? Очень сильно нужна.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение22.12.2012, 22:43 
Заслуженный участник
Аватара пользователя


11/01/06
3665
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 
Заслуженный участник


08/04/08
8519
RIP в сообщении #662164 писал(а):
lift(Mod(a,b))=a (при $0\leqslant a<|b|$, если $a,b\in\mathbb Z$)
Ура! Спасибо!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 428 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 29  След.

Модераторы: maxal, Toucan, PAV, Karan, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group