From 86c1080631d2213ac8402a62fd131b5ae91bf2e3 Mon Sep 17 00:00:00 2001 From: Rowan Cockett Date: Sat, 26 Oct 2013 16:19:02 -0700 Subject: [PATCH] Documentation updates. --- SimPEG/forward/LinearProblem.py | 126 +++++++++--------- SimPEG/forward/__init__.py | 1 + .../{BetaSchedual.py => BetaSchedule.py} | 2 +- SimPEG/inverse/__init__.py | 2 +- docs/api_Optimize.rst | 15 +++ docs/api_Problem.rst | 10 +- 6 files changed, 89 insertions(+), 67 deletions(-) rename SimPEG/inverse/{BetaSchedual.py => BetaSchedule.py} (86%) diff --git a/SimPEG/forward/LinearProblem.py b/SimPEG/forward/LinearProblem.py index 2260f8db..d30a5b4d 100644 --- a/SimPEG/forward/LinearProblem.py +++ b/SimPEG/forward/LinearProblem.py @@ -5,47 +5,6 @@ from SimPEG.regularization import Regularization from SimPEG.inverse import * import matplotlib.pyplot as plt -N = 100 -h = np.ones(N)/N -M = TensorMesh([h]) - -nk = 20 -jk = np.linspace(1.,20.,nk) -p = -0.25 -q = 0.25 - - - -g = lambda k: np.exp(p*jk[k]*M.vectorCCx)*np.cos(2*np.pi*q*jk[k]*M.vectorCCx) - -G = np.empty((nk, M.nC)) - -for i in range(nk): - G[i,:] = g(i) - - - -plt.figure(1) -for i in range(nk): - plt.plot(G[i,:]) - - -m_true = np.zeros(M.nC) -m_true[M.vectorCCx > 0.3] = 1. -m_true[M.vectorCCx > 0.45] = -0.5 -m_true[M.vectorCCx > 0.6] = 0 - - -d_true = G.dot(m_true) -noise = 0.1 * np.random.rand(d_true.size) - -d_obs = d_true + noise - -# plt.figure(3) -# plt.plot(d_true,'-o') -# plt.plot(d_obs,'r-o') - - class LinearProblem(Problem): """docstring for LinearProblem""" @@ -59,27 +18,72 @@ class LinearProblem(Problem): def Jt(self, m, v, u=None): return G.T.dot(v) -prob = LinearProblem(M) -prob.G = G -prob.dobs = d_obs -prob.std = np.ones_like(d_obs)*0.1 +if __name__ == '__main__': + N = 100 + h = np.ones(N)/N + M = TensorMesh([h]) -reg = Regularization(M) - -opt = InexactGaussNewton(maxIter=20) - -inv = Inversion(prob,reg,opt,beta0=1e-4) - -m0 = np.zeros_like(m_true) - -mrec = inv.run(m0) - - -plt.figure(2) - -plt.plot(M.vectorCCx, m_true, 'b-') -plt.plot(M.vectorCCx, mrec, 'r-') + nk = 20 + jk = np.linspace(1.,20.,nk) + p = -0.25 + q = 0.25 -plt.show() + g = lambda k: np.exp(p*jk[k]*M.vectorCCx)*np.cos(2*np.pi*q*jk[k]*M.vectorCCx) + + G = np.empty((nk, M.nC)) + + for i in range(nk): + G[i,:] = g(i) + + + + plt.figure(1) + for i in range(nk): + plt.plot(G[i,:]) + + + m_true = np.zeros(M.nC) + m_true[M.vectorCCx > 0.3] = 1. + m_true[M.vectorCCx > 0.45] = -0.5 + m_true[M.vectorCCx > 0.6] = 0 + + + d_true = G.dot(m_true) + noise = 0.1 * np.random.rand(d_true.size) + + d_obs = d_true + noise + + # plt.figure(3) + # plt.plot(d_true,'-o') + # plt.plot(d_obs,'r-o') + + + + + + prob = LinearProblem(M) + prob.G = G + prob.dobs = d_obs + prob.std = np.ones_like(d_obs)*0.1 + + reg = Regularization(M) + + opt = InexactGaussNewton(maxIter=20) + + inv = Inversion(prob,reg,opt,beta0=1e-4) + + m0 = np.zeros_like(m_true) + + mrec = inv.run(m0) + + + plt.figure(2) + + plt.plot(M.vectorCCx, m_true, 'b-') + plt.plot(M.vectorCCx, mrec, 'r-') + + + + plt.show() diff --git a/SimPEG/forward/__init__.py b/SimPEG/forward/__init__.py index 5f9dafaf..a7c58967 100644 --- a/SimPEG/forward/__init__.py +++ b/SimPEG/forward/__init__.py @@ -1,3 +1,4 @@ from Problem import * from DCProblem import DCProblem +from LinearProblem import LinearProblem import ModelTransforms diff --git a/SimPEG/inverse/BetaSchedual.py b/SimPEG/inverse/BetaSchedule.py similarity index 86% rename from SimPEG/inverse/BetaSchedual.py rename to SimPEG/inverse/BetaSchedule.py index 62fe8416..2c633a6a 100644 --- a/SimPEG/inverse/BetaSchedual.py +++ b/SimPEG/inverse/BetaSchedule.py @@ -1,7 +1,7 @@ class Cooling(object): - """Simple Beta Schedual""" + """Simple Beta Schedule""" beta0 = 1.e6 beta_coolingFactor = 5. diff --git a/SimPEG/inverse/__init__.py b/SimPEG/inverse/__init__.py index 2ca95fb5..14bddce7 100644 --- a/SimPEG/inverse/__init__.py +++ b/SimPEG/inverse/__init__.py @@ -1,3 +1,3 @@ from Optimize import * from Inversion import * -import BetaSchedual +import BetaSchedule diff --git a/docs/api_Optimize.rst b/docs/api_Optimize.rst index 9765bd3b..d726b5f8 100644 --- a/docs/api_Optimize.rst +++ b/docs/api_Optimize.rst @@ -6,3 +6,18 @@ Optimize .. automodule:: SimPEG.inverse.Optimize :members: :undoc-members: + + +Inversion +********* + +.. automodule:: SimPEG.inverse.Inversion + :members: + :undoc-members: + +Beta Schedule +************* + +.. automodule:: SimPEG.inverse.BetaSchedule + :members: + :undoc-members: diff --git a/docs/api_Problem.rst b/docs/api_Problem.rst index 83250f3e..068e30da 100644 --- a/docs/api_Problem.rst +++ b/docs/api_Problem.rst @@ -13,14 +13,16 @@ Problem DCProblem ********* -.. automodule:: SimPEG.forward.DCProblem.DCProblem +.. automodule:: SimPEG.forward.DCProblem :members: :undoc-members: -DCutils -******* -.. automodule:: SimPEG.forward.DCProblem.DCutils +Linear Problem +************** + +.. automodule:: SimPEG.forward.LinearProblem :members: :undoc-members: +