Functional fixed points (ie fixed point of mapping from function space C[0,1] to itself)












5














I am looking for some tips or guidance as to what machinery in mathematica can help me get at this problem numerically. I am looking for fixed points of a mapping, but the objects in question are themselves functions. Hence I am looking for a fixed point function.



The setup (simplified version):
suppose we restrict our search to continuous functions $f: [0,1]rightarrow [0,1]$. $p$ is a known parameter. I am looking for a fixed point (function) such that, for all $xin [0,1]$, $f(x)$ solves



$$f(x) = frac{x^p}{x^p + int_0^1 f(x) x^p , dx }.$$



It's not as simple as finding lots of fixed points for each $x$ in isolation, as the value of the expression at a single $x$ depends on the entire function $f$. Any help to try and solve this type of thing numerically would be much appreciated.










share|improve this question









New contributor




user434180 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 1




    I can think of multiple ways to go about this: -discretize your function by representing it by a vector and solve the discretized problem as an approximation. Then this might result in a finite dimensional Eigenvalue problem which can be solved with Eigensystem or NDEigensystem. -use Interpolation as function representation and sample and reinterpolate after each iteration. - use a variational approach to find the fixed point, perhaps the VariationalMethods package can help with that.
    – Thies Heidecke
    2 hours ago






  • 1




    - perhaps the problem can be stated as an ordinary differential equation and either be directly solved by DSolve, numerically by NDSolve or iteratively by a Picard iteration. I'm not sure if all of those methods can successfully tackle your problem, but all those alleys could be explored in Mathematica. Hope this gives you some ideas! When you try something and need further help, update your question with Mathematica code and specific questions, so that people can help you with the details.
    – Thies Heidecke
    2 hours ago








  • 5




    The following should work: replace the integral with $c$. Solve for $f(x)$. Compute the integral as a function of $c$. Set the integral equal to $c$ and solve for $c$.
    – Lukas Lang
    2 hours ago










  • Thank you very much for these suggestions. I have tried the ODE approach. I don't think that it can be transformed into an ODE as I don't see a way to remove the integral. The ratio means it can't be transformed into a Fredholm equation, for which code already exists to numerically solve. I will try discretizing in line with the great answer below. And I am a little lost by your suggestion, Lukas, although I will try work through it as well.
    – user434180
    2 hours ago












  • @LukasLang Great idea, this seems like the most simple and best approach!
    – Thies Heidecke
    1 hour ago
















5














I am looking for some tips or guidance as to what machinery in mathematica can help me get at this problem numerically. I am looking for fixed points of a mapping, but the objects in question are themselves functions. Hence I am looking for a fixed point function.



The setup (simplified version):
suppose we restrict our search to continuous functions $f: [0,1]rightarrow [0,1]$. $p$ is a known parameter. I am looking for a fixed point (function) such that, for all $xin [0,1]$, $f(x)$ solves



$$f(x) = frac{x^p}{x^p + int_0^1 f(x) x^p , dx }.$$



It's not as simple as finding lots of fixed points for each $x$ in isolation, as the value of the expression at a single $x$ depends on the entire function $f$. Any help to try and solve this type of thing numerically would be much appreciated.










share|improve this question









New contributor




user434180 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 1




    I can think of multiple ways to go about this: -discretize your function by representing it by a vector and solve the discretized problem as an approximation. Then this might result in a finite dimensional Eigenvalue problem which can be solved with Eigensystem or NDEigensystem. -use Interpolation as function representation and sample and reinterpolate after each iteration. - use a variational approach to find the fixed point, perhaps the VariationalMethods package can help with that.
    – Thies Heidecke
    2 hours ago






  • 1




    - perhaps the problem can be stated as an ordinary differential equation and either be directly solved by DSolve, numerically by NDSolve or iteratively by a Picard iteration. I'm not sure if all of those methods can successfully tackle your problem, but all those alleys could be explored in Mathematica. Hope this gives you some ideas! When you try something and need further help, update your question with Mathematica code and specific questions, so that people can help you with the details.
    – Thies Heidecke
    2 hours ago








  • 5




    The following should work: replace the integral with $c$. Solve for $f(x)$. Compute the integral as a function of $c$. Set the integral equal to $c$ and solve for $c$.
    – Lukas Lang
    2 hours ago










  • Thank you very much for these suggestions. I have tried the ODE approach. I don't think that it can be transformed into an ODE as I don't see a way to remove the integral. The ratio means it can't be transformed into a Fredholm equation, for which code already exists to numerically solve. I will try discretizing in line with the great answer below. And I am a little lost by your suggestion, Lukas, although I will try work through it as well.
    – user434180
    2 hours ago












  • @LukasLang Great idea, this seems like the most simple and best approach!
    – Thies Heidecke
    1 hour ago














