ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

在Python中求解一个困难的(多项式?)方程

2019-12-01 19:56:12  阅读:659  来源: 互联网

标签:solver sympy equations python


我是编程新手(Python是我的第一语言),但我喜欢设计算法.我目前正在研究一个方程式(整数)系统,找不到解决我特定问题的参考.

让我解释.

我有一个方程式(如果可以的话,可以做个测试):

raw_input == [(90*x + a) * y] + z

其中a是一些常数.

我的问题是,变量z的计数方式与斐波那契数列非常相似,而变量x是z的步长.因此,对于斐波那契数列,我的意思是在z序列的第一项x = 0,在z序列的第二项x =1.我需要求解y.

确定z的确切过程如下

where c and d are constants:
#at x = 0
temp = (c+(90*x)) * (d+(90*x))
temp/90 = z(0) 

#at x = 1
new_temp = (c+(90*x)) * (d + (90*x))

new_temp/90 = z(1)  

#for all the rest of the values of z (and x), use:

j = z(@ x=1) - z(@ x=0)
k = j + 180
l = z(@ x=1) + k
print "z(@ x=1) - z(@ x=0) = j"
print "j + 180 = k"
print "k + z(1) = l"
repeat until z > raw_input

this creates the spread of z values by the relation:
j = z(@ x=n) - z(@ x=n-1)
k = j + 180
l = k + z(@ x = n)

我需要浏览(跳过)z<的值; x以测试y的整数解的条件. 这似乎有可能吗?

解决方法:

似乎最好的方法是将给定的方程式重现为递归关系,然后定义递归函数以确定您想要计算的值或找到该关系的闭式解.有关递归关系的更多信息,请参见:

>任何有关合类的书籍
>Wikipedia: Recurrence relation.特别是,这些部分:

> 2.1: Linear homogeneous recurrence relations with constant coefficients
> 2.2: Rational generating function
> 3.1: Solving recurrence relations, General Methods
>尽管解决递归关系的常规方法相当合理,但最强大的技术是z变换:3.3: Solving with z-transforms
>3.5: Solving non-homogeneous recurrence relations.本文其余部分中的技术和讨论最适合纯应用程序,但有时也可以找到实际用途.

> WolframMathWorld: Recurrence equation

最后,以我的经验,最好使用MatLab,Octave或Mathematica等数学数值分析软件解决此类问题.至少,有了这些,您将拥有一个可以快速部署和测试的平台.

标签:solver,sympy,equations,python
来源: https://codeday.me/bug/20191201/2083103.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有