• 回答数

    0

  • 浏览数

    2131

  • 收藏数

    0

作者:天线宝宝 发表于 2020-5-22 10:27:15
跳转到指定楼层
第一个函数代码代表是的图片中的第二个方程
第二个函数代码代表的是图片中的第一个方程,变换位置,等式左边减右边
第三个函数代表利用二分法求解第二个方程的解

第二个方程需要第一个方程的参数  
最终要求的是n的值

给定S的值是116.627

运行报错

求大神帮忙分析

from sympy import *
import numpy as np

n = symbols('n')

def Fermi_Dic(i,n):
    E = symbols('E')
    return integrate((E**i/(1+exp(E-n))), E,0,float('inf'))


def fun_seebeck(n,S):
    return S*(1e-6)-((kB/e)*((2*Fermi_Dic(2,n))/(Fermi_Dic(0,n))-n))

def fun_n(S):
    a=10
    b=-10
    c=(a+b)/2
    while abs(b-a)>1e-12:
        if fun_seebeck(a,S)*fun_seebeck(c,S)>0:
            a=c
        elif fun_seebeck(a,S)*fun_seebeck(c,S)<0:
            b=c
        elif fun_seebeck(c,S)==0:
            return c
    return start

kB = 1.38064852E-23       #% Boltzmann constant (J/K)
h = 6.6260693E-34    # % Plank constant h (J*s)
e = 9.109382E-31      # % 自由电子的质量 9.109382E-31 Kg;
pi=3.1415926
n=n
i=2
Fermi_Dic(i,n)
fun_seebeck(n,116.627)
fun_n(116.627)
分享:
回复

使用道具

成为第一个回答人

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录