{ "cells": [ { "cell_type": "markdown", "id": "d5f6ea4f", "metadata": {}, "source": [ "\n", "*This notebook contains material from [CBE60499](https://ndcbe.github.io/CBE60499);\n", "content is available [on Github](git@github.com:ndcbe/CBE60499.git).*\n" ] }, { "cell_type": "markdown", "id": "3fffdc48", "metadata": {}, "source": [ "\n", "< [3.5 Quasi-Newton Methods for Unconstrained Optimization](https://ndcbe.github.io/CBE60499/03.05-Quasi-Newton-Method.html) | [Contents](toc.html) | [Tag Index](tag_index.html) | [3.7 Algorithms Homework 1](https://ndcbe.github.io/CBE60499/03.07-Algorithms1.html) >
"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 1,
"link": "[3.6 Descent and Globalization](https://ndcbe.github.io/CBE60499/03.06-Globalization.html#3.6-Descent-and-Globalization)",
"section": "3.6 Descent and Globalization"
}
},
"source": [
"# 3.6 Descent and Globalization"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"nbpages": {
"level": 1,
"link": "[3.6 Descent and Globalization](https://ndcbe.github.io/CBE60499/03.06-Globalization.html#3.6-Descent-and-Globalization)",
"section": "3.6 Descent and Globalization"
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[3.6.1 Define Test Function and Derivatives](https://ndcbe.github.io/CBE60499/03.06-Globalization.html#3.6.1-Define-Test-Function-and-Derivatives)",
"section": "3.6.1 Define Test Function and Derivatives"
}
},
"source": [
"## 3.6.1 Define Test Function and Derivatives\n",
"\n",
"Let's get started by defining a test function we will use throughout the notebook.\n",
"\n",
"Consider a scalar function $f(x): \\mathbb{R} \\rightarrow \\mathbb{R}$ to allow for easier visualization. Let\n",
"\n",
"$$f(x) = 0.5 (x-1)^4 + (x+1)^3 - 10 x^2 + 5 x$$\n",
"\n",
"$$f'(x) = 6 - 8 x - 3 x^2 + 2 x^3$$\n",
"\n",
"$$f''(x) = -8 - 6 x + 6 x^2 $$"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"nbpages": {
"level": 2,
"link": "[3.6.1 Define Test Function and Derivatives](https://ndcbe.github.io/CBE60499/03.06-Globalization.html#3.6.1-Define-Test-Function-and-Derivatives)",
"section": "3.6.1 Define Test Function and Derivatives"
}
},
"outputs": [],
"source": [
"## Define f(x)\n",
"f = lambda x : 0.5*(x-1)**4 + (x+1)**3 - 10*x**2 + 5*x\n",
"\n",
"## Define f'(x)\n",
"df = lambda x : 6 - 8*x - 3*x**2 + 2*x**3\n",
"\n",
"## Define f''(x)\n",
"ddf = lambda x : -8 - 6*x + 6*x**2"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"nbpages": {
"level": 2,
"link": "[3.6.1 Define Test Function and Derivatives](https://ndcbe.github.io/CBE60499/03.06-Globalization.html#3.6.1-Define-Test-Function-and-Derivatives)",
"section": "3.6.1 Define Test Function and Derivatives"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}