5












5








5


2





I am looking for some tips or guidance as to what machinery in mathematica can help me get at this problem numerically. I am looking for fixed points of a mapping, but the objects in question are themselves functions. Hence I am looking for a fixed point function.



The setup (simplified version):
suppose we restrict our search to continuous functions $f: [0,1]rightarrow [0,1]$. $p$ is a known parameter. I am looking for a fixed point (function) such that, for all $xin [0,1]$, $f(x)$ solves



$$f(x) = frac{x^p}{x^p + int_0^1 f(x) x^p , dx }.$$



It's not as simple as finding lots of fixed points for each $x$ in isolation, as the value of the expression at a single $x$ depends on the entire function $f$. Any help to try and solve this type of thing numerically would be much appreciated.










share|improve this question









New contributor




user434180 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I am looking for some tips or guidance as to what machinery in mathematica can help me get at this problem numerically. I am looking for fixed points of a mapping, but the objects in question are themselves functions. Hence I am looking for a fixed point function.



The setup (simplified version):
suppose we restrict our search to continuous functions $f: [0,1]rightarrow [0,1]$. $p$ is a known parameter. I am looking for a fixed point (function) such that, for all $xin [0,1]$, $f(x)$ solves



$$f(x) = frac{x^p}{x^p + int_0^1 f(x) x^p , dx }.$$



It's not as simple as finding lots of fixed points for each $x$ in isolation, as the value of the expression at a single $x$ depends on the entire function $f$. Any help to try and solve this type of thing numerically would be much appreciated.







numerical-integration parametric-functions numerical-value fixed-points






share|improve this question









New contributor




user434180 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




user434180 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 3 hours ago





















New contributor




user434180 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 3 hours ago









user434180

262




262




New contributor




user434180 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





user434180 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






user434180 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 1




    I can think of multiple ways to go about this: -discretize your function by representing it by a vector and solve the discretized problem as an approximation. Then this might result in a finite dimensional Eigenvalue problem which can be solved with Eigensystem or NDEigensystem. -use Interpolation as function representation and sample and reinterpolate after each iteration. - use a variational approach to find the fixed point, perhaps the VariationalMethods package can help with that.
    – Thies Heidecke
    2 hours ago






  • 1




    - perhaps the problem can be stated as an ordinary differential equation and either be directly solved by DSolve, numerically by NDSolve or iteratively by a Picard iteration. I'm not sure if all of those methods can successfully tackle your problem, but all those alleys could be explored in Mathematica. Hope this gives you some ideas! When you try something and need further help, update your question with Mathematica code and specific questions, so that people can help you with the details.
    – Thies Heidecke
    2 hours ago








  • 5




    The following should work: replace the integral with $c$. Solve for $f(x)$. Compute the integral as a function of $c$. Set the integral equal to $c$ and solve for $c$.
    – Lukas Lang
    2 hours ago










  • Thank you very much for these suggestions. I have tried the ODE approach. I don't think that it can be transformed into an ODE as I don't see a way to remove the integral. The ratio means it can't be transformed into a Fredholm equation, for which code already exists to numerically solve. I will try discretizing in line with the great answer below. And I am a little lost by your suggestion, Lukas, although I will try work through it as well.
    – user434180
    2 hours ago












  • @LukasLang Great idea, this seems like the most simple and best approach!
    – Thies Heidecke
    1 hour ago














  • 1




    I can think of multiple ways to go about this: -discretize your function by representing it by a vector and solve the discretized problem as an approximation. Then this might result in a finite dimensional Eigenvalue problem which can be solved with Eigensystem or NDEigensystem. -use Interpolation as function representation and sample and reinterpolate after each iteration. - use a variational approach to find the fixed point, perhaps the VariationalMethods package can help with that.
    – Thies Heidecke
    2 hours ago






  • 1




    - perhaps the problem can be stated as an ordinary differential equation and either be directly solved by DSolve, numerically by NDSolve or iteratively by a Picard iteration. I'm not sure if all of those methods can successfully tackle your problem, but all those alleys could be explored in Mathematica. Hope this gives you some ideas! When you try something and need further help, update your question with Mathematica code and specific questions, so that people can help you with the details.
    – Thies Heidecke
    2 hours ago








  • 5




    The following should work: replace the integral with $c$. Solve for $f(x)$. Compute the integral as a function of $c$. Set the integral equal to $c$ and solve for $c$.
    – Lukas Lang
    2 hours ago










  • Thank you very much for these suggestions. I have tried the ODE approach. I don't think that it can be transformed into an ODE as I don't see a way to remove the integral. The ratio means it can't be transformed into a Fredholm equation, for which code already exists to numerically solve. I will try discretizing in line with the great answer below. And I am a little lost by your suggestion, Lukas, although I will try work through it as well.
    – user434180
    2 hours ago












  • @LukasLang Great idea, this seems like the most simple and best approach!
    – Thies Heidecke
    1 hour ago








