2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 12, 13, 14, 15, 16, 17, 18 ... 54  След.

А вам пакет PARI/GP интересен?
Да 83%  83%  [ 58 ]
Нет 6%  6%  [ 4 ]
Не уверен(а) 11%  11%  [ 8 ]
Всего голосов : 70
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение14.01.2018, 12:31 


16/08/05
1153
Спасибо!


Последовательность иксов уравнения $1+ x+x^2=3\cdot 67y^2$ выглядит так:

Vec(x*(439+515095*x-440*x^2)/((1-x)*(1-1030190*x+x^2)) + O(x^10))


и уравнения $1- x+x^2=3\cdot 67y^2$ так:

Vec(x*(440-515095*x-439*x^2)/((1-x)*(1-1030190*x+x^2)) + O(x^10))

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


16/08/05
1153
А как быть в таких случаях?:


Код:
? bnfinit(x^2-3*7).fu
%1 = [Mod(1/2*x - 5/2, x^2 - 21)]
но минимальный икс должен быть 55


Код:
? bnfinit(x^2-3*31).fu
%2 = [Mod(3/2*x - 29/2, x^2 - 93)]
минимальный икс должен быть 12151


хотя для 3*19 вычисляется правильно
Код:
? bnfinit(x^2-3*19).fu
%3 = [Mod(20*x - 151, x^2 - 57)]
минимальный икс равен 151

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


11/01/06
5702
dmd в сообщении #1283965 писал(а):
но минимальный икс должен быть 55

Если коэффициенты нецелые, нужно смотреть на маленькие степени фундаментальной единицы. Например:
Код:
? bnfinit(x^2-3*7).fu[1]^3
%1 = Mod(12*x - 55, x^2 - 21)

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


16/08/05
1153
Извините, если замучил вопросами...


Для уравнения $(x+1)^3 - x^3 = 31y^2$ минимальный икс равен 22 (A145323) и обобщенный вид этого уравнения будет $(6x+3)^2 - 3\cdot 4\cdot 31y^2 = -3$.

Тогда:
Код:
? b = bnfinit(x^2-3*4*31); bnfisintnorm(b,-3)
%82 = [1/4*x + 9/2]


Ожидал, что свободный член будет 6*22+3=135, но опять дробные значения. Как в этом случае выполнить вычисления?

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


11/01/06
5702
dmd, опять нужно домножить результат bnfisintnorm на степень фундаментальной единицы.
Код:
? b = bnfinit(x^2-3*4*31); bnfisintnorm(b,-3)*b.fu[1]^2
%1 = [Mod(7*x - 135, x^2 - 372)]

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


11/01/06
5702
Кстати, дробные значения вылезают из-за того, что $D=3\cdot 31\equiv 1\pmod{4}$, в соответствующем квадратичном поле целые элементы имеют вид $a+b\sqrt{D}$, где $a,b$ могут быть не только целыми, но и полуцелыми.

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


31/01/18

13
Здрасьте

Подскажите плз, почему не работает программулина:
Код:
x=10000; v=vector(x); j=1; for (i=1, x, if (issquerefree(i), v[j]=i; j=j+1)); v

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


11/01/06
5702
Bye, исправьте опечатку: issquerefree -> issquarefree и она заработает

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


31/01/18

13
Большое спасибо, работает, вот только неправильно.

-- 31.01.2018, 23:46 --

Нет ли здесь возможности использовать что-то типа паскалевского else и как оно реализуется?

На конкретном примере: необходимо сделать так, чтобы на месте включающих квадраты чисел стояли нули в векторе.

Что-то типа того:
Код:
x=10000; v=vector(x); j=1; for (i=1, x, if (issquerefree(i), v[j]=i; j=j+1) else v[j]=0; j=j+1); v

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


11/01/06
5702
Bye, else реализуется обычной запятой:
Код:
x=10000; v=vector(x); j=1; for (i=1, x, if (issquarefree(i), v[j]=i; j=j+1, v[j]=0; j=j+1); v
Кроме того, непонятно зачем вам j, если оно всегда равно i - вот код без j:
Код:
x=10000; v=vector(x); for (i=1, x, if (issquarefree(i), v[i]=i, v[i]=0); v
Еще проще искомый вектор можно получить так:
Код:
x=10000; v=vector(x,i,issquarefree(i)*i)

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


31/01/18

13
maxal в сообщении #1289000 писал(а):
Еще проще искомый вектор можно получить так:


Код:
x=10000; v=vector(x,i,issquarefree(i)*i)




Ух ты, круто, спасибо. Особенно понравилось
Код:
issquarefree(i)*i
и удивило то, что заполняя вектор не нужно организовывать цикл, т.е. цикл организован внутри вектора?

А как найти остаток от целочисленного деления?

-- 01.02.2018, 00:52 --

И кстати, можно ли строки матрицы выводить не через точку с запятой, а построчно?

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


11/01/06
5702
Bye, почитайте эту тему с самого начала - на многие вопросы там уже даны ответы.

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


31/01/18

13
maxal
Ок, большое спасибо за помощь, но в рефкардс не могу найти функции деления, целочисленного деления, нахождения остатков и всё, что связано с делением, наверное не туда смотрю. Тему конечно почитаю еще раз, спасибо.

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


11/01/06
5702
Bye, x\y - целочисленное деление $x$ на $y$, x%y - взятие остатка; сразу получить и частное и остаток можно командой divrem(x,y).
В refcard эти операции указаны сразу под обычными арифметическими операциями.

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


31/01/18

13
maxal
Огромное спасибо.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 810 ]  На страницу Пред.  1 ... 12, 13, 14, 15, 16, 17, 18 ... 54  След.

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



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

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


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

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