用费拉里法求四次方程的实根#39;s方法
我目前正在尝试使用 wikipedia Ferrari的方法 .我只想取回真正的根源,丢弃了虚构的根源.我的实现不会返回真正根源的良好价值.我找不到公式中的错误. 我的CubicEquation正常工作,我的双季度解决方案.现在,我只是错过了法拉利的方法,但我无法使它起作用! 这是我的班级: public class QuarticFunction { private final double a; private final double b; private final double c; private final double d; private final double e; public QuarticFunction(double a, double b, double c, double d, double e) { this.a = a; this.b = b;
8 2023-10-26
编程技术问答社区
如何在Java中提取多项式系数?
以字符串-2x^2+3x^1+6为例,如何从存储在字符串中的等式中提取-2,3和6? 解决方案 不给出确切的答案,而是一些提示: 使用替代/a> meyhod: 将所有-替换为+-. 使用 split/a>方法: // after replace effect String str = "+-2x^2+3x^1+6" String[] arr = str.split("+"); // arr will contain: {-2x^2, 3x^1, 6} 现在,每个索引值都可以单独分配: String str2 = arr[0]; // str2 = -2x^2; // split with x and get vale at index 0 其他解决方案 String polynomial= "-2x^2+3x^1+6"; String[] parts = polynomial.split("x\\^\\d+\\+?");
4 2023-10-19
编程技术问答社区
SymPy: 多项式对符号根的因式分解与组合平方根的因式分解
sympy factor函数可以通过符号根分解,例如,例如: In [1]: from sympy import * In [2]: init_printing(use_latex=False) In [3]: z, a, b = symbols('z a b') In [4]: poly = expand((z - sqrt(a))*(z - sqrt(b)), z) In [5]: poly Out[5]: 2 √a⋅√b - √a⋅z - √b⋅z + z In [6]: factor(poly, z) Out[6]: (-√a + z)⋅(-√b + z) ,但是如果b = a>: ,则分解失败 In [10]: b = a In [11]: poly = expand((z - sqrt(a))*(z - sqrt(b)), z) In [12]: poly Out[12]: 2 -
2 2023-10-13
编程技术问答社区
用 SymPy 对复数多项式进行全因式分解
我想完全分解一个多面角> sympy 提供factor进行factor,但是我很惊讶地,仅通过整数根完成分解,例如 e.g.:: >>> from sympy import * >>> z = symbols('z') >>> factor(z**2 - 1, z) (z - 1)*(z + 1) >>> factor(z**2 + 1, z) z**2 + 1 或 >>> factor(2*z - 1, z) 2*z - 1 >>> factor(2*z - 1, z, extension=[Integer(1)/2]) 2*(z - 1/2) 已经存在一个回答的问题:使用Sympy 和 asmeurer给出的解决方案作品: >>> factor(z**2 + 1, z, extension=[I]) (z - I)*(z + I) ,但是您需要指定非直觉根的每个除数,例如 >>> factor(z**2 + 2, z, extension=[I])
2 2023-10-13
编程技术问答社区
如何在SymPy中生成一个给定维度的符号化多变量多项式?
我想使用功率系列来近似一些PDE.给定数字ndarray,我需要生成符号多元多项式的第一步. 考虑以下多项式: 我想服用D=[d1,...,dm]的m尺寸ndarray,其中dj s是非阴性整数,并以符号表达的形式生成符号多元多项式.符号表达式由形式的单体组成: fo示例如果D=[2,3]输出应为 对于此特定情况,我可以嵌套两个for loops并添加表达式.但是我不知道该如何做任意长度的D.如果我可以生成D A和X的D尺寸ndarrays,而无需使用循环,那么我可以使用np.sum(np.multiply(A,X))作为 frobenius内部产品获得我需要的东西. 解决方案 我将使用 itertools.product : from sympy import * import itertools D = (3, 4, 2, 3) a = symarray("a", D) x = symarray("x", len(D)) prod_iterato
0 2023-10-13
编程技术问答社区
慰问。收集矩阵系数的符号?
我正在尝试考虑一个表达式,并将系数分离为矩阵形式,以便: 与 factor sympy表达到矩阵系数?在哪里野生?符号与match(form)一起使用以确定其矩阵形式的系数.但是,我无法获得match(form)用于以下工作的方法. 为什么match(form)方法失败? 什么是干净的替代方案? #Linear Interpolation function: V(x) v_1, theta_1, v_2, theta_2, x, L = symbols("v_1, theta_1, v_2, theta_2, x, L") a_1, a_2, a_3, a_4 = symbols("a_1, a_2, a_3, a_4", real=True) V = a_1*x**0 + a_2*x**1 + a_3*x**2 + a_4*x**3 #Solve for coefficients (a_1, a_2, a_3, a_4) with BC's: V(x) @ x=
2 2023-10-13
编程技术问答社区
在有限域上插值多项式
我想在有限场的点上使用python插值多项式,并在该领域获得具有系数的多项式. 目前,我正在尝试使用Sympy,特别是插值(来自sympy.polys.polyfuncs),但我不知道如何在特定的GF中迫使插值发生.如果没有,可以使用另一个模块来完成? 编辑:我对python实施/库感兴趣. 解决方案 Sympy的 interpolaty_poly "> interpolating_poly 不支持有限场上的多项式.但是,在Sympy的引擎盖下有足够的细节来整理有限领域的课程,并找到 lagrange "> lagrange "> lagrange "> lagrange "> lagrange "> lagrange多项式以残酷的直接方式. 与往常一样,有限场GF(p n )的元素为以多项式为代表程度小于n,在GF中具有系数(P).乘法完成模型n降低度n的多项式,在现场构建时选择.反转是通过扩展的欧几里得算法完成的. 多项式由系数列表表示,首先是最高度.例如,
4 2023-10-13
编程技术问答社区
Sympy 无法简化或展开带小数的指数
我正在尝试简化N的巨大表达,而Sympy的结果之一抛出了A(n+1)^1.0,我注意到 f=n*((n+1)**1.0) sympy.expand(f) 不起作用,它保持不变,而不是给出n^2+n,所以我想知道是否有任何方法可以执行此类操作 解决方案 Synpy将按预期扩展您的表达,当功率为整数数字时.如果电源存储为理性或浮点,则将无法正常工作.您的选项是使用整数重写您的表达式,或者编写一些代码,这些代码将自动检查float是否存储一个整数号码(最多达到数值精度错误)并相应地行动. 这是一个起点: def rewrite_polynomial(p): args_list = [] if not p.is_Mul: return None for m in p.args: if not m.is_Pow: args_list.append(m) else:
0 2023-10-12
编程技术问答社区
对两个多项式求和
我正在寻找一个总和两个多项式的内置MATLAB函数. 示例: p1(x)和p2(x)在代码标准MATLAB向量中表示: p1 = [500 400 300 200 100 50]; p2 = [3 2 1 5]; 如何使用内置MATLAB函数(S)总和这两个多项式以获取PS(X);不编写明确的M文件功能? 解决方案 我肯定希望有一种更好的方法(我可能会将其放入辅助功能中),但这似乎很好: [zeros(1, size(p1,2)-size(p2,2)) p2] + [zeros(1, size(p2,2)-size(p1,2)) p1] ans = 500 400 303 202 101 55 其他解决方案 简单.写一点功能,称其为leftpadz. leftpadz = @(p1,p2) [zeros(1,max(0,numel(p2) - numel(p1)))),p1]; 所以如果我们有...
0 2023-10-05
编程技术问答社区
将二维花键函数f(t)转换为f(x)。
因此,我有一组特殊情况下的立方花纹,其2D控制点将始终导致一条曲线永远不会在 x 轴上交叉.也就是说,曲线看起来像是一个简单的多项式函数,因此 y = f ( x ).我想有效地创建一个沿着样条坐标的数组,该数组沿着样条坐标,该数组对应于均匀间隔的x坐标,该坐标坐标是运行样条段的长度. 我想有效地找到沿着样条的y坐标,例如, x = 0.0, x = 0.1, x x = 0.2等,或以另一种方式接近,有效地将 f x,y ( t )样式函数转换为 f /em>( x )函数. 我当前使用4x4常数矩阵和四个2D控制点来描述样条,使用Hermite或Catmull-Rom Spline的矩阵常数,并将它们插入 t 的立方函数从0到1. 给定矩阵和控制点,在x轴上获得这些y值的最佳方法是什么? 编辑:我应该补充说,足以绘制的近似值就足够了. 解决方案 您的问题指出您想要均匀的空间 x 坐标,并且近似解决方案还可以.因此,我提出了以下算法: 决定您想要的
6 2023-09-08
编程技术问答社区
捕获字符串中的任何数字字符的Ruby Regex
所以,我已经做了很多研究,并查看了大量的Regex文档,指南和Regex Generator,但是我发现没有什么可以告诉我如何执行此操作(甚至都没有stackoverflow弹出窗口中的链接当我在此问题中输入" trex"字段中的" trox"字段时出现了). 基本上,我正在编写一个数学程序(ruby)来解决一种非常特定的数学问题.将有两个输入(通过gets.Chomp),一个字符串将采用 的形式 2x^3+4x^2+5x-42 现在,指数( ^3和 ^2)将保持不变,而这些添加和扣除符号以及任何" x"字符都可以忽略这些指数. 因此,从本质上讲,我需要弄清楚如何编写一个正则表达式,除非字符串中的任何数字字符在它们之前,否则它们先于"^"(表示指数),然后将它们推入数组. (以后将数组中的数字字符串解析为数值) 所以,例如,理想的正则是 之类的东西 8x^3-4x^2+3x-17 并返回一个包含等式系数的数组 ["8", "-4", "3", "-
4 2023-09-07
编程技术问答社区
双变量多项式的霍纳规则(Horner's rule)。
霍纳的规则用于简化在特定变量值下评估多项式的​​过程. 我很容易地使用SML应用了该方法,将其用于一个变量多项式,表示为INT列表: fun horner coeffList x = foldr (fn (a, b) => a + b * x) (0.0) coeffList 这很好.然后,我们可以使用以下方式调用它: - val test = horner [1.0, 2.0, 3.0] 2.0; > val test = 17.0 : real 其中[1.0, 2.0, 3.0]是代表多项式系数的列表,2.0是变量x的值,而17.0是评估多项式的​​结果. 我的问题就是这样:我们有一个由(int列表列表)表示的两个可变多项式.高级列表中的n个项目将表示所有包含y^n的多项式项,低级列表中的MTH项目将表示所有包含x^m的多项式术语 例如:[[2],[3,0,0,3],[1,2]]是多项式 (2(x^0)(y^0)) + (3(x^0)(y^1) +
2 2023-09-05
编程技术问答社区
为什么 `poly` 抱怨度数小于唯一点数?
我正在尝试在R中生成正交多项式,但是我一直遇到一个错误,我不了解 > poly(1:1000, 50) Error in poly(1:1000, 50) : 'degree' must be less than number of unique points 肯定的唯一点的数量是1000?这是什么意思?这是一个错误,如果是这样,有人知道我在处理吗? 编辑: 这似乎可以在任何数量的点上启动> 27的学位 - 这是无证限制吗? 解决方案 数值溢出.如果您查看poly的代码,您会发现它正在生成单个多项式术语作为中间步骤: X
2 2023-07-27
编程技术问答社区
计算多项式倒数的NTRU伪代码
我想知道是否有人可以告诉我如何实现以下伪代码的第45行. Require: the polynomial to invert a(x), N, and q. 1: k = 0 2: b = 1 3: c = 0 4: f = a 5: g = 0 {Steps 5-7 set g(x) = x^N - 1.} 6: g[0] = -1 7: g[N] = 1 8: loop 9: while f[0] = 0 do 10: for i = 1 to N do 11: f[i - 1] = f[i] {f(x) = f(x)/x} 12: c[N + 1 - i] = c[N - i] {c(x) = c(x) * x} 13: end for 14: f[N] = 0 15: c[0] = 0 16: k = k + 1 17: end whil
22 2023-07-14
编程技术问答社区
使用Prolog计算多项式的GCD
标题说明了一切.我正在寻找计算两个多项式的GCD.有什么办法可以在序言中做到?如果是这样,什么是一个好的起点?具体来说,我在如何使用prolog. 实现多项式部门方 编辑以包括示例输入和输出: 示例输入: ?- GCD(x^2 + 7x + 6, x2 − 5x − 6, X). 示例输出: X = x + 1. 解决方案 在其他人需要这样做的机会上,这是我的最终解决方案: tail([_|Tail], Tail). head([Head | _], Head). norm(Old, N, New) :- length(Tail, N), append(New, Tail, Old). norm(Old, N, []) :- length(Old, L), N > L. mult_GCD(List, GCD) :- length(List, L), L > 2, tail(List, Tail),
10 2023-07-14
编程技术问答社区
使用Python查找多项式根 - 可能的numpy扩展错误
我正在使用numpy获得多项式的根. Numpy提供了一个模块"多项式". 我的手计算x^2 + 5*x + 6 = 0是x = -2&x = -3. (简单) 但是我的代码向我显示了错误的答案:array([-0.5 , -0.33333333])(倒置?) 任何人都可以在我的代码中找到罪魁祸首吗?还是只是一个错误? from numpy.polynomial import Polynomial as P p = P([1, 5, 6]) p.roots() 解决方案 只需按其他顺序传递 p = P([6, 5, 1]) 其他解决方案 如果您确定了这一点,则可以自己意识到这一点,因为n的多项式P,R(x) = x^n P(1/x)等于P的相反版本.因此,除0外,R的根是P根的倒数.
2 2023-07-12
编程技术问答社区
用python求解非线性方程组
我可以根据Python中的参数求解非线性方程的系统吗?有例子还是教程?我可以在枫木中轻松地做到这一点,但是我的特定系统的表达方式很大,并且复制它们很难. 示例: sigma*(y-x) = 0 x*(rho-z)-y = 0 x*y-beta*z = 0 您应该获得解决方案: [[x = 0, y = 0, z = 0], [x = sqrt(beta*rho-beta), y = sqrt(beta*rho-beta), z = rho-1], [x = -sqrt(beta*rho-beta), y = -sqrt(beta*rho-beta), z = rho-1]] 我问的原因是:我有一个大型的非线性ODES系统.我想解决固定点(这是可行的,它是在枫木中完成的,但它们很大且丑陋).我想从固定点创建进一步的表达式,然后在Scipy中使用优化软件包.我宁愿在python中做这一切,也不愿来回翻译事物,因为它效率很低,并且可以犯错误. 解决方案 重申
20 2023-07-11
编程技术问答社区
使用长整数将两个多项式mod n,x^r-1相乘:正确的窗口大小是多少?
使用窗口乘法算法乘以两个多项式[Z/nZ中的系数和某些r的整个多项式mod x^r-1]使用长插入乘以,我应该给窗口多少尺寸? ? 在"窗口"中,我的意思是系数应在初始长智能器中使用的一点长度,以便长脑乘法的结果包含结果的正确系数[系数的总和DON don don don don don 't重叠"]. 一开始,我认为ceil(log(n**2,2)) + 1足够了,因为每个系数最多都是n-1,因此这些系数的产物最多是(n-1)**2. 然后,我意识到,当进行长插图时,可能会有一些这些系数的总和,因此窗口应为ceil(log(number-of-additions * n**2,2)) + 1. . 我认为两个多项式添加的程度最多可能会有一段时间,但是使用ceil(log((deg_a + deg_b + 1) * n**2,2)) +1工作了一段时间,但最终系数重叠,我得到了不正确的结果. . 那么这个"窗口"应该多大? 顺便说一句,这是当前(Pytho
16 2023-07-08
编程技术问答社区