1




1




I can think of multiple ways to go about this: -discretize your function by representing it by a vector and solve the discretized problem as an approximation. Then this might result in a finite dimensional Eigenvalue problem which can be solved with Eigensystem or NDEigensystem. -use Interpolation as function representation and sample and reinterpolate after each iteration. - use a variational approach to find the fixed point, perhaps the VariationalMethods package can help with that.
– Thies Heidecke
2 hours ago




I can think of multiple ways to go about this: -discretize your function by representing it by a vector and solve the discretized problem as an approximation. Then this might result in a finite dimensional Eigenvalue problem which can be solved with Eigensystem or NDEigensystem. -use Interpolation as function representation and sample and reinterpolate after each iteration. - use a variational approach to find the fixed point, perhaps the VariationalMethods package can help with that.
– Thies Heidecke
2 hours ago




1




1




- perhaps the problem can be stated as an ordinary differential equation and either be directly solved by DSolve, numerically by NDSolve or iteratively by a Picard iteration. I'm not sure if all of those methods can successfully tackle your problem, but all those alleys could be explored in Mathematica. Hope this gives you some ideas! When you try something and need further help, update your question with Mathematica code and specific questions, so that people can help you with the details.
– Thies Heidecke
2 hours ago






- perhaps the problem can be stated as an ordinary differential equation and either be directly solved by DSolve, numerically by NDSolve or iteratively by a Picard iteration. I'm not sure if all of those methods can successfully tackle your problem, but all those alleys could be explored in Mathematica. Hope this gives you some ideas! When you try something and need further help, update your question with Mathematica code and specific questions, so that people can help you with the details.
– Thies Heidecke
2 hours ago






5




5




The following should work: replace the integral with $c$. Solve for $f(x)$. Compute the integral as a function of $c$. Set the integral equal to $c$ and solve for $c$.
– Lukas Lang
2 hours ago




The following should work: replace the integral with $c$. Solve for $f(x)$. Compute the integral as a function of $c$. Set the integral equal to $c$ and solve for $c$.
– Lukas Lang
2 hours ago












Thank you very much for these suggestions. I have tried the ODE approach. I don't think that it can be transformed into an ODE as I don't see a way to remove the integral. The ratio means it can't be transformed into a Fredholm equation, for which code already exists to numerically solve. I will try discretizing in line with the great answer below. And I am a little lost by your suggestion, Lukas, although I will try work through it as well.
– user434180
2 hours ago






Thank you very much for these suggestions. I have tried the ODE approach. I don't think that it can be transformed into an ODE as I don't see a way to remove the integral. The ratio means it can't be transformed into a Fredholm equation, for which code already exists to numerically solve. I will try discretizing in line with the great answer below. And I am a little lost by your suggestion, Lukas, although I will try work through it as well.
– user434180
2 hours ago














