我想用Lagrange方法插值多项式,但这段代码不起作用:
def interpolate(x_values, y_values):
def _basis(j):
p = [(x - x_values[m])/(x_values[j] - x_values[m]) for m in xrange(k + 1) if m != j]
return reduce(operator.mul, p)
assert len(x_values) != 0 and (len(x_values) == len(y_values)), 'x and y cannot be empty and must have the same length'
k = len(x_values)
return sum(_basis(j) for j in xrange(k))
Run Code Online (Sandbox Code Playgroud)
我跟着维基百科,但是当我运行它时,我在第3行收到一个IndexError!
谢谢
我正在寻找一个库或计算机代数系统,它将帮助计算环中多项式的运算
F_2[x_1, ..., x_n] / <f^2 - f>
Run Code Online (Sandbox Code Playgroud)
其中F_2是2-元素的有限域,并且<f^2 - f>是从元件所产生的理想f^2 - f对所有f在F_2[...].(我认为/希望/我很确定这是使用xor作为+和*[ 维基百科 ] 的布尔代数环).
例如,
x_1 = poly_xn 1
x_2 = poly_xn 2
x_1 * x_2 * x_1 -- returns "x_1 * x_2"
x_1 + x_1 + x_2 -- returns "x_2"
Run Code Online (Sandbox Code Playgroud)
我已经在Haskell中为此编写了代码,但不幸的是性能不是很好.
注意:标题"仿射k-代数"来自艾森伯德的交换代数,其中包含代数几何的观点.35; 如果有更好的名字请编辑问题,谢谢!
我今天写了一篇关于Java数据结构实施的大学课程的试卷.最后一个问题是这样的:
解释为什么使用TreeMap <Integer,Integer>来存储具有积分系数的多项式是很方便的,特别是当多项式应该以标准形式打印出来时,作为字符串.
意识到这是一个错误,我接着解释了为什么我认为这不是一个好主意.我反而主张使用一个简单的int []数组,因为数组在两个方向上都有O(1)随机访问,O(n)迭代,并且指针(引用)没有额外的内存占用.
假设我错了并且使用(排序的)TreeMap有一些好处,有人可以向我解释这些好处吗?我的理由是,由于Matlab,Octave,Maple和其他经过良好测试的数值程序使用数组来存储多项式,因此不可能完全错误.
我有一个五次函数(五次多项式),我想用C++解决它.是否有可以使用的实现或数学库才能继续?
我有一个N阶多项式(其中N是偶数).对于x减/加无穷大,该多项式等于负无穷大(因此它具有最大值).我现在正在做的是通过使用polyder然后找到N-1阶多项式的根来获取多项式的导数.roots函数在Matlab中返回N-1个解.然后我选择真正最大化多项式的真根.问题是我正在更新我的多项式,并且在每一步我使用上述过程来找到最大化器.因此,root函数需要花费太多的计算时间才能使我的应用程序变慢.有没有办法在Matlab或提出的算法中以计算有效的方式实现这种最大化(即只找到一个解决方案而不是N-1解决方案)?谢谢.
编辑:我还想知道Matlab中是否有一个例程只返回真实的根,而不是
roots返回所有真实/复杂的根.
编辑:我得到的方程式参考包含几个错误.我在这里修好了.解决方案现在可能真的有意义!
当两层流体流过地形时,取决于流速的相对大小和流体中的波速,存在许多不同的解决方案.

