|
50 | 50 | },
|
51 | 51 | {
|
52 | 52 | "cell_type": "code",
|
53 |
| - "execution_count": 8, |
| 53 | + "execution_count": 4, |
54 | 54 | "metadata": {},
|
55 | 55 | "outputs": [],
|
56 | 56 | "source": [
|
|
507 | 507 | },
|
508 | 508 | {
|
509 | 509 | "cell_type": "code",
|
510 |
| - "execution_count": 9, |
| 510 | + "execution_count": 5, |
511 | 511 | "metadata": {},
|
512 | 512 | "outputs": [
|
513 | 513 | {
|
|
561 | 561 | },
|
562 | 562 | {
|
563 | 563 | "cell_type": "code",
|
564 |
| - "execution_count": 10, |
| 564 | + "execution_count": 6, |
565 | 565 | "metadata": {},
|
566 | 566 | "outputs": [
|
567 | 567 | {
|
|
757 | 757 | "\\lambda \\le 1 - \\sqrt{1-c} < 1.\n",
|
758 | 758 | "$$\n",
|
759 | 759 | "Hence $\\calf'(H)$ is nonsingular for $0 < c < 1$ on the lower branch.\n",
|
760 |
| - "This also proves the norm estimate from Chapter __4__.\n" |
| 760 | + "This also proves the norm estimate from Chapter __4__.\n", |
| 761 | + " \n", |
| 762 | + "For $c=1$, $\\calf'(H)$ is singular with a one-dimensional null space.\n", |
| 763 | + "To complete the analysis of the singularity we need to make the dependence\n", |
| 764 | + "in $c$ explicit and write the equation as\n", |
| 765 | + "$$\n", |
| 766 | + "\\calf(H, c) = 0.\n", |
| 767 | + "$$\n", |
| 768 | + "We let $\\calf'_H$ be the\n", |
| 769 | + "Frechet derivative in $H$ and\n", |
| 770 | + "$\\calf'_c(H,c)$ be the derivative in $c$. At a solution\n", |
| 771 | + "$$\n", |
| 772 | + "\\calf'_c(H,c) = - H^2 \\frac{1}{2} \\call H.\n", |
| 773 | + "$$\n", |
| 774 | + "and so, at $c=1$, using the equation.\n", |
| 775 | + "$$\n", |
| 776 | + "\\calf'_c(H,1) = -H^2( H - 1).\n", |
| 777 | + "$$\n", |
| 778 | + " \n", |
| 779 | + "The singularity at $c=1$ is a\n", |
| 780 | + "__simple fold__ <cite data-cite=\"herb\"><a href=\"siamfa.html#herb\">(Kel87)</cite>.\n", |
| 781 | + "This means that $\\calf'(H)$ has a null space\n", |
| 782 | + "of dimension 1 and that $\\calf'_c(H,1) \\not \\in {\\cal R}(\\calf'_H(H))$.\n", |
| 783 | + "Here $\\cal{R}$ denotes the range of an operator. In this case\n", |
| 784 | + "$$\n", |
| 785 | + "{\\cal R}(\\calf'_H(H)) = \\{ u \\in C[0,1] \\, | \\,\n", |
| 786 | + "\\int_0^1 u(\\nu) \\psi(\\nu) \\dnu = 0 \\},\n", |
| 787 | + "$$\n", |
| 788 | + "where $\\psi$ is the eigenfunction of $\\calf'_H(H)^*$, the adjoint of\n", |
| 789 | + "$\\calf'_H(H)$ corresponding to the zero eigenvalue. The reader can\n", |
| 790 | + "verify that, for $c=1$,\n", |
| 791 | + "$$\n", |
| 792 | + "\\psi(\\mu) = (\\calg'(H)^* \\psi)(\\nu) = \\frac{1}{2} \\int_0^1\n", |
| 793 | + "\\frac{\\nu}{\\nu+\\mu} H^2(\\nu) \\psi(\\nu) \\dnu\n", |
| 794 | + "$$\n", |
| 795 | + "is satisfied by $\\psi = H^{-1}$. Since $H \\ge 1$ and $\\calf'_c(H,1)$ does\n", |
| 796 | + "not change sign, $\\calf'_c(H,1)$ cannot be in the range\n", |
| 797 | + "of $\\calf'_H(H)$. We will show why this fact is important in the next\n", |
| 798 | + "section.\n", |
| 799 | + "\n" |
761 | 800 | ]
|
762 | 801 | },
|
763 | 802 | {
|
764 |
| - "cell_type": "code", |
765 |
| - "execution_count": null, |
| 803 | + "cell_type": "markdown", |
766 | 804 | "metadata": {},
|
767 |
| - "outputs": [], |
768 |
| - "source": [] |
| 805 | + "source": [ |
| 806 | + "### Section 5.2.2: Continuation\n", |
| 807 | + "\n", |
| 808 | + "The object of continuation methods is to solve\n", |
| 809 | + "a parameter dependent set of nonlinear equations\n", |
| 810 | + "$$\n", |
| 811 | + "\\mf(\\vx, \\lambda) = 0.\n", |
| 812 | + "$$\n", |
| 813 | + "The output is a\n", |
| 814 | + "__solution arc__\n", |
| 815 | + "or\n", |
| 816 | + "__solution path__ \n", |
| 817 | + "$$\n", |
| 818 | + "\\{ \\vx(\\lambda) \\, | \\, \\mf(\\vx(\\lambda), \\lambda) = 0,\n", |
| 819 | + "\\lambda_0 \\le \\lambda \\le \\lambda_{max} \\}.\n", |
| 820 | + "$$\n", |
| 821 | + "The solution arc for the H-equation is a simple arc\n", |
| 822 | + "with no bifurcations. Because of this we can use a\n", |
| 823 | + "straightforward path following algorithm. The\n", |
| 824 | + "objective of this section is to show how a nonlinear solver\n", |
| 825 | + "can be modified in a simple way to resolve singularities\n", |
| 826 | + "such as the one for the $H$-equation at $c=1$.\n", |
| 827 | + "\n", |
| 828 | + "We have seen other examples\n", |
| 829 | + "of parameter-dependent nonlinear equations in\n", |
| 830 | + "the buckling beam problem from Chapters __2__ and __3__\n", |
| 831 | + "and the cubic polynomial example\n", |
| 832 | + "in Chapter __1__. These examples have\n", |
| 833 | + "pitchfork bifurcations <cite data-cite=\"herb\"><a href=\"siamfa.html#herb\">(Kel87)</cite>\n", |
| 834 | + "and most path following codes\n", |
| 835 | + "<cite data-cite=\"doedel\"><a href=\"siamfa.html#doedell\">(Doe97)</cite>,\n", |
| 836 | + "<cite data-cite=\"govaerts\"><a href=\"siamfa.html#govaerts\">(Gov00)</cite>,\n", |
| 837 | + "<cite data-cite=\"kuznetsov\"><a href=\"siamfa.html#kuznetsov\">(Kuz98)</cite>,\n", |
| 838 | + "<cite data-cite=\"loca\"><a href=\"siamfa.html#loca\">(SBRP<sup>+</sup>02)</cite>,\n", |
| 839 | + "<cite data-cite=\"pitcon\"><a href=\"siamfa.html#pitcon\">(Rhe86)</cite>,\n", |
| 840 | + "<cite data-cite=\"bifkit\"><a href=\"siamfa.html#bifkit\">(Vel20)</cite>,\n", |
| 841 | + "have machinery to detect intersecting solution arcs and\n", |
| 842 | + "follow the different branches. Those methods are beyond\n", |
| 843 | + "the scope of this book. The Julia package __BifurcationKit.jl__\n", |
| 844 | + "<cite data-cite=\"bifkit\"><a href=\"siamfa.html#bifkit\">(Vel20)</cite>\n", |
| 845 | + "is quite complete.\n", |
| 846 | + " \n", |
| 847 | + "One simple approach to computing a solution path would be to\n", |
| 848 | + "identify a solution $\\vx(\\lambda_0)$ for a particular\n", |
| 849 | + "value of $\\lambda$ and then increment $\\lambda$ by a small amount\n", |
| 850 | + "and use Newton's method with an initial iterate from the previous\n", |
| 851 | + "solution to compute the solution for the next step. In the\n", |
| 852 | + "case of the $H$-equation, where the parameter is $c$. One can\n", |
| 853 | + "use $c_0 = 0$ and $H \\equiv 1$ to begin the continuation.\n", |
| 854 | + "\n", |
| 855 | + "A candidate for the algorithm is __natural parameter continuation__\n", |
| 856 | + "where we increment the original parameter in the equation. Note that in\n", |
| 857 | + "the discussion in this section, as is common practice, the parameter is\n", |
| 858 | + "called $\\lambda$ in the context of a general method, but the actual\n", |
| 859 | + "name of the parameter ($c$ in the case of the H-equation) is used when\n", |
| 860 | + "talking about specific examples.\n" |
| 861 | + ] |
769 | 862 | },
|
770 | 863 | {
|
771 | 864 | "cell_type": "code",
|
|
0 commit comments