如何在不使用“分开”的情况下编写用于部分分数分解的Python代码?

2024-09-29 21:55:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

function

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

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

但是我们的数学脚本说我们需要分解分母,然后用它建立一个方程组并求解它。 how to split it up 所以我在考虑定义函数本身的每个部分,然后以某种方式创建一个函数,比如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)

Tags: 函数代码脚本return定义deffunction数学
1条回答
网友
1楼 · 发布于 2024-09-29 21:55:45

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

poly = function()作为函数,但要小心地用**替换^。包括from sympy import *from sympy.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-)**2term_6 = (f*x + g)/(x**2 +1),…,term_8 = (j*x + k)/(x**2 + 1)(你知道要点了)。定义your_sum = term_1 + ... + term_8eq = Eq(your_sum, poly)

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

相关问题 更多 >

    热门问题