Hello everyone, I hope y'all are well.
I have an urgent task that must do in 8 hours from now.
This task needs an expert with mathematics related to differential equations and coding in python for a simple problem.
I attracted task as an image.
https://drive.google.com/open?id=13aH4pF...GYSrgyowEj
I prefer this code format.
I have an urgent task that must do in 8 hours from now.
This task needs an expert with mathematics related to differential equations and coding in python for a simple problem.
I attracted task as an image.
https://drive.google.com/open?id=13aH4pF...GYSrgyowEj
I prefer this code format.
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
def microbes(phi, kappa, mu, L = 1024, Nx=1024,Nt=1201,T=600,display=False):
"""
Question 2.2
Simulate microbe competition model
Input:
phi,kappa,mu: model parameters
Nx: Number of grid points in x
Nt: Number of time steps
T: Timespan for simulation is [0,T]
Display: Function creates contour plot of f when true
Output:
f,g: Nt x Nx arrays containing solution
"""
#generate grid
L = 1024
x = np.linspace(0,L,Nx)
dx = x[1]-x[0]
dx2inv = 1/dx**2
def RHS(y, t, k, r, phi, dx2inv):
n = y.size//2
f = y[:n]
g = y[:n]
#Compute 2nd derivatives
d2f = (f[2:]-2*f[1:-1]+f[:-2])*dx2inv
d2g = (g[2:]-2*g[1:-1]+g[:-2])*dx2inv
#Construct RHS
R = f/(f+phi)
dfdt = d2f + f[1:-1]*(1-f[1:-1])- R[1:-1]*g[1:-1]
dgdt = d2g - r*k*g[1:-1] + k*R[1:-1]*g[1:-1]
dy = np.zeros(2*n)
dy[1:n-1] = dfdt
dy[n+1:-1] = dgdt
#Enforce boundary conditions
a1,a2 = -4/3,-1/3
dy[0] = a1*dy[1]+a2*dy[2]
dy[n-1] = a1*dy[n-2]+a2*dy[n-3]
dy[n] = a1*dy[n+1]+a2*dy[n+2]
dy[-1] = a1*dy[-2]+a2*dy[-3]
return dy
rho = mu/kappa
F = rho*phi/(1-rho)
G = (1-F)*(F+phi)
y0 = np.zeros(2*Nx) #initialize signal
y0[:Nx] = F
y0[Nx:] = G + 0.01*np.cos(10*np.pi/L*x) + 0.01*np.cos(20*np.pi/L*x)
t = np.linspace(0,T,Nt)
#compute solution
print("running simulation...")
y = odeint(RHS,y0,t,args=(kappa,rho,phi,dx2inv),rtol=1e-6,atol=1e-6)
f = y[:,:Nx]
g = y[:,Nx:]
print("finished simulation")
if display:
plt.figure()
plt.contour(x,t,f)
plt.xlabel('x')
plt.ylabel('t')
plt.title('Contours of f')
return f,g
def newdiff(f,h):
"""
Question 2.1 i)
Input:
f: array whose 2nd derivative will be computed
h: grid spacing
Output:
d2f: second derivative of f computed with compact fd scheme
"""
d2f = np.zeros_like(f) #modify as needed
#Coefficients for compact fd scheme
alpha = 9/38
a = (696-1191*alpha)/428
b = (2454*alpha-294)/535
c = (1179*alpha-344)/2140
return d2f #modify as needed
def analyzefd():
"""
Question 2.1 ii)
Add input/output as needed
"""
return None #modify as needed
def dynamics():
"""
Question 2.2
Add input/output as needed
"""
return None #modify as needed
if __name__=='__main__':
x=None
#Add code here to call functions above and
#generate figures you are submitting
