How can I solve a non-linear functional problem numerically?

  • Context: Graduate 
  • Thread starter Thread starter Irid
  • Start date Start date
  • Tags Tags
    Functional Non-linear
Click For Summary

Discussion Overview

The discussion revolves around solving a non-linear functional equation numerically, specifically the equation \(\psi(x) \exp (a\psi(x)^2) = C f(x)\) with the condition \(\int \psi(x)\, dx = 1\). Participants explore the well-posedness of the problem and propose numerical algorithms for finding \(\psi(x)\) and the constant \(C\), considering the properties of the function \(f(x)\).

Discussion Character

  • Exploratory, Technical explanation, Mathematical reasoning

Main Points Raised

  • Some participants argue that if \(a \geq 0\), the problem is well-posed, suggesting that there exists a unique function \(\psi_C\) for each \(C \geq 0\) that satisfies the functional equation.
  • It is noted that \(\psi_C\) is smooth and integrable if \(f\) is piecewise continuous, and that \(\psi_C\) increases with \(C\).
  • One participant describes their approach to numerically solve the equation by taking the logarithm and iteratively refining an initial guess for \(\psi\), suggesting a Taylor expansion method to update the guess.
  • Another participant mentions the need to ensure the normalization of \(\psi\) during the iterations and proposes a method to adjust \(C\) based on the norms of the functions involved.
  • Concerns are raised about the necessity of a fine mesh to avoid non-physical fluctuations in the solution.

Areas of Agreement / Disagreement

Participants generally agree on the well-posedness of the problem under certain conditions, but there is no consensus on the numerical methods, as different approaches and challenges are discussed.

Contextual Notes

The discussion highlights the dependence on the properties of the function \(f(x)\), which is typically known only numerically and resembles a Gaussian or exponential decay. The problem is also specified to be in three dimensions, adding complexity to the numerical solution.

Irid
Messages
207
Reaction score
1
Hello,
I'm not really sure where does this question fit and what title should it bear, but here is my problem:

[itex]\psi(x) \exp (a\psi(x)^2) = C f(x)[/itex]

given a positive definite f(x), find ψ(x) and the constant C, subject to the condition

[itex]\int \psi(x)\, dx = 1[/itex]

I want to solve this numerically but I'm having a hard time devising a suitable algorithm... is this even a well-posed problem?
 
Physics news on Phys.org
If [itex]a\geq 0[/itex], then it's well-posed.

Indeed, [itex]ye^{ay^2}[/itex] is a strictly increasing function of [itex]y[/itex] which vanishes at [itex]y=0[/itex] and blows up as [itex]y\to\infty[/itex], so for each [itex]C\geq 0[/itex], there's a unique choice of function [itex]\psi_C[/itex] that satisfies your functional equation. Also, the solution [itex]\psi_C[/itex] is going to be as smooth as [itex]f[/itex] is; in particular, it's integrable if [itex]f[/itex] is (say) piecewise continuous. Moreover, [itex]\psi_C[/itex] increases (smoothly enough to make [itex]\int\psi_C[/itex] continuous in [itex]C[/itex] if it's finite-valued) with [itex]C[/itex], and you can use a bounding argument to show that [itex]\psi_C[/itex] can be made arbitrarily big or small as you vary [itex]C[/itex]. It follows that as long as [itex]f[/itex] is such that, for small enough [itex]C[/itex], the solution [itex]\psi_C[/itex] has bounded integral (which comes for free if your domain of integration is bounded), there's a unique choice of [itex]\psi, C\geq 0[/itex] that solves your equation.

As for how to solve numerically, I have no idea, but hopefully getting a sense of the structure of your equation can be helpful...
 
economicsnerd said:
If [itex]a\geq 0[/itex], then it's well-posed.

Indeed, [itex]ye^{ay^2}[/itex] is a strictly increasing function of [itex]y[/itex] which vanishes at [itex]y=0[/itex] and blows up as [itex]y\to\infty[/itex], so for each [itex]C\geq 0[/itex], there's a unique choice of function [itex]\psi_C[/itex] that satisfies your functional equation. Also, the solution [itex]\psi_C[/itex] is going to be as smooth as [itex]f[/itex] is; in particular, it's integrable if [itex]f[/itex] is (say) piecewise continuous. Moreover, [itex]\psi_C[/itex] increases (smoothly enough to make [itex]\int\psi_C[/itex] continuous in [itex]C[/itex] if it's finite-valued) with [itex]C[/itex], and you can use a bounding argument to show that [itex]\psi_C[/itex] can be made arbitrarily big or small as you vary [itex]C[/itex]. It follows that as long as [itex]f[/itex] is such that, for small enough [itex]C[/itex], the solution [itex]\psi_C[/itex] has bounded integral (which comes for free if your domain of integration is bounded), there's a unique choice of [itex]\psi, C\geq 0[/itex] that solves your equation.

As for how to solve numerically, I have no idea, but hopefully getting a sense of the structure of your equation can be helpful...

OK, great, that's some fancy math right there! Indeed, a>0 always. The f(x) will typically be known only numerically on the grid points and is not an elementary function, but generally it will resemble something between a Gaussian and an exponential decay, so it will have a maximum near the origin and will rapidly decay to zero at infinity, and certainly has a finite norm.

Actually, the problem is in 3D, so replace all instances of x by (x,y,z). My idea for the algorithm is as follows: take the log of the equation to obtain (the log will damp the errors)

[itex]\log(\psi) + a\psi^2 = \log(C) + \log f[/itex]

Then guess some (normalized) function ψ1, say ψ1 = 1 (we are working in a finite box 1x1x1). Obviously this does not satisfy the equation, so we suppose that a better guess would be

[itex]\psi_2 = \psi_1 + \Delta \psi_1[/itex]

where the added term is hopefully going to get small eventually. Then we Taylor expand the main equation to get

[itex]\Delta\psi_1 = \frac{\psi_1}{1+2a\psi_1^2}(\log(Cf/\psi_1)-a\psi_1^2)[/itex]

Then repeat the last step until the delta gets as small as needed. I just don't see how to get the C out of this and how to ensure normalization...
 
Hmmm... If my initial guess is normalized, all I need to do is to ensure that the norm of Δψ is zero at each iteration. This can be naturally done by choosing a suitable log(C) = int f1/int f2.

I've just tried this, and the whole thing converges within 10 iterations max haha :D But apparently I need a very fine mesh, otherwise non-physical fluctuations show up :(
 

Similar threads

  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 3 ·
Replies
3
Views
3K
Replies
20
Views
3K
  • · Replies 0 ·
Replies
0
Views
2K
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K