计算硼原子的基态能级的java程序
生活随笔
收集整理的這篇文章主要介紹了
计算硼原子的基态能级的java程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這個程序由2個java程序,1個python程序共3部分構成,具體包括
public class eneB:用于計算硼原子的動能,勢能,庫侖能和相互作用能
public class overlap3:計算Gaunt積分和ck值
cal.py:用python實現積分
積分是由java調用python實現的,java和python通過一個csv文件來傳遞參數,程序中有兩個本地路徑需要改,
一個是csv的地址d:/工業/hk/python/表達式.csv,
一個是python程序的地址D:/Download/cal.py
程序初始化有兩個地方需要改,是eneB和cal,需要改核電荷數z,軌道半徑a0、a1,軌道fx、rj,兩個地方內容是同樣的。
啟動順序,先啟動cal.py,生成cal.py文件,再啟動eneB。
1.eneB代碼?
import java.io.DataInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.text.ParseException;public class eneB {//overlap3public static double calc2( String stra ) throws IOException, ParseException, InterruptedException {FileWriter fileWriter5 = new FileWriter("d:/工業/hk/python/表達式.csv");//stra="hin( fx1,fx1)";//stra="jin( rj1,rj2)";stra=stra.replaceAll(",","#");fileWriter5.write( stra + "\r\n");fileWriter5.flush();String exe = "python";String command = "D:/Download/cal.py"; String[] cmdArr = new String[] {exe ,command };Process process = Runtime.getRuntime().exec(cmdArr);InputStream is = process.getInputStream();DataInputStream dis = new DataInputStream(is);String str = dis.readLine();process.waitFor();System.out.println(str); double df= Double.parseDouble(str.trim()); return df;}public static double hin( String str1 ,String str2) throws IOException, ParseException, InterruptedException {String str="hin("+str1+","+str2+")";//System.out.println( str+" ** " );double d=calc2( str );return d; }public static double jin( String str1 ,String str2 , int str3) throws IOException, ParseException, InterruptedException {String str="jin("+str1+","+str2+","+str3+")";double d=calc2( str );return d; }public static double kin( String str1 ,String str2, String str3,String str4,int str5) throws IOException, ParseException, InterruptedException {String str="kin("+str1+","+str2+","+str3+","+str4+","+str5+")";double d=calc2( str );return d; }//ckLM ( int L1,int L2,int m1 ,int m2 ,int k )public static double ak( String str1 ,String str2,int L1,int m1 ,int L2,int m2) throws IOException, ParseException, InterruptedException {int k[]=overlap3.cgk (L1 , L2 );double t=0;for(int a=0 ;a<k.length ;a++){if(t<k[a]){t=k[a];}}double d=0.0;double d1=0.0;double d2=0.0; double d3=0.0; for(int a=0 ;a<5 ;a++){//System.out.println( k[a]+ "***" +a+" ** "+L1+" "+m1);d1=overlap3.ckLM(L1,L1,m1,m1,a);d2=overlap3.ckLM(L2,L2,m2,m2,a);if( (Math.abs(d1)>1e-6)&&(Math.abs(d2)>1e-6) ){d3=jin( str1 , str2 ,a);}if( (Math.abs(d1)<1e-6)||(Math.abs(d2)<1e-6) ){d3=0.0;}d=d+ d1*d2*d3;System.out.println( "***" +a+" ** "+L1+" "+m1+" d "+d1+" "+d2+" "+d3);}return d; }//ckLM ( int L1,int L2,int m1 ,int m2 ,int k )public static double bk( String str1 ,String str2, String str3,String str4,int L1,int m1 ,int L2,int m2) throws IOException, ParseException, InterruptedException {int k[]=overlap3.cgk (L1 , L2 );double t=0;for(int a=0 ;a<k.length ;a++){if(t<k[a]){t=k[a];}}double d=0.0;double d1=0.0;double d3=0.0; for(int a=0 ;a<5 ;a++){d1=overlap3.ckLM(L1,L2,m1,m2,a);if( (Math.abs(d1)>1e-6) ){d3=kin( str1 , str2, str3 , str4 ,a);}if( (Math.abs(d1)<1e-6) ){d3=0.0;}d=d+ d1*d1*d3;System.out.println( "***" +a+" ** d "+d+" "+d1*d1+" "+d3);}System.out.println( "*** ** "+L1+" "+m1+" d "+d1+" "+d3);return d; }public static void eB() throws IOException, ParseException, InterruptedException {int z=5;int a0=1;int a1=4;String fx1="(z/a0)**(1.5)*2*sympy.exp(-z*r/a0 )*(4*pi)**(-0.5)";String fx2="(z/( 2*a1))**(1.5)*(2-z*r/a1)*sympy.exp(-z*r/(2*a1) )*(4*pi)**(-0.5)";String fx3="(z/( 2*a1))**(1.5)*(z*r/(3**0.5*a1) )*sympy.exp(-z*r/(2*a1) )*(3/(4*pi))**(0.5)* cos(θ)";// 庫侖斥力積分//fj1 = (z/a0)**(1.5)*2*sympy.exp(-z*r1/a0 )*(4*pi)**(-0.5)//fj2 = (z/a0)**(1.5)*2*sympy.exp(-z*r2/a0 )*(4*pi)**(-0.5)String rj1 ="(z/a0)**(1.5)*2*sympy.exp(-z*r1/a0 )";String rj2 ="(z/a0)**(1.5)*2*sympy.exp(-z*r2/a0 )";//fj3=(z/( 2*a1))**(1.5)*(2-z*r1/a1)*sympy.exp(-z*r1/(2*a1) )*(4*pi)**(-0.5)//fj4=(z/( 2*a1))**(1.5)*(2-z*r2/a1)*sympy.exp(-z*r2/(2*a1) )*(4*pi)**(-0.5)String rj3="(z/( 2*a1))**(1.5)*(2-z*r1/a1)*sympy.exp(-z*r1/(2*a1) )";String rj4="(z/( 2*a1))**(1.5)*(2-z*r2/a1)*sympy.exp(-z*r2/(2*a1) )";//fj5=(z/( 2*a1))**(1.5)*(z*r1/(3**0.5*a1) )*sympy.exp(-z*r1/(2*a1) )*(3/(4*pi))**(0.5)* cos(θ)//fj6=(z/( 2*a1))**(1.5)*(z*r2/(3**0.5*a1) )*sympy.exp(-z*r2/(2*a1) )*(3/(4*pi))**(0.5)* cos(θ)String rj5="(z/( 2*a1))**(1.5)*(z*r1/(3**0.5*a1) )*sympy.exp(-z*r1/(2*a1) )";String rj6="(z/( 2*a1))**(1.5)*(z*r2/(3**0.5*a1) )*sympy.exp(-z*r2/(2*a1) )";// System.out.println( hin(fx1,fx1)+" ** " +jin(rj1,rj2)+" "+ kin(rj1,rj4,rj2,rj3,"1"));double fh=hin(fx1,fx1)*2+hin(fx2,fx2)*2+hin(fx3,fx3);double fj=ak( rj1 , rj2 ,0,0,0,0)+ak( rj1 , rj4 ,0,0,0,0)*4+ak( rj1 , rj6 ,0,0,1,0)*2+ak( rj3 , rj4 ,0,0,0,0)+ak( rj3 , rj6 ,0,0,1,0)*2;double fk=bk( rj1 ,rj4, rj2, rj3,0,0 ,0,0)*4+ bk( rj1 ,rj6, rj2, rj5,0,0 ,1,0)*2+bk( rj3 ,rj6, rj4, rj5,0,0 ,1,0)*2;System.out.println( fh+fj-fk +" "+fh+" "+fj+" "+fk +" "+(fh+fj-fk)*27.2 );}public static void main(String[] args) throws IOException, ParseException, InterruptedException {eB();}}2. overlap3代碼
import java.io.FileWriter;import java.io.IOException;import java.text.ParseException;import java.util.regex.Pattern;public class overlap3 {//只能得到合法數值//實現Gaunt積分 L<=2static int dx=1;public static double FACT( double n ) throws IOException, ParseException {double prodt=1.0;for(int a=1 ;a<n+1 ;a++){prodt=prodt*a;}if(n<0){// System.out.println( prodt+ " 負數階乘 " );dx=0;}return prodt;}// (m1*m2<0)&&m1<0 public static double gauntb ( int L1,int L2,int m1 ,int m2 ,int k ) throws IOException, ParseException{int s= (int) (0.5*(L1+k+L2));double f1=0.0;f1=FACT(k+Math.abs(m1-m2) )*FACT(L2+Math.abs(m2))*FACT(2*s-2*L2)*FACT(s);// System.out.println( " b "+ L1+" "+L2+" "+m1+" "+m2 ); double f2=FACT(k-Math.abs(m1-m2) )*FACT(s-L1)*FACT(s-k)*FACT(s-L2)*FACT(2*s+1);int t[]=choosetb ( L1, L2,m1 , m2 , k );double b=0.0;double f3=0.0;double f4=0.0;for(int a=0 ;a<t.length;a++){f3=FACT(L1+Math.abs(m1)+ t[a] )*FACT(k+L2-Math.abs(m1)-t[a]); f4=FACT(t[a])*FACT(L1-Math.abs(m1)- t[a] )*FACT(k-L2+Math.abs(m1)+t[a])*FACT(L2+m2-t[a]);b=b+Math.pow( (-1), t[a] )*f3/f4;}double g=2*Math.pow( (-1),s-k-Math.abs(m2) )*(f1/f2)*b;// System.out.println( g +" gaunt "+b +" b "+s+" "+k );return g; }//(m1*m2<0)&&m2<0 public static double gauntc ( int L1,int L2,int m1 ,int m2 ,int k ) throws IOException, ParseException{int s= (int) (0.5*(L1+k+L2));double f1=0.0;f1=FACT(k+Math.abs(m1-m2) )*FACT(L2+Math.abs(m2))*FACT(2*s-2*L2)*FACT(s);// System.out.println( " c "+ L1+" "+L2+" "+m1+" "+m2 +" "+k+" "); double f2=FACT(k-Math.abs(m1-m2) )*FACT(s-L1)*FACT(s-k)*FACT(s-L2)*FACT(2*s+1);int t[]=choosetc ( L1, L2,m1 , m2 , k );double b=0.0;double f3=0.0;double f4=0.0;for(int a=0 ;a<t.length;a++){f3=FACT(L1+Math.abs(m1)+ t[a] )*FACT(k+L2-Math.abs(m1)-t[a]); f4=FACT(t[a])*FACT(L1-Math.abs(m1)- t[a] )*FACT(k-L2+Math.abs(m1)+t[a])*FACT(L2-m2-t[a]);b=b+Math.pow( (-1), t[a] )*f3/f4;// System.out.println( b +" b " );}double g=2*Math.pow( (-1),s-k-Math.abs(m2) )*(f1/f2)*b;// System.out.println( g +" gaunt "+b +" b "+s+ " "+k );// System.out.println(FACT(0)+" "+FACT(L1-Math.abs(m1)- 0 )+" "+ FACT(k-L2+Math.abs(m1)+0)+" "+ FACT(L2-Math.abs(m2)-0) );return g; }public static double gaunta ( int L1,int L2,int m1 ,int m2 ,int k ) throws IOException, ParseException{int s= (int) (0.5*(L1+k+L2));double f1=0.0;f1=FACT(k+Math.abs(m1-m2) )*FACT(L2+Math.abs(m2))*FACT(2*s-2*L2)*FACT(s);double f2=FACT(k-Math.abs(m1-m2) )*FACT(s-L1)*FACT(s-k)*FACT(s-L2)*FACT(2*s+1);int t[]=chooset ( L1, L2,m1 , m2 , k );double b=0.0;double f3=0.0;double f4=0.0;for(int a=0 ;a<t.length;a++){f3=FACT(L1+Math.abs(m1)+ t[a] )*FACT(k+L2-Math.abs(m1)-t[a]); f4=FACT(t[a])*FACT(L1-Math.abs(m1)- t[a] )*FACT(k-L2+Math.abs(m1)+t[a])*FACT(L2-Math.abs(m2)-t[a]);b=b+Math.pow( (-1), t[a] )*f3/f4;// System.out.println( b +" b " );}double g=2*Math.pow( (-1),s-k-Math.abs(m2) )*(f1/f2)*b;// System.out.println( " a "+ L1+" "+L2+" "+m1+" "+m2 +" s k "+s+" "+k ); // System.out.println( g +" gaunt "+b +" b "+FACT(k+L2-Math.abs(m1)-0) );return g; }//算Gaunt 的Kpublic static int[] cgk ( int L1,int L2 ) throws IOException, ParseException{String str="";int cou=0;for(int a=0 ;a<7 ;a++){//System.out.println(a+" ** " );if( a<=L1+L2 && a>=Math.abs(L1-L2)){if((L1+L2+a)%2==0){//System.out.println(a+" ** * " );str=str+a+",";cou++;}}}int k[]=new int[cou];int cou1=0;for(int a=0 ;a<7 ;a++){//System.out.println(a+" ** " );if( a<=L1+L2 && a>=Math.abs(L1-L2)){if((L1+L2+a)%2==0){System.out.println(a+" ** * k" );k[cou1]=a;cou1++;}}}return k; }//判斷k是否合法public static int ckk ( int []tem ,int k ) throws IOException, ParseException{int cou=0;for(int a=0 ;a<tem.length ;a++){//System.out.println(a+" ** " );if( tem[a]==k ){cou=1;break;}}return cou;}//考慮 L1=L2<=3 t [-6,9]public static void cgt ( ) throws IOException, ParseException{double a1=0.0;double a2=0.0;double a3=0.0;double a4=0.0;double a5=0.0;for(int L1=0 ;L1<4 ;L1++){for(int L2=0 ;L2<4 ;L2++){for(int m1=-L1 ;m1<L1+1 ;m1++){for(int m2=-L2 ;m2<L2+1 ;m2++){// System.out.println( L1+" "+L2+" "+m1+" "+m2+" ** " ); int k[]=cgk ( L1,L2 );for(int a=0 ;a<k.length ;a++){a1=L1+Math.abs(m1); //0 6 //+t -6 ooa2=k[a]+L2-Math.abs(m1); //0 9 //-t 9 -oo a3=L1-Math.abs(m1); //0 3 //-t 3 -ooa4=k[a]-L2+Math.abs(m1); // -3 6 //+t -6 oo a5=L2-Math.abs(m2); //0 3 //-t 3 -oo// System.out.println( a1+ " "+a2+" "+a3+" "+a4+" "+a5 ); }}}}}}//在0到9范圍內選擇t 但t不能是負數 給出t數組public static int[] chooset ( int L1,int L2,int m1 ,int m2 ,int k ) throws IOException, ParseException{int a1=0;int a2=0;int a3=0;int a4=0;int a5=0;String str="";for(int a=0 ;a<10 ;a++){a1=L1+Math.abs(m1)+a; //0 -6a2=k+L2-Math.abs(m1)-a; //0 -9 a3=L1-Math.abs(m1)-a; //0 -3a4=k-L2+Math.abs(m1)+a; //-6 3a5=L2-Math.abs(m2)-a; //0 -3if(a1>=0&&a2>=0&&a3>=0&&a4>=0&&a5>=0){str=str+a+",";}}//System.out.println( str+ " ** t" );str=str.trim();String[] w=Pattern.compile(",").split(str);int []t=new int[w.length];for (int b = 0; b < w.length ; b++) {t[b]=Integer.parseInt(w[b].trim());// System.out.println( t[b]+" ** t" );}return t;}public static int[] choosetb ( int L1,int L2,int m1 ,int m2 ,int k ) throws IOException, ParseException{int a1=0;int a2=0;int a3=0;int a4=0;int a5=0;String str="";for(int a=0 ;a<10 ;a++){a1=L1+Math.abs(m1)+a; //0 -6a2=k+L2-Math.abs(m1)-a; //0 -9 a3=L1-Math.abs(m1)-a; //0 -3a4=k-L2+Math.abs(m1)+a; //-6 3//a5=L2-Math.abs(m2)-a; //0 -3a5=L2+m2-a;if(a1>=0&&a2>=0&&a3>=0&&a4>=0&&a5>=0){str=str+a+",";}}//System.out.println( str+ " ** t" );str=str.trim();String[] w=Pattern.compile(",").split(str);int []t=new int[w.length];for (int b = 0; b < w.length ; b++) {t[b]=Integer.parseInt(w[b].trim());// System.out.println( t[b]+" ** t" );}return t;}public static int[] choosetc ( int L1,int L2,int m1 ,int m2 ,int k ) throws IOException, ParseException{int a1=0;int a2=0;int a3=0;int a4=0;int a5=0;String str="";for(int a=0 ;a<10 ;a++){a1=L1+Math.abs(m1)+a; //0 -6a2=k+L2-Math.abs(m1)-a; //0 -9 a3=L1-Math.abs(m1)-a; //0 -3a4=k-L2+Math.abs(m1)+a; //-6 3//a5=L2-Math.abs(m2)-a; //0 -3a5=L2-m2-a;if(a1>=0&&a2>=0&&a3>=0&&a4>=0&&a5>=0){str=str+a+",";}}//System.out.println( str+ " ** t" );str=str.trim();String[] w=Pattern.compile(",").split(str);int []t=new int[w.length];for (int b = 0; b < w.length ; b++) {t[b]=Integer.parseInt(w[b].trim());// System.out.println( t[b]+" ** t" );}return t;}public static double ckLM ( int L1,int L2,int m1 ,int m2 ,int k ) throws IOException, ParseException{int t1=L1;int t2=L2;int t3=m1;int t4=m2;dx=1;// System.out.println( " a4 ***** "+ L1+" "+L2+" "+m1+" "+m2 ); int []tem= cgk(L1,L2);int cou= ckk ( tem , k );double a4=0;if(cou==1){int a=0; a=(int) ((m1+Math.abs(m1)+m2+Math.abs(m2) +(m1-m2)+Math.abs(m1-m2))*0.5);double a1=Math.pow( FACT(k-Math.abs(m1-m2) ) / FACT(k+Math.abs(m1-m2)) ,0.5 );double a2=Math.pow( FACT(L1-Math.abs(m1))*(2*L1+1) / (FACT(L1+Math.abs(m1))*2 ) ,0.5 );double a3=Math.pow( FACT(L2-Math.abs(m2))*(2*L2+1) /(FACT(L2+Math.abs(m2))*2 ) ,0.5 );// System.out.println( a+" *** * *"+ a1+" "+a2+" "+a3 );double a5=0.0;if ( (Math.abs(m1)>=Math.abs(m2))&& (m1*m2>=0 ) ) { a5=gaunta ( L1, L2, m1 ,m2 , k );}if ( (Math.abs(m1)<Math.abs(m2))&& (m1*m2>=0 ) ){a5=gaunta ( t2, t1, t4 ,t3 , k ); }if ( (m1*m2<0)&&m1<0 ) {a5=gauntb ( L1, L2, m1 ,m2 , k );a=(int) ((m1+m1+m2+Math.abs(m2) +(m1-m2)+Math.abs(m1-m2))*0.5);if(L1==1&&L2==2&&m1==-1&&m2==2&&k==3){a=(int) ((m1+Math.abs(m1)+m2-Math.abs(m2) +(m1-m2)+Math.abs(m1-m2))*0.5);}if(L1==2&&L2==2&&m1==-2&&m2==1&&k==4){a=(int) ((m1+Math.abs(m1)+m2-Math.abs(m2) +(m1-m2)+Math.abs(m1-m2))*0.5);}if(L1==2&&L2==1&&m1==-2&&m2==1&&k==3){a=(int) ((m1+Math.abs(m1)+m2-Math.abs(m2) +(m1-m2)+Math.abs(m1-m2))*0.5);} if(L1==2&&L2==2&&m1==-1&&m2==2&&k==4){a=(int) ((m1+Math.abs(m1)+m2-Math.abs(m2) +(m1-m2)+Math.abs(m1-m2))*0.5);}}if ( (m1*m2<0)&&m2<0 ) {a5=gauntc ( L1, L2, m1 ,m2 , k );a=(int) ((m1+Math.abs(m1)+m2+m2 +(m1-m2)+Math.abs(m1-m2))*0.5);}a4=Math.pow( (-1),a)*a1*a2*a3*a5;double a6=Math.pow( (-1),a)*a1*a2*a3;if(dx==0){// System.out.println( " dx *** * *" +dx );a4=0;}}if(cou==0){// System.out.println( " cou *** * *" );a4=0;}System.out.println( a4+" a4 "+ L1+" "+L2+" "+m1+" "+m2 ); return a4;}public static void main(String[] args) throws IOException, ParseException {ckLM ( 1 , 0 , 1 , 0 , 1 ); //ckLM ( 0 , 1 , 0 , 1 , 1 ); }}3.cal代碼
import sympy import math from sympy import symbols, cancel import csva = sympy.Symbol('a') e = sympy.Symbol('e') m = sympy.Symbol('m') h = sympy.Symbol('h') l = sympy.Symbol('l') lp = sympy.Symbol('lp') r = sympy.Symbol('r') EE = sympy.Symbol('EE') R = sympy.Symbol('R') r1 = sympy.Symbol('r1') r2 = sympy.Symbol('r2') r3 = sympy.Symbol('r3')c1 = sympy.Symbol('c1') c2 = sympy.Symbol('c2') c3 = sympy.Symbol('c3')μ = sympy.Symbol('μ') v = sympy.Symbol('v')α = sympy.Symbol('α') β = sympy.Symbol('β')x = sympy.Symbol('x') y = sympy.Symbol('y') z = sympy.Symbol('z')θ1= sympy.Symbol('θ1') θ2= sympy.Symbol('θ2') Φ1= sympy.Symbol('Φ1') Φ2= sympy.Symbol('Φ2')θ= sympy.Symbol('θ') Ψ= sympy.Symbol('Ψ') Φ= sympy.Symbol('Φ') pi=sympy.Symbol('pi') E=sympy.Symbol('E') I=sympy.Symbol('I') sin=sympy.Symbol('sin') cos=sympy.Symbol('cos') tan=sympy.Symbol('tan') diff=sympy.Symbol('diff') integrate=sympy.Symbol('integrate')pi=sympy.pi E=sympy.E sin=sympy.sin cos=sympy.cos tan=sympy.tan diff=sympy.diff integrate=sympy.integratedef hin( fx1 ,fx2 ):fx = fx1#print("z ",z)# 拉普拉斯算符f1 = (1 / (r * r)) * diff((r * r * diff(fx, r)), r)f2 = (1 / (r * r * sin(θ))) * diff((sin(θ) * diff(fx, θ)), θ)f3 = (1 / (r * r * sin(θ) * sin(θ))) * diff(fx, Φ, Φ)f8 = fx2*(-1 / 2) * (f1 + f2 + f3)# print ( f1 )# print ( f2 )# print ( f3 )# print ( f8 )# 球坐標積分 動能f9 = (integrate((integrate(integrate(f8 * r * r * sin(θ), (r, 0, float('inf'))), (θ, 0, pi))), (Φ, 0, 2 * pi)))# print(f9)f10 = fx2 * (-z / r) * fx# 勢能f11 = (integrate((integrate(integrate(f10 * r * r * sin(θ), (r, 0, float('inf'))), (θ, 0, pi))), (Φ, 0, 2 * pi)))# print(f11)#print("H", f9 + f11)return f9 + f11def jin (fr1 ,fr2 ,k):f21 = fr1 * fr2 * (r2 ** k / r1 ** (k + 1)) * fr1 * fr2 * r1 * r1 * r2 * r2f22 = fr1 * fr2 * (r1 ** k / r2 ** (k + 1)) * fr1 * fr2 * r1 * r1 * r2 * r2f23 = (integrate(f21, (r2, 0, r1)))f24 = (integrate(f22, (r2, r1, float('inf'))))f25 = ( integrate(f24 + f23, (r1, 0, float('inf'))))# print("f23",f23)# print("f24",f24)#print( f25)return f25def kin(fr1, fr2, fr3, fr4, k):# 交換積分# fr1 = (z) ** (1.5) * sympy.exp(-z * r1) * pi ** (-0.5)# fr2 = (z) ** (1.5) * sympy.exp(-z * r2) * pi ** (-0.5)# fr3 = (z) ** (1.5) * sympy.exp(-z * r2) * pi ** (-0.5)# fr4 = (z) ** (1.5) * sympy.exp(-z * r1) * pi ** (-0.5)f21 = fr1 * fr2 * (r2 ** k / r1 ** (k + 1)) * fr3 * fr4 * r1 * r1 * r2 * r2f22 = fr1 * fr2 * (r1 ** k / r2 ** (k + 1)) * fr3 * fr4 * r1 * r1 * r2 * r2f23 = (integrate(f21, (r2, 0, r1)))f24 = (integrate(f22, (r2, r1, float('inf'))))f36 = (integrate(f24 + f23, (r1, 0, float('inf'))))# print("f23",f23)# print("f24",f24)#print("K", f36)return f36def sab (fr1 ,fr2 ):# print("f23",f23)# print("f24",f24)f9 = (integrate((integrate(integrate( fr1*fr2 * r * r * sin(θ), (r, 0, float('inf'))), (θ, 0, pi))), (Φ, 0, 2 * pi)))print("S", f9)return f9z=5a0=1 a1=4#a0=1 #a1=4''' fx1=(z/a0)**(1.5)*2*sympy.exp(-z*r/a0 )*(4*pi)**(-0.5) fx2=(z/( 2*a1))**(1.5)*(2-z*r/a1)*sympy.exp(-z*r/(2*a1) )*(4*pi)**(-0.5) fx3=(z/( 2*a1))**(1.5)*(z*r/(3**0.5*a1) )*sympy.exp(-z*r/(2*a1) )*(3/(4*pi))**(0.5)* cos(θ)# 庫侖斥力積分 #fj1 = (z/a0)**(1.5)*2*sympy.exp(-z*r1/a0 )*(4*pi)**(-0.5) #fj2 = (z/a0)**(1.5)*2*sympy.exp(-z*r2/a0 )*(4*pi)**(-0.5) rj1 = (z/a0)**(1.5)*2*sympy.exp(-z*r1/a0 ) rj2 = (z/a0)**(1.5)*2*sympy.exp(-z*r2/a0 )#fj3=(z/( 2*a1))**(1.5)*(2-z*r1/a1)*sympy.exp(-z*r1/(2*a1) )*(4*pi)**(-0.5) #fj4=(z/( 2*a1))**(1.5)*(2-z*r2/a1)*sympy.exp(-z*r2/(2*a1) )*(4*pi)**(-0.5) rj3=(z/( 2*a1))**(1.5)*(2-z*r1/a1)*sympy.exp(-z*r1/(2*a1) ) rj4=(z/( 2*a1))**(1.5)*(2-z*r2/a1)*sympy.exp(-z*r2/(2*a1) )#fj5=(z/( 2*a1))**(1.5)*(z*r1/(3**0.5*a1) )*sympy.exp(-z*r1/(2*a1) )*(3/(4*pi))**(0.5)* cos(θ) #fj6=(z/( 2*a1))**(1.5)*(z*r2/(3**0.5*a1) )*sympy.exp(-z*r2/(2*a1) )*(3/(4*pi))**(0.5)* cos(θ) rj5=(z/( 2*a1))**(1.5)*(z*r1/(3**0.5*a1) )*sympy.exp(-z*r1/(2*a1) ) rj6=(z/( 2*a1))**(1.5)*(z*r2/(3**0.5*a1) )*sympy.exp(-z*r2/(2*a1) ) '''f = csv.reader(open('d:/工業/hk/python/表達式.csv','r')) for i in f:f2=(i)f2[0] = f2[0].replace("#", ",")d=(eval(f2[0]))print ( round( d,16 ) )總結
以上是生活随笔為你收集整理的计算硼原子的基态能级的java程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车辆购置税完税凭证怎么做账
- 下一篇: 将神经网络粒子化