如何编写Python代码进行部分分数分解而不使用;分开;?

如何编写Python代码进行部分分数分解而不使用;分开;?,python,partial,decomposition,Python,Partial,Decomposition,所以我对Python非常缺乏经验,我基本上什么都不知道,我们的老师让我们编写一个代码,用这个函数进行部分分数分解: 我真的不知道如何启动,甚至不知道如何定义该函数。我一开始试过这个:` def function(x): a = (x^4)-(3*x^2)+x+5 b = (x^11)-(3*x^10)-(x^9)+(7*x^8)-(9*x^7)+(23*x^6)-(11*x^5)-(3*x^4)-(4*x^3)-(32*x^2)-16 return a/b 但是我们的

所以我对Python非常缺乏经验,我基本上什么都不知道,我们的老师让我们编写一个代码,用这个函数进行部分分数分解:

我真的不知道如何启动,甚至不知道如何定义该函数。我一开始试过这个:`

def function(x):
    a = (x^4)-(3*x^2)+x+5
    b = (x^11)-(3*x^10)-(x^9)+(7*x^8)-(9*x^7)+(23*x^6)-(11*x^5)-(3*x^4)-(4*x^3)-(32*x^2)-16
    return a/b
但是我们的数学脚本说我们需要分解分母,然后用它建立一个方程组并求解它。 所以我在考虑定义函数本身的每个部分,然后以某种方式创建一个函数,比如a=7*x,然后像f(x)=b/a^7那样使用它,如果这样做有效的话,但我真的不知道。不幸的是,我们不允许使用“分开”,我认为这是一个sympy函数

提前非常感谢

真的,菲

另外:经过几个小时的尝试,我发现了这一点。但我非常肯定,这不是解决问题的办法。它还告诉我变量l没有在z中定义,我确信其他变量也没有定义。我不知道该怎么办

def function(x):
global a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v
a = (x^4)-(3*x^2)+x+5

b = 11
c = 10
d = 9
e = 8
f = 7
g = 6
h = 5
i = 4
j = 3
k = 2
l = x**b
m = 3*x**c
n = x**d
o = 7*x**e
p = 9*x**f
q = 23*x**g
r = 11*x**h
s = 3*x**i
t = 4*x**j
u = 32*x**k
v = 16

return a/(l-m-n+o-p+q-r-s-t-u-v)

print("We are starting the partial fraction decomposition with this 
function: (x^4)-(3*x^2)+x+5 / (x^11)-(3*x^10)-(x^9)+(7*x^8)-(9*x^7)+ 
(23*x^6)-(11*x^5)-(3*x^4)-(4*x^3)-(32*x^2)-16")

z = l-m-n+o-p+q-r-s-t-u-v
while c >= 0:
    c = c-1
    z = z-l

while d >= 0:
    d = d-1
    z = z-m

while e >= 0:
    e = e-1
    z = z-n 

while f >= 0:
    f = f-1
    z = z+o 

while g >= 0:
    g = g-1
    z = z-p

while h >= 0:
    h = h-1
    z = z+q

while i >= 0:
    i = i-1
    z = z-r

while j >= 0:
    j = j-1
    z = z-s

while k >= 0:
    k = k-1
    z = z-t

print(z)

因为我刚刚自己解决了这个问题,这里有一些输入:

让函数使用
poly=function()
,但要小心用
**
替换
^
。包括来自Symphy import*的
和来自Symphy.abc import a、b、c、d、e、f、g、h、i、j、k、x的

使用
factor(exp)
可以找到函数的所有根,使用这些根定义11个术语
term_1=a/(x-2)
term_2=b/(x2-)**2
<代码>术语6=(f*x+g)/(x**2+1)
,…,
术语8=(j*x+k)/(x**2+1)
(你知道要点了)。定义
your_sum=term_1+…+术语8
eq=eq(你的总和,多边形)


定义变量
your_sum=sum(term_1,…,term_8)
,并使用
solve_undeminated_coefs(eq[a,b,…,k],x))
获得结果。

因为我刚刚自己解决了这个问题,这里有一些输入:

让函数使用
poly=function()
,但要小心用
**
替换
^
。包括来自Symphy import*
和来自Symphy.abc import a、b、c、d、e、f、g、h、i、j、k、x的

使用
factor(exp)
可以找到函数的所有根,使用这些根定义11个术语
term_1=a/(x-2)
term_2=b/(x2-)**2
<代码>术语6=(f*x+g)/(x**2+1)
,…,
术语8=(j*x+k)/(x**2+1)
(你知道要点了)。定义
your_sum=term_1+…+术语8
eq=eq(你的总和,多边形)


定义变量
your_sum=sum(term_1,…,term_8)
,并使用
solve_undeminated_coefs(eq[a,b,…,k],x))
获得结果。

您能分享实际任务吗(可能有输入和期望的输出)?我不认为你的老师想让你编写只对一个输入(即函数)有效的代码,但可能是更通用的代码……另外,请记住,
^
是Python中的XOR操作,而不是power操作(即
**
),实际任务是德语的,但下面是它所说的:拆分这个rational函数(从上图中)在部分分数中,不使用命令“分开”。注意:您可以使用命令“根”和“解未定系数”。因此我认为只使用此函数是可以的??但我不太确定。我只是查找XOR是什么,我不是这个意思,我指的是功率(x²)。很抱歉造成混淆。好的,可以是具体的:)我刚才问@AKX(忘了给你贴标签,这样你就能看到了)你能分享实际任务吗(可能有输入和期望的输出)?我不认为你的老师想让你编写只对一个输入(即函数)有效的代码,但可能是更通用的代码……另外,请记住,
^
是Python中的XOR操作,而不是power操作(即
**
),实际任务是德语的,但下面是它所说的:拆分这个rational函数(从上图中)在部分分数中,不使用命令“分开”。注意:您可以使用命令“根”和“解未定系数”。因此我认为只使用此函数是可以的??但我不太确定。我只是查找XOR是什么,我不是这个意思,我指的是功率(x²).抱歉搞混了。好吧,可以具体点:)我刚才问@AKX(忘记给你贴标签了,你会看到的)哦,我的天啊,谢谢你!!哦,我的上帝,谢谢你!!