@LukasLang Great idea, this seems like the most simple and best approach!
– Thies Heidecke
1 hour ago




@LukasLang Great idea, this seems like the most simple and best approach!
– Thies Heidecke
1 hour ago










3 Answers
3






active

oldest

votes


















3














I believe this is @Lucas suggestions in the comment.



    ClearAll[p, c]
p = 2;
f[x_] := x^p/(x^p + c)
Assuming[c [Element] Reals, !(
*SubsuperscriptBox[([Integral]), (0), (1)](f[x]
*SuperscriptBox[(x), (p)] [DifferentialD]x)) == c]



ConditionalExpression[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, c > 0 || c < -1]




c = c /. FindRoot[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, {c, 1}] 



0.227879




fixedPoints = NSolve[f[x] == x, x]



{{x -> 0.64873}, {x -> 0.35127}, {x -> 0.}}




 Plot[{f[x], x}, {x, 0, 1}, AspectRatio -> 1, Frame -> True, 
GridLines -> {Flatten@Values@fixedPoints,
Flatten@Values@fixedPoints}]


enter image description here






share|improve this answer























  • FixedPoint appears to be faster than NSolve for this.
    – Alan
    9 mins ago



















2














This uses a discretization by piecewise-linear functions.



n = 1000;
x = Subdivide[0., 1., n - 1];
p = 2;
(* quadrature weights for trapezoidal rule *)
ω = ConstantArray[1./(n - 1), n];
ω[[1]] = ω[[n]] = 0.5/(n - 1);


Applying fixed point iteration; I use Dot and ω to compute the integral:



data = FixedPointList[
f [Function] x^p/(x^p + (x^p f).ω),
ConstantArray[0.5, n]
];


Checking the $L^infty$ error:



Max[Abs[step[data[[-1]]] - data[[-1]]]]



2.22045*10^-16




Plotting the iterates:



ListLinePlot[
data,
PlotLegends -> Automatic
]


enter image description here






