使用辣味解决复杂的ODE小组。不成功地整合solve_bvp

时间:2018-07-24 18:15:52

标签: python scipy integrate

当我逐句运行代码时,没有错误。但是,当我检查AA(代码中的bvp解决方案)的结果时,它显示我错误地解决了该ODE组。

如何正确运行此代码?

import numpy as np
import scipy.integrate
from scipy.integrate import solve_bvp
import matplotlib.pyplot as plt

k=0.06
Theta=20
p=0.4 #porosity of the electrode 
pi=3.14
L=4 #cm
R=8.314 
F=96485
t2=0.78
C0=1
T=298.15
vs=1
aa=0.5
ac=0.5
a=23300
i0=2e-2
Dad=0.5
I=2 
Da=900
B=(1/k*(p**(1.5)))+1/Theta
C=I/(2*pi*L*Theta)
D=2*R*T/F
E=Da*p**(1.5)

def battery(r,y):
A=np.exp((aa*F*y[0])/(R*T))-np.exp((-ac*F*y[0])/(R*T))
return np.vstack((y[1]*B-C/r+(D*y[3]/y[2])*(0.22+y[2]),
                  A/((1/a*i0)+A/Dad),
                  y[3],
                  ((1-E)/E)*y[3]+(0.22/(E*F))*(A/((1/a*i0)+A/Dad))))                                       

def boundary(ya,yb):
return [ya[1]-2/(2*3.14*4*10*4.2),yb[1],ya[2]-9,yb[3]]

n = 25
r = np.linspace(4.2, 6.9, n)
y = np.ones((4,r.size))
AA=solve_bvp(battery,boundary,r,y)

结果如下:

sol: <scipy.interpolate.interpolate.PPoly object at 0x11303f728>
    status: 2
   success: False

0 个答案:

没有答案