使用python进行公式的计算

# coding: utf-8
from sympy import *
import numpy as np
from pynverse import inversefunc

# 定义我们的符号
m = symbols('m')
n = symbols('n')
e = symbols('e')
Q = symbols('Q')
K = symbols('K')
r = symbols('r')
# 定义等式,右边要等于0
eq = Q - ((m * (n + 1) * (1 + e**2) * (r**2))/(4*K))**(1/n+1)

# 求解(使用程序化简出r的计算公式)
result = solve(eq, r)

# 打印结果
print('r:', result)

# 将结果转化成latex格式
print(latex(result))

# [-2*sqrt(K*Q**(n/(n + 1))/(m*(e**2 + 1)*(n + 1))), 2*sqrt(K*Q**(n/(n + 1))/(m*(e**2 + 1)*(n + 1)))]

#把数据集转变成list列表,方便后面调用提取数据
result = []     
file_list = open("data.txt", "r")

for line in file_list.readlines():
    result.append(list(map(float, line.split(',')))) #result是全部数据(252×5)


def f1():
    X = []  #建立空白列表,要在循环上面,不然进不了循环
    K = []
    Q = []
    for item in result:
        # print(item[0:2])
        #Q = item[1]
        #k = item[0]
        y = 2 * sqrt(item[0] * item[1] ** (1.5 / (1.5 + 1)) / (0.04 * (0.9 ** 2 + 1) * (1.5 + 1)))
        X.append([y])
        K.append([item[0]])   #item是变量遍历全部数据(252×5)中每一行
        Q.append([item[1]])
        #print(y)
    return X, Q, K      #需要返回XQK的值,不然不会保存
X, Q, K  = f1()
X = np.array(X).reshape(1,252)    #强制把矩阵(252,1)转换为(1,252)形状
K = np.array(K).reshape(1,252)
Q = np.array(Q).reshape(1,252)


ANS = []
ANS = np.vstack((X, K)) 
ANS = np.vstack((ANS, Q))  #按照竖直方向把三个一行矩阵堆叠起来
print(ANS)

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值