share|improve this answer





























    0














    supplement



    The list of fixpoint-functions can be obtained strictly numerical (variable p) using Nintegrate:



    int[c_?NumericQ, p_?NumericQ] :=NIntegrate[x^(2 p)/(x^p + c), {x, 0, 1}, Method -> "LocalAdaptive"   ]    

    f[Infinity] =Table[ x^ p /(x^p + c) /.NMinimize[{1, c == int[c, p]}, c][[2]] , {p, 1, 5}]
    (*{x/(0.323829 + x), x^2/(0.227879 + x^2), x^3/(0.1782 + x^3)
    , x^4/(0.147254 + x^4), x^5/(0.125923 + x^5)}*)

    Plot[f[Infinity], {x, 0, 1}, PlotRange -> {0, 1}]


    enter image description here





    share





















    • This is a very helpful addition. I was about to comment on Henrik's answer that it requires the integral to be analytically solvable by mathematica. Although the one I posted in the question is solvable, the actual ones I care about are generally not. So this is very useful. Thanks!
      – user434180
      4 mins ago













    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "387"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });






    user434180 is a new contributor. Be nice, and check out our Code of Conduct.










    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188770%2ffunctional-fixed-points-ie-fixed-point-of-mapping-from-function-space-c0-1-to%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    3














    I believe this is @Lucas suggestions in the comment.



        ClearAll[p, c]
    p = 2;
    f[x_] := x^p/(x^p + c)
    Assuming[c [Element] Reals, !(
    *SubsuperscriptBox[([Integral]), (0), (1)](f[x]
    *SuperscriptBox[(x), (p)] [DifferentialD]x)) == c]



    ConditionalExpression[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, c > 0 || c < -1]




    c = c /. FindRoot[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, {c, 1}] 



    0.227879




    fixedPoints = NSolve[f[x] == x, x]



    {{x -> 0.64873}, {x -> 0.35127}, {x -> 0.}}




     Plot[{f[x], x}, {x, 0, 1}, AspectRatio -> 1, Frame -> True, 
    GridLines -> {Flatten@Values@fixedPoints,
    Flatten@Values@fixedPoints}]


    enter image description here






    share|improve this answer























    • FixedPoint appears to be faster than NSolve for this.
      – Alan
      9 mins ago
















    3














    I believe this is @Lucas suggestions in the comment.



        ClearAll[p, c]
    p = 2;
    f[x_] := x^p/(x^p + c)
    Assuming[c [Element] Reals, !(
    *SubsuperscriptBox[([Integral]), (0), (1)](f[x]
    *SuperscriptBox[(x), (p)] [DifferentialD]x)) == c]



    ConditionalExpression[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, c > 0 || c < -1]




    c = c /. FindRoot[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, {c, 1}] 



    0.227879




    fixedPoints = NSolve[f[x] == x, x]



    {{x -> 0.64873}, {x -> 0.35127}, {x -> 0.}}




     Plot[{f[x], x}, {x, 0, 1}, AspectRatio -> 1, Frame -> True, 
    GridLines -> {Flatten@Values@fixedPoints,
    Flatten@Values@fixedPoints}]


    enter image description here






    share|improve this answer























    • FixedPoint appears to be faster than NSolve for this.
      – Alan
      9 mins ago














    3












    3








    3






    I believe this is @Lucas suggestions in the comment.



        ClearAll[p, c]
    p = 2;
    f[x_] := x^p/(x^p + c)
    Assuming[c [Element] Reals, !(
    *SubsuperscriptBox[([Integral]), (0), (1)](f[x]
    *SuperscriptBox[(x), (p)] [DifferentialD]x)) == c]



    ConditionalExpression[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, c > 0 || c < -1]




    c = c /. FindRoot[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, {c, 1}] 



    0.227879




    fixedPoints = NSolve[f[x] == x, x]



    {{x -> 0.64873}, {x -> 0.35127}, {x -> 0.}}




     Plot[{f[x], x}, {x, 0, 1}, AspectRatio -> 1, Frame -> True, 
    GridLines -> {Flatten@Values@fixedPoints,
    Flatten@Values@fixedPoints}]


    enter image description here






    share|improve this answer














    I believe this is @Lucas suggestions in the comment.



        ClearAll[p, c]
    p = 2;
    f[x_] := x^p/(x^p + c)
    Assuming[c [Element] Reals, !(
    *SubsuperscriptBox[([Integral]), (0), (1)](f[x]
    *SuperscriptBox[(x), (p)] [DifferentialD]x)) == c]



    ConditionalExpression[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, c > 0 || c < -1]




    c = c /. FindRoot[1/3 - c + c^(3/2) ArcTan[1/Sqrt[c]] == c, {c, 1}] 



    0.227879




    fixedPoints = NSolve[f[x] == x, x]



    {{x -> 0.64873}, {x -> 0.35127}, {x -> 0.}}




     Plot[{f[x], x}, {x, 0, 1}, AspectRatio -> 1, Frame -> True, 
    GridLines -> {Flatten@Values@fixedPoints,
    Flatten@Values@fixedPoints}]


    enter image description here







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited 29 mins ago

























    answered 1 hour ago









    Okkes Dulgerci

    4,0251816




    4,0251816












    • FixedPoint appears to be faster than NSolve for this.
      – Alan
      9 mins ago


















    • FixedPoint appears to be faster than NSolve for this.
      – Alan
      9 mins ago
















    FixedPoint appears to be faster than NSolve for this.
    – Alan
    9 mins ago




    FixedPoint appears to be faster than NSolve for this.
    – Alan
    9 mins ago











    2














    This uses a discretization by piecewise-linear functions.



    n = 1000;
    x = Subdivide[0., 1., n - 1];
    p = 2;
    (* quadrature weights for trapezoidal rule *)
    ω = ConstantArray[1./(n - 1), n];
    ω[[1]] = ω[[n]] = 0.5/(n - 1);


    Applying fixed point iteration; I use Dot and ω to compute the integral:



    data = FixedPointList[
    f [Function] x^p/(x^p + (x^p f).ω),
    ConstantArray[0.5, n]
    ];


    Checking the $L^infty$ error:



    Max[Abs[step[data[[-1]]] - data[[-1]]]]



    2.22045*10^-16




    Plotting the iterates:



    ListLinePlot[
    data,
    PlotLegends -> Automatic
    ]


    enter image description here






    share|improve this answer


























      2














      This uses a discretization by piecewise-linear functions.



      n = 1000;
      x = Subdivide[0., 1., n - 1];
      p = 2;
      (* quadrature weights for trapezoidal rule *)
      ω = ConstantArray[1./(n - 1), n];
      ω[[1]] = ω[[n]] = 0.5/(n - 1);


      Applying fixed point iteration; I use Dot and ω to compute the integral:



      data = FixedPointList[
      f [Function] x^p/(x^p + (x^p f).ω),
      ConstantArray[0.5, n]
      ];


      Checking the $L^infty$ error:



      Max[Abs[step[data[[-1]]] - data[[-1]]]]



      2.22045*10^-16




      Plotting the iterates:



      ListLinePlot[
      data,
      PlotLegends -> Automatic
      ]


      enter image description here






      share|improve this answer
























        2












        2








        2






        This uses a discretization by piecewise-linear functions.



        n = 1000;
        x = Subdivide[0., 1., n - 1];
        p = 2;
        (* quadrature weights for trapezoidal rule *)
        ω = ConstantArray[1./(n - 1), n];
        ω[[1]] = ω[[n]] = 0.5/(n - 1);


        Applying fixed point iteration; I use Dot and ω to compute the integral:



        data = FixedPointList[
        f [Function] x^p/(x^p + (x^p f).ω),
        ConstantArray[0.5, n]
        ];


        Checking the $L^infty$ error:



        Max[Abs[step[data[[-1]]] - data[[-1]]]]



        2.22045*10^-16




        Plotting the iterates:



        ListLinePlot[
        data,
        PlotLegends -> Automatic
        ]


        enter image description here






        share|improve this answer












        This uses a discretization by piecewise-linear functions.



        n = 1000;
        x = Subdivide[0., 1., n - 1];
        p = 2;
        (* quadrature weights for trapezoidal rule *)
        ω = ConstantArray[1./(n - 1), n];
        ω[[1]] = ω[[n]] = 0.5/(n - 1);


        Applying fixed point iteration; I use Dot and ω to compute the integral:



        data = FixedPointList[
        f [Function] x^p/(x^p + (x^p f).ω),
        ConstantArray[0.5, n]
        ];


        Checking the $L^infty$ error:



        Max[Abs[step[data[[-1]]] - data[[-1]]]]



        2.22045*10^-16




        Plotting the iterates:



        ListLinePlot[
        data,
        PlotLegends -> Automatic
        ]


        enter image description here







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 2 hours ago









        Henrik Schumacher

        48.9k467139




        48.9k467139























            0














            supplement



            The list of fixpoint-functions can be obtained strictly numerical (variable p) using Nintegrate:



            int[c_?NumericQ, p_?NumericQ] :=NIntegrate[x^(2 p)/(x^p + c), {x, 0, 1}, Method -> "LocalAdaptive"   ]    

            f[Infinity] =Table[ x^ p /(x^p + c) /.NMinimize[{1, c == int[c, p]}, c][[2]] , {p, 1, 5}]
            (*{x/(0.323829 + x), x^2/(0.227879 + x^2), x^3/(0.1782 + x^3)
            , x^4/(0.147254 + x^4), x^5/(0.125923 + x^5)}*)

            Plot[f[Infinity], {x, 0, 1}, PlotRange -> {0, 1}]


            enter image description here





            share





















            • This is a very helpful addition. I was about to comment on Henrik's answer that it requires the integral to be analytically solvable by mathematica. Although the one I posted in the question is solvable, the actual ones I care about are generally not. So this is very useful. Thanks!
              – user434180
              4 mins ago


















            0














            supplement



            The list of fixpoint-functions can be obtained strictly numerical (variable p) using Nintegrate:



            int[c_?NumericQ, p_?NumericQ] :=NIntegrate[x^(2 p)/(x^p + c), {x, 0, 1}, Method -> "LocalAdaptive"   ]    

            f[Infinity] =Table[ x^ p /(x^p + c) /.NMinimize[{1, c == int[c, p]}, c][[2]] , {p, 1, 5}]
            (*{x/(0.323829 + x), x^2/(0.227879 + x^2), x^3/(0.1782 + x^3)
            , x^4/(0.147254 + x^4), x^5/(0.125923 + x^5)}*)

            Plot[f[Infinity], {x, 0, 1}, PlotRange -> {0, 1}]


            enter image description here





            share





















            • This is a very helpful addition. I was about to comment on Henrik's answer that it requires the integral to be analytically solvable by mathematica. Although the one I posted in the question is solvable, the actual ones I care about are generally not. So this is very useful. Thanks!
              – user434180
              4 mins ago
















            0












            0








            0






            supplement



            The list of fixpoint-functions can be obtained strictly numerical (variable p) using Nintegrate:



            int[c_?NumericQ, p_?NumericQ] :=NIntegrate[x^(2 p)/(x^p + c), {x, 0, 1}, Method -> "LocalAdaptive"   ]    

            f[Infinity] =Table[ x^ p /(x^p + c) /.NMinimize[{1, c == int[c, p]}, c][[2]] , {p, 1, 5}]
            (*{x/(0.323829 + x), x^2/(0.227879 + x^2), x^3/(0.1782 + x^3)
            , x^4/(0.147254 + x^4), x^5/(0.125923 + x^5)}*)

            Plot[f[Infinity], {x, 0, 1}, PlotRange -> {0, 1}]


            enter image description here





            share












            supplement



            The list of fixpoint-functions can be obtained strictly numerical (variable p) using Nintegrate:



            int[c_?NumericQ, p_?NumericQ] :=NIntegrate[x^(2 p)/(x^p + c), {x, 0, 1}, Method -> "LocalAdaptive"   ]    

            f[Infinity] =Table[ x^ p /(x^p + c) /.NMinimize[{1, c == int[c, p]}, c][[2]] , {p, 1, 5}]
            (*{x/(0.323829 + x), x^2/(0.227879 + x^2), x^3/(0.1782 + x^3)
            , x^4/(0.147254 + x^4), x^5/(0.125923 + x^5)}*)

            Plot[f[Infinity], {x, 0, 1}, PlotRange -> {0, 1}]


            enter image description here






            share











            share


            share










            answered 6 mins ago









            Ulrich Neumann

            7,345515




            7,345515












            • This is a very helpful addition. I was about to comment on Henrik's answer that it requires the integral to be analytically solvable by mathematica. Although the one I posted in the question is solvable, the actual ones I care about are generally not. So this is very useful. Thanks!
              – user434180
              4 mins ago




















            • This is a very helpful addition. I was about to comment on Henrik's answer that it requires the integral to be analytically solvable by mathematica. Although the one I posted in the question is solvable, the actual ones I care about are generally not. So this is very useful. Thanks!
              – user434180
              4 mins ago


















            This is a very helpful addition. I was about to comment on Henrik's answer that it requires the integral to be analytically solvable by mathematica. Although the one I posted in the question is solvable, the actual ones I care about are generally not. So this is very useful. Thanks!
            – user434180
            4 mins ago






            This is a very helpful addition. I was about to comment on Henrik's answer that it requires the integral to be analytically solvable by mathematica. Although the one I posted in the question is solvable, the actual ones I care about are generally not. So this is very useful. Thanks!
            – user434180
            4 mins ago












            user434180 is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            user434180 is a new contributor. Be nice, and check out our Code of Conduct.













            user434180 is a new contributor. Be nice, and check out our Code of Conduct.












            user434180 is a new contributor. Be nice, and check out our Code of Conduct.
















            Thanks for contributing an answer to Mathematica Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188770%2ffunctional-fixed-points-ie-fixed-point-of-mapping-from-function-space-c0-1-to%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Understanding the information contained in the Deep Space Network XML data?

            Ross-on-Wye

            Eastern Orthodox Church