首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何积分一个函数w.r.t时间;即'y‘是一个数组,时间(T)的值从1变化到3000

如何积分一个函数w.r.t时间;即'y‘是一个数组,时间(T)的值从1变化到3000
EN

Stack Overflow用户
提问于 2021-04-01 16:29:05
回答 1查看 87关注 0票数 2

如何集成一个函数f(y) w.r.t时间;也就是说,'y'是一个包含3000个值的数组,而time(t)的值在1到3000之间变化。因此,在集成f(y)之后,我需要3000个值。积分将是不确定的,并且整数值必须没有'x''C'(Constant)。这是我的代码的一部分:

代码语言:javascript
复制
k12 = np.array([random.random() for _ in range(3000)])
I1 = np.array([random.random() for _ in range(3000)])
m12 = np.array([random.random() for _ in range(3000)])
_k12 = [-x for x in k12]
_m12 = [-x for x in m12]

k21 = np.array([random.random() for _ in range(3000)])
I2 = np.array([random.random() for _ in range(3000)])
m21 = np.array([random.random() for _ in range(3000)])
_k21 = [-x for x in k21]
_m21 = [-x for x in m21]

k12_I1 = [i / j for i, j in zip(k12, I1)]
m12_I1 = [i / j for i, j in zip(m12, I1)]
_k12_I1 = [i / j for i, j in zip(_k12, I1)]
_m12_I1 = [i / j for i, j in zip(_m12, I1)]

k21_I2 = [i / j for i, j in zip(k21, I2)]
m21_I2 = [i / j for i, j in zip(m21, I2)]
_k21_I2 = [i / j for i, j in zip(_k21, I2)]
_m21_I2 = [i / j for i, j in zip(_m21, I2)]

X1_x = np.array(pd.read_csv(r"C:/Users/Lenovo/Desktop/Temp/X1_x.csv"))
X2 = np.array(pd.read_csv(r"C:/Users/Lenovo/Desktop/Temp/X2.csv"))
X2_diff = np.array(pd.read_csv(r"C:/Users/Lenovo/Desktop/Temp/X2_diff.csv"))

X3_ = ((k12*X1_x)-(I1*X2_diff)+(m12*X2))/k12

我需要X3_,但是由于整数值的形式是常量*x,所以它会给出一个错误:

代码语言:javascript
复制
'TypeError: can't multiply sequence by non-int of type 'float''
EN

回答 1

Stack Overflow用户

发布于 2021-04-04 00:31:29

有一些符号库完全适合你的任务,比如SymPy --非常高级的符号库。你可以使用它。

Numpy库只做数值计算,没有符号,你必须在你的脑海中做所有的符号。

据我所知,在你的最终X3中,你有两项之和,一项是Val1 * x,另一项是Val2,也就是X3 = Val1 * x + Val2。然后,您可以将X3拆分为两部分(这里的Val1是X3_x,Val2是X3_c):

代码语言:javascript
复制
X3_x = k12*X1/k12
X3_c = (-(I1*X2_diff)+(m12*X2))/k12

稍后,要计算给定x固定值的整个X3,只需在Python X3 = X3_x * x + X3_c中进行即可。

此外,您还必须处理您的CSV的方式,以使您的最终数组只包含浮点数,不包含符号,到处删除*x,即:

代码语言:javascript
复制
X1_rd = np.array([e.strip().replace('[', '').replace(']', '').replace('*x', '') for e in pd.read_csv(r"X1_x.csv")]).astype(np.float64)
X2_rd = np.array(pd.read_csv(r"X2.csv")).astype(np.float64)
X2_diff_rd = np.array(pd.read_csv(r"X2_diff.csv")).astype(np.float64)

Full final corrected code

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66900999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档