这些被称为"超临界","次临界"和"关键"(前两个我在这里称为"超临界").
以下等式定义了(h,U0)参数空间中临界行为和临界行为之间的界限:
我想消除d_1c(即我不在乎它是什么)并找到这些方程的解决方案(h, U_0).
简化因素:
d_0我想用Enthought分配中的模块来解决这个问题(numpy,scipy,sympy),但是真的不知道从哪里开始.消除变量d1c确实让我感到困惑.
这是python中的方程式:
def eq1(h, U0, d1c, d0=0.1):
f = (U0) ** 2 * ((d0 ** 2 / d1c ** 3) + (1 - d0) ** 2 / (1 - d1c - d0) ** 3) - 1
return f
def eq2(h, U0, d1c, d0=0.1):
f = 0.5 * (U0) ** 2 * ((d0 ** 2 / d1c ** 2) - (1 …Run Code Online (Sandbox Code Playgroud) 我有一个四阶多项式方程,我需要找到所有的根.简单的例子:
from sympy import (Symbol,solve,I)
a=4+5*I; b=3+7*I; c=12-56*I; d=33+56*I; e=345-67*I; x=Symbol('x')
eq=a*x**4 + b*x**3 + c*x**2 + d*x +e
solve(eq,x)
Run Code Online (Sandbox Code Playgroud)
如果a,b,c,d,e是纯粹的真实,那么它工作得很好.但就我而言,所有这些都是复杂的数字.然后我接到了电话:
PolynomialError: 'cannot return general quartic solution'
Run Code Online (Sandbox Code Playgroud)
但它并没有真正帮助.存在某种奇怪的问题,因为现在调用(在修复中已更改):
PolynomialError: Cannot determine if `-((12 - 56*I)/(4 + 5*I) - 3*(3 + 7*I)**2/(8*(4 + 5*I)**2))**2/12 + (3 + 7*I)*((33 + 56*I)/(4*(4 + 5*I)) + (3 + 7*I)*(3*(3 + 7*I)**2/(256*(4 + 5*I)**2) - (12 - 56*I)/(16*(4 + 5*I)))/(4 + 5*I))/(4 + 5*I) - (345 - 67*I)/(4 + 5*I)` is …Run Code Online (Sandbox Code Playgroud) 我有数字 x=[0,n],其中 n>0。我想构造一个函数 y=f(x) ,使得值从 0 开始缓慢增加,当接近 n 时增加得非常快,当达到 n 时,y 为无穷大。对此进行建模的好函数是什么?
多项式的度数应该是# of points - 1例如,如果有2个点,则它应该是一条线.
我知道我可以用矩阵来解决这个问题
例如,如果有4个点:
多项式将是y = ax^3 + bx^2 + cx + d,矩阵将是
| y0 | | x0^3 x0^2 x0 1 | | a |
| y1 | = | x1^3 x1^2 x1 1 | x | b |
| y2 | | x2^3 x2^2 x2 1 | | c |
| y3 | | x3^3 x3^2 x3 1 | | d |
Run Code Online (Sandbox Code Playgroud)
我可以解决a,b,c,d.是否有一个库可以执行此操作,输入为点{x0,y0}到{xn,xn}?
要测试一个连续函数是否有根,在给定区间 [x0, x1] 中是否有一个单根相对容易:根据中值定理,当 x0 处的函数值的符号与 x1 处的符号相反时,有 (在至少)一个根。
例如,给定一个二次函数:
\n\ng(x): a*x**2 + b*x + c = 0\nRun Code Online (Sandbox Code Playgroud)\n\n测试看起来像:
\n\nif sign of g(x0) is opposite of sign of g(x1)\nthen return true\nelse return false\nRun Code Online (Sandbox Code Playgroud)\n\n对于多变量情况,有Poincar\xc3\xa9\xe2\x80\x93Miranda 定理,但我在阅读链接的文章时很难正确实现测试。
\n\n给定两个二次二元函数:
\n\ng1(x, y): a1*x**2 + b1*y**2 + c1*x*y + d1*x + e1*y + f1 = 0\ng2(x, y): a2*x**2 + b2*y**2 + c2*x*y + d2*x + e2*y + f2 = 0\nRun Code Online (Sandbox Code Playgroud)\n\n和一个矩形区域 …
polynomial-math ×10
math ×3
python ×3
algorithm ×2
java ×2
polynomials ×2
sympy ×2
c++ ×1
haskell ×1
matlab ×1
matrix ×1
max ×1
maximize ×1
optimization ×1
scipy ×1