问题标签 [pari]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
equation-solving - PARI/GP 范围内函数的零点
我试图在 [0,1] 范围内找到函数的零点。我的函数通常看起来像这样:
到目前为止,我尝试过的天真的方法是将函数的非常粗略的图绘制到 Pari,plot(t=0,1,F(t))
中,然后从那里“猜测”一个小范围 [a1,a2] 第一个零的位置。然后我一直在使用solve(t=a1,a2,F(t))
找到那个零。然后找到第二个小范围 [a2,a3],并重复,直到我找到所有零。
显然不是一个好方法,但它完成了工作,到目前为止我看过的许多例子只有几个零。但是,我现在正在查看的示例(例如我在上面定义的 F(t))有更多的零,所以我正在寻找一种更快的方法。
我知道solvestep
,但我尝试过使用它,但它永远不会返回任何解决方案。我猜这种类型的函数并不适合它使用的拆分方法(或者可能我用错了..)。
有没有什么好方法可以让我在 [0,1] 中返回这个函数的零,而不必经历这个漫长而幼稚的方法?
sieve - 线性筛分算法
是否有一个简单的 pari/gp 程序可以筛选 k*n+c 形式的数字(其中 n 和 c 固定)直到某个素数 p 并且 k 被限制在某个范围内(又名 for(k=1,10000 ,)?
伪代码:
换句话说,从整数列表 T 开始测试素数范围 p 中的第一个素数,并从列表 T 中删除整数 k,使得 k*n+c 可以被 p 整除。然后测试下一个素数,依此类推。这样做直到达到筛子返回的极限,或打印候选者列表。感谢帮助!
exp - Pari/GP 中的二进制拆分
在尝试在没有 FPU 的情况下实现正弦函数时,我意识到所有输入都已经是理性的,因此我决定尝试一种全理性的方法。可能更慢但是:为什么不呢?该系列是线性收敛的,因此有机会通过二进制拆分进行运行时优化。甚至还有关于如何做到这一点以及我使用的非常详细的文献。
到目前为止,一切都很好。
我的数值算法原型工具是 Pari/GP,所以我将上面提到的论文中的代码移植到了 Pari/GP 中,正如您可能已经从我在这里发布问题的事实中猜到的那样,它不起作用。好吧,它确实有效,但无法将错误最小化。该论文还有其他几种不同功能的配方,但都表现出相同的行为。假设论文中有错字,我检查了作者在CLN中的实现。高度优化,但基于论文中的代码,甚至是逐字记录。
为了获得 MWE,我使用了他们的配方exp(p/q)
(除了阶乘之外最简单的配方)并简化了 Pari/GP 代码。
(最后一个可能需要更长的时间,如果你想运行它可以跳过它。)
如您所见,经过几十个步骤后,无法进一步减少错误。
所以这要么是我对算法如何工作或 Pari/GP 如何工作的误解。它是哪一个,为什么?
nested-loops - 在 Pari/GP 中嵌套 for 循环
有没有办法将 for 循环嵌套在 Pari/GP (2.7.6) 中的其他 for 循环中,因为总是出现以下错误:
代码:
感谢帮助。我发布并从中获取代码的问题被删除了,所以我有点卡在这一点上。
graph-theory - 在 Pari/GP 中为路径图编写代码
我正在尝试为 Pari 中 n 个顶点上的路径图的邻接矩阵编写一个矩阵。为了清楚起见,当我说图 P_n 时,我指的是具有 n 个顶点和 n-1 条边的图。
到目前为止,我已经设法针对特定情况执行此操作:
等等
但是,我想要一个可以选择路径长度的代码。类似的东西path(n)=...
。当我用上面的代码尝试这个时,我得到以下信息:
我不确定这是否是写这篇文章的正确方法,我错过了一些微妙的东西,或者我是否应该为此做一些不同的事情。任何帮助将不胜感激!
pari - Pari GP 函数“读取”产生嵌套太深的 *** 表达式
我让 Pari 计算了一些多项式并将它们写入文件中。现在我想把它们读回来,我遇到
*** 表达式嵌套太深。
文件中没有循环,它只是第 n 行上的 {P[n]=(some (Laurent) polynomial in q);}。
该文件只有约 500 KB,我读过更大的文件。
我尝试检查是否有错误并且找不到它们。接下来,我尝试简化文件并读取前一百个多项式左右。这行得通,然后我尝试只加载一个较大的多项式。它不起作用,然后我删除了文件中的一些项,发现如果删除了足够多的项,它就可以读入它。
例如我输入
或者
文件只是表格的一行
这是可以阅读的
文件只有一行完全相同,除了给定的额外+1
无法读入。
polynomials - 在 Pari/GP 中将多项式的因子作为向量返回
使用 时factor
,Pari 打印多项式的因子及其多重性。然而,当使用 时,polcyclofactors
多项式的分圆因子被列为向量,没有多重性。
polcyclofactors
仅简单地分解多项式时,有没有办法模仿?那么,只是将多项式的因子显示为向量,而不用担心多重性?
polynomials - 你能得到多项式中的幂的列表吗?帕里大奖赛
我正在使用系数为 +1/-1(和零)的单变量多项式。这些可能很长,权力范围可能很大。我将权力视为一个向量会很方便 - 有什么方法可以快速做到这一点?我曾希望帕里已经有一个命令来执行此操作,但我似乎看不到一个?
只是一个例子来确认我正在尝试做什么......
输入:x^10 - x^8 + x^5 - x^2 + x + 1
期望的输出:[10, 8, 5, 2, 1, 0]
prime-factoring - 在函数 FACTOR 的 PARI/GP 中,-1 是错误还是意味着其他?
首先运行函数 b(n):
在函数 c(n) 之后:
上次运行 d(n):
并用 202 测试
结果是:
什么表明-1
因式分解结果?
algorithm - PARI/GP 中的矩阵供电
在 PARI/GP 中使用哪种算法进行矩阵供电,它的计算复杂度是多少?是重复平方算法(二进制供电)还是其他?我在互联网上找不到这些信息。
解决了
根据 Bill Allombert(主要 PARI/GP 开发人员)的说法,它是一种具有 O(log n) 计算复杂度的二进制供电。