Python 使用 np.exp() 函数出现 TypeError

运行如下代码会出现如下错误提示

TypeError: can’t multiply sequence by non-int of type ‘float’

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import numpy as np

x = [1.0, 2.0, 3.0]
y = np.exp(0.2*x)

print (x,y)

解决办法:在调用 np.exp() 函数前将 x 转换为数组

x = np.array(x)
运行下面的代码,如有错请提出修复意见。import numpy as np import matplotlib.pyplot as plt from sympy.codegen import Print from scipy.integrate import quad """ 树图贡献 """ g2=0.65 gYZ=0.35 gYW=0.35 Yt=0.95 Vphi=246 lam1=0.12 def V_tree(x): return ( 0.5 * mu1 ** 2 * x**2 ) """ 零温Coleman-Weinberg势和counter-term势 """ """ 粒子的质量平方 def Par_mass(x): mu1sq = -lam1 * Vphi ** 2 return { "mZ_sq": 0.25 * (g2**2 + gYZ**2) * x**2, "mW_sq": 0.25 * gYW**2 * x**2, "mt_sq": 0.5 * Yt**2 * x**2, "mh_sq": mu1sq + 3 * lam1 * x**2, "mG_sq": mu1sq + lam1 * x**2, } """ # Z的质量平方 def mZ_sq(x): return ( 0.25 * (g2**2 + gYZ**2) * x**2 ) # W的质量平方 def mW_sq(x): return ( 0.25 * gYW**2 * x**2 ) # t的质量平方 def mt_sq(x): return ( 0.5 * Yt**2 * x**2 ) # Higgs质量平方 def mh_sq(x): mu1sq=-lam1 * Vphi**2 return (mu1sq + 3 * lam1 * x**2 ) # Goldstone质量平方 def mG_sq(x): mu1sq = -lam1 * Vphi ** 2 return ( mu1sq + lam1 * x**2 ) def V_1_0ct(x): return( 1 / (64 * np.pi**2) * ( 3 * (-1)**0 * (mZ_sq(x)**2 * (np.log(mZ_sq(x)/mZ_sq(V_phi)) - 3/2) + 2 * mZ_sq(x) * mZ_sq(V_phi)) + 6 * (-1)**0 * (mW_sq(x)**2 * (np.log(mW_sq(x)/mW_sq(V_phi)) - 3/2) + 2 * mW_sq(x) * mW_sq(V_phi)) + 12 * (-1)**1 * (mt_sq(x)**2 * (np.log(mt_sq(x)/mt_sq(V_phi)) - 3/2) + 2 * mt_sq(x) * mt_sq(V_phi)) + 1 * (-1)**0 * (mh_sq(x)**2 * (np.log(mh_sq(x)/mh_sq(V_phi)) - 3/2) + 2 * mh_sq(x) * mh_sq(V_phi)) + 3 * (-1)**0 * (mG_sq(x)**2 * (np.log(mG_sq(x)/mG_sq(V_phi)) - 3/2) + 2 * mG_sq(x) * mG_sq(V_phi)) ) ) def VT_Z(y, x, T): sqrt_termZ = np.sqrt(y**2 + mZ_sq(x)/T**2) return y**2 * np.log(1 - np.exp(-sqrt_termZ)) def VT_W(y, x, T): sqrt_termW = np.sqrt(y**2 + mW_sq(x)/T**2) return y**2 * np.log(1 - np.exp(-sqrt_termW)) def VT_t(y, x, T): sqrt_termt = np.sqrt(y**2 + mt_sq(x)/T**2) return y**2 * np.log(1 - np.exp(-sqrt_termt)) def VT_h(y, x, T): sqrt_termh = np.sqrt(y**2 + mh_sq(x)/T**2) return y**2 * np.log(1 - np.exp(-sqrt_termh)) def VT_G(y, x, T): sqrt_termG = np.sqrt(y**2 + mh_sq(x)/T**2) return y**2 * np.log(1 - np.exp(-sqrt_termG)) def V1_T(y, x, T): PF_F=(-1 * T**4) / (2 * np.pi**2) PF_B=T**4 / (2 * np.pi**2) return 3 * PF_B * quad(lambda y: VT_Z(y, x, T))[0] # 积分时固定x和T print(V1_T(y,1,100)) print(quad(lambda y: VT_Z(y, 1, T=100), 0, np.inf)[0]) print(quad(lambda y: VT_W(y, 1, T=100), 0, np.inf)[0]) print(quad(lambda y: VT_t(y, 1, T=100), 0, np.inf)[0]) print(quad(lambda y: VT_h(y, 1, T=100), 0, np.inf)[0]) print(quad(lambda y: VT_G(y, 1, T=100), 0, np.inf)[0])
最新发布
03-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值