{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Duffing Oscillator Solution Using Frequency Domain Residuals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook uses the newer solver. This solver minimizes frequency domain error. `hb_freq` can also ignore the constant term ($\\omega = 0$) in the solution process. The error in Fourier Series of the state-equation calculated state derivative as compared to that obtained by taking the derivative of the input state. Any variety of time points may be used to ensure substantial averaging over a single cycle. " ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "init_cell": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The autoreload extension is already loaded. To reload it, use:\n", " %reload_ext autoreload\n" ] } ], "source": [ "%matplotlib inline\n", "%load_ext autoreload\n", "%autoreload 2\n", "import scipy as sp\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import mousai as ms\n", "from scipy import pi, sin" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Equation errors (should be zero): [[3.31477797e-15 1.09027241e-14]]\n", "Constant term of FFT of signal should be zero: (-1.6653345369377348e-16+0j)\n" ] } ], "source": [ "# Test that all is working. \n", "# f_tol adjusts accuracy. This is smaller than reasonable, but illustrative of usage. \n", "t, x, e, amps, phases = ms.hb_freq(ms.duff_osc, np.array([[0,1,-1]]), omega = .7, f_tol = 1e-8)\n", "print('Equation errors (should be zero): ', e)\n", "print('Constant term of FFT of signal should be zero: ', ms.fftp.fft(x)[0,0])" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Equation errors (should be zero): [[-7.46635675e-07 1.43600922e-06]]\n", "Constant term of FFT of signal should be zero: (8.326672684688674e-17+0j)\n" ] } ], "source": [ "# Using more harmonics. \n", "t, x, e, amps, phases = ms.hb_freq(ms.duff_osc, x0 = np.array([[0,1,-1]]), omega = .1, num_harmonics= 1)\n", "print('Equation errors (should be zero): ', e)\n", "print('Constant term of FFT of signal should be zero: ', ms.fftp.fft(x)[0,0])" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[7.46635675e-07, 1.43600922e-06]])" ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.abs(e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sometimes we can improve just by restarting from the prior end point. Sometimes, we just think it's improved. " ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Errors: [[ 2.58053387e-08 -1.57420453e-07 4.03435235e-11 4.58437185e-12\n", " -6.59875968e-09 2.08141165e-09 4.97125418e-11 -1.13236714e-10\n", " -4.00440922e-10 -6.77031226e-08 -7.71574752e-11 1.07091196e-10\n", " 5.28102872e-08 7.21072898e-08]]\n", "Constant term of FFT of signal should be zero: (-2.463307335887066e-16+0j)\n" ] } ], "source": [ "t, x, e, amps, phases = ms.hb_freq(ms.duff_osc, x0 = x, omega = 0.1, num_harmonics= 7)\n", "print('Errors: ', e)\n", "print('Constant term of FFT of signal should be zero: ', ms.fftp.fft(x)[0,0])" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The average for this problem is known to be zero, we got -7.401486830834377e-18\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Let's get a smoother response\n", "time, xc = ms.time_history(t,x)\n", "plt.plot(time,xc.T,t,x.T,'*')\n", "plt.grid(True)\n", "print('The average for this problem is known to be zero, we got', sp.average(x))" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [], "source": [ "def duff_osc2(x, v, params):\n", " omega = params['omega']\n", " t = params['cur_time']\n", " return np.array([[-x-.01*x**3-.01*v+1*sin(omega*t)]])" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2.46438843] [[-0.04816055 0.95031796 1.79345444 2.33265262 2.4632571 2.15851606\n", " 1.48008193 0.5547736 -0.46041308 -1.40119713 -2.10905762 -2.45282919\n", " -2.36338798 -1.85917961 -1.03882854]] [[ 7.58880069e-08 -4.92394640e-06 -5.12492802e-10 4.55729522e-10\n", " -1.59320950e-07 -2.24039161e-06 8.99241320e-09 8.21786790e-09\n", " 1.80846194e-08 1.12039572e-07 3.36844695e-08 2.86271689e-09\n", " 2.37337183e-07 6.55548378e-08]]\n", "Constant term of FFT of signal should be zero: (3.3306690738754696e-16+0j)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t, x, e, amps, phases = ms.hb_freq(duff_osc2, np.array([[0,1,-1]]), omega = 0.8, num_harmonics=7)\n", "\n", "print(amps, x, e)\n", "print('Constant term of FFT of signal should be zero: ', ms.fftp.fft(x)[0,0])\n", "time, xc = ms.time_history(t,x)\n", "\n", "plt.plot(time, xc.T, t, x.T, '*')\n", "plt.grid(True)" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Excepted- search failed for omega = 0.1050 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.1196 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.1341 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.1487 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.1633 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.1779 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.1924 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2070 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2216 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2362 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2507 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2653 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2799 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2944 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3090 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3236 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3382 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3527 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3673 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3819 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3965 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4110 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4256 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4402 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4547 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4693 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4839 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4985 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.5130 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.5276 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.5422 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.5568 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.5713 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.5859 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6005 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6151 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6296 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6442 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6588 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6733 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6879 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7025 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7171 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7316 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7462 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7608 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7754 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7899 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.8045 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9759 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9904 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 3.0050 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "[[ 0.105 nan]\n", " [ 0.11957286 nan]\n", " [ 0.13414573 nan]\n", " [ 0.14871859 nan]\n", " [ 0.16329146 nan]\n", " [ 0.17786432 nan]\n", " [ 0.19243719 nan]\n", " [ 0.20701005 nan]\n", " [ 0.22158291 nan]\n", " [ 0.23615578 nan]\n", " [ 0.25072864 nan]\n", " [ 0.26530151 nan]\n", " [ 0.27987437 nan]\n", " [ 0.29444724 nan]\n", " [ 0.3090201 nan]\n", " [ 0.32359296 nan]\n", " [ 0.33816583 nan]\n", " [ 0.35273869 nan]\n", " [ 0.36731156 nan]\n", " [ 0.38188442 nan]\n", " [ 0.39645729 nan]\n", " [ 0.41103015 nan]\n", " [ 0.42560302 nan]\n", " [ 0.44017588 nan]\n", " [ 0.45474874 nan]\n", " [ 0.46932161 nan]\n", " [ 0.48389447 nan]\n", " [ 0.49846734 nan]\n", " [ 0.5130402 nan]\n", " [ 0.52761307 nan]\n", " [ 0.54218593 nan]\n", " [ 0.55675879 nan]\n", " [ 0.57133166 nan]\n", " [ 0.58590452 nan]\n", " [ 0.60047739 nan]\n", " [ 0.61505025 nan]\n", " [ 0.62962312 nan]\n", " [ 0.64419598 nan]\n", " [ 0.65876884 nan]\n", " [ 0.67334171 nan]\n", " [ 0.68791457 nan]\n", " [ 0.70248744 nan]\n", " [ 0.7170603 nan]\n", " [ 0.73163317 nan]\n", " [ 0.74620603 nan]\n", " [ 0.76077889 nan]\n", " [ 0.77535176 nan]\n", " [ 0.78992462 nan]\n", " [ 0.80449749 nan]\n", " [ 0.81907035 2.62533157]\n", " [ 0.83364322 2.76029614]\n", " [ 0.84821608 2.90689245]\n", " [ 0.86278894 3.06564032]\n", " [ 0.87736181 3.23686365]\n", " [ 0.89193467 3.42062599]\n", " [ 0.90650754 3.61668661]\n", " [ 0.9210804 3.82448198]\n", " [ 0.93565327 4.04314047]\n", " [ 0.95022613 4.27153101]\n", " [ 0.96479899 4.50833848]\n", " [ 0.97937186 4.75215267]\n", " [ 0.99394472 5.0015558 ]\n", " [ 1.00851759 5.25519624]\n", " [ 1.02309045 5.51184157]\n", " [ 1.03766332 5.77040958]\n", " [ 1.05223618 6.02998002]\n", " [ 1.06680905 6.28979196]\n", " [ 1.08138191 6.54923173]\n", " [ 1.09595477 6.80781592]\n", " [ 1.11052764 7.06517264]\n", " [ 1.1251005 7.32102307]\n", " [ 1.13967337 7.57516457]\n", " [ 1.15424623 7.82745589]\n", " [ 1.1688191 8.07780457]\n", " [ 1.18339196 8.3261565 ]\n", " [ 1.19796482 8.5724874 ]\n", " [ 1.21253769 8.81679587]\n", " [ 1.22711055 9.0590979 ]\n", " [ 1.24168342 9.2994225 ]\n", " [ 1.25625628 9.53780821]\n", " [ 1.27082915 9.77430042]\n", " [ 1.28540201 10.00894925]\n", " [ 1.29997487 10.24180788]\n", " [ 1.31454774 10.4729313 ]\n", " [ 1.3291206 10.70237534]\n", " [ 1.34369347 10.93019593]\n", " [ 1.35826633 11.15644854]\n", " [ 1.3728392 11.38111418]\n", " [ 1.38741206 11.60438064]\n", " [ 1.40198492 11.82623705]\n", " [ 1.41655779 12.04673357]\n", " [ 1.43113065 12.26591873]\n", " [ 1.44570352 12.4838393 ]\n", " [ 1.46027638 12.70054034]\n", " [ 1.47484925 12.91606516]\n", " [ 1.48942211 13.13045536]\n", " [ 1.50399497 13.34375084]\n", " [ 1.51856784 13.55598988]\n", " [ 1.5331407 13.76720913]\n", " [ 1.54771357 13.97744372]\n", " [ 1.56228643 14.18672731]\n", " [ 1.5768593 14.3950921 ]\n", " [ 1.59143216 14.60256897]\n", " [ 1.60600503 14.80918746]\n", " [ 1.62057789 15.01497589]\n", " [ 1.63515075 15.21996142]\n", " [ 1.64972362 15.42417011]\n", " [ 1.66429648 15.62762705]\n", " [ 1.67886935 15.83035656]\n", " [ 1.69344221 16.03238252]\n", " [ 1.70801508 16.23372929]\n", " [ 1.72258794 16.43442387]\n", " [ 1.7371608 16.63441974]\n", " [ 1.75173367 16.83382998]\n", " [ 1.76630653 17.03263938]\n", " [ 1.7808794 17.23089283]\n", " [ 1.79545226 17.42850075]\n", " [ 1.81002513 17.62562433]\n", " [ 1.82459799 17.8221529 ]\n", " [ 1.83917085 18.01819593]\n", " [ 1.85374372 18.21374612]\n", " [ 1.86831658 18.4087612 ]\n", " [ 1.88288945 18.60330092]\n", " [ 1.89746231 18.79744056]\n", " [ 1.91203518 18.99103279]\n", " [ 1.92660804 19.18427165]\n", " [ 1.9411809 19.37700725]\n", " [ 1.95575377 19.56932889]\n", " [ 1.97032663 19.76124915]\n", " [ 1.9848995 19.9527751 ]\n", " [ 1.99947236 20.14391491]\n", " [ 2.01404523 20.33467354]\n", " [ 2.02861809 20.52506855]\n", " [ 2.04319095 20.71510344]\n", " [ 2.05776382 20.90478692]\n", " [ 2.07233668 21.09412746]\n", " [ 2.08690955 21.28313322]\n", " [ 2.10148241 21.47181209]\n", " [ 2.11605528 21.6601717 ]\n", " [ 2.13062814 21.84821943]\n", " [ 2.14520101 22.03596242]\n", " [ 2.15977387 22.22340739]\n", " [ 2.17434673 22.41056141]\n", " [ 2.1889196 22.59743075]\n", " [ 2.20349246 22.78402165]\n", " [ 2.21806533 22.97034019]\n", " [ 2.23263819 23.15639224]\n", " [ 2.24721106 23.34218341]\n", " [ 2.26178392 23.52771933]\n", " [ 2.27635678 23.71300527]\n", " [ 2.29092965 23.89804639]\n", " [ 2.30550251 24.08284768]\n", " [ 2.32007538 24.26741402]\n", " [ 2.33464824 24.45175008]\n", " [ 2.34922111 24.63586041]\n", " [ 2.36379397 24.81974942]\n", " [ 2.37836683 25.00342138]\n", " [ 2.3929397 25.1868804 ]\n", " [ 2.40751256 25.3701305 ]\n", " [ 2.42208543 25.55317552]\n", " [ 2.43665829 25.73601924]\n", " [ 2.45123116 25.91866527]\n", " [ 2.46580402 26.10111709]\n", " [ 2.48037688 26.2833781 ]\n", " [ 2.49494975 26.46545157]\n", " [ 2.50952261 26.64734063]\n", " [ 2.52409548 26.82904833]\n", " [ 2.53866834 27.01057757]\n", " [ 2.55324121 27.19193119]\n", " [ 2.56781407 27.37311183]\n", " [ 2.58238693 27.55412211]\n", " [ 2.5969598 27.73496979]\n", " [ 2.61153266 27.9156421 ]\n", " [ 2.62610553 28.09615638]\n", " [ 2.64067839 28.27650963]\n", " [ 2.65525126 28.45670002]\n", " [ 2.66982412 28.63673625]\n", " [ 2.68439698 28.81661413]\n", " [ 2.69896985 28.99634014]\n", " [ 2.71354271 29.17591096]\n", " [ 2.72811558 29.35533023]\n", " [ 2.74268844 29.53459868]\n", " [ 2.75726131 29.71371689]\n", " [ 2.77183417 29.89268432]\n", " [ 2.78640704 30.07150277]\n", " [ 2.8009799 30.25017034]\n", " [ 2.81555276 30.42868635]\n", " [ 2.83012563 30.60705024]\n", " [ 2.84469849 30.7852594 ]\n", " [ 2.85927136 30.96331076]\n", " [ 2.87384422 31.14120086]\n", " [ 2.88841709 31.31892347]\n", " [ 2.90298995 31.49647097]\n", " [ 2.91756281 31.67383294]\n", " [ 2.93213568 31.85099411]\n", " [ 2.94670854 32.02802991]\n", " [ 2.96128141 32.20488021]\n", " [ 2.97585427 nan]\n", " [ 2.99042714 nan]\n", " [ 3.005 nan]]\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "omega = np.linspace(0.1,3,200)+1/200\n", "amp = np.zeros_like(omega)\n", "x = np.array([[0,-1,1]])\n", "for i, freq in enumerate(omega):\n", " #print(i,freq,x)\n", " try:\n", " t, x, e, amps, phases = ms.hb_freq(duff_osc2, x, omega = freq, num_harmonics = 1)# , callback = resid)\n", " #print(freq, amps, e)\n", " amp[i]=amps[0]\n", " except:\n", " amp[i] = sp.nan\n", "print(np.hstack((omega.reshape(-1,1), amp.reshape(-1,1))))\n", "plt.plot(omega, amp)" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " amps = [6.87938913]\n", " x = [[-0.52058566 6.20093581 -5.68035015]]\n", " e = [[-3.83538149e-09 1.45558470e-08]]\n", " phases = [-0.07574565]\n", "Constant term of FFT of signal should be zero: (1.1102230246251565e-16+0j)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t, x, e, amps, phases = ms.hb_freq(duff_osc2, np.array([[0,1,-1]]), omega = 1.1, num_harmonics=1)\n", "\n", "print(' amps = {}\\n x = {}\\n e = {}\\n phases = {}'.format(amps, x, e, phases))\n", "print('Constant term of FFT of signal should be zero: ', ms.fftp.fft(x)[0,0])\n", "time, xc = ms.time_history(t,x)\n", "\n", "plt.plot(time, xc.T, t, x.T, '*')\n", "plt.grid(True)" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.07574565])" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phases" ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Excepted- search failed for omega = 0.1050 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.1376 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.1702 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2028 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2353 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.2679 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3005 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3331 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3657 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.3983 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4308 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4634 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.4960 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.5286 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.5612 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.5938 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6263 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6589 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.6915 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7241 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7567 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 0.7893 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9724 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 3.0050 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "omega = sp.linspace(0.1,3,90)+1/200\n", "amp = sp.zeros_like(omega)\n", "x = np.array([[0,-1,1]])\n", "for i, freq in enumerate(omega):\n", " #print(i,freq,x)\n", " #print(sp.average(x))\n", " x = x-sp.average(x)\n", " try:\n", " t, x, e, amps, phases = ms.hb_freq(duff_osc2, x, freq, num_harmonics=1)#, callback = resid)\n", " amp[i]=amps[0]\n", " except:\n", " amp[i] = sp.nan \n", "plt.plot(omega, amp)" ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Excepted- search failed for omega = 3.0050 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 3.0000 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9950 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9900 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9850 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9800 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9750 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9700 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9650 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9600 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9550 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9500 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9450 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9400 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9350 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9300 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9250 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9200 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9150 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9100 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9050 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 2.9000 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1700 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1650 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1600 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1550 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1500 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1450 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1400 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1350 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1300 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1250 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1200 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n", "Excepted- search failed for omega = 1.1150 rad/s.\n", "What ever error this is, please put into har_bal\n", " after the excepts (2 of them)\n", "True\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "omegal = sp.arange(3,.03,-1/200)+1/200\n", "ampl = sp.zeros_like(omegal)\n", "x = np.array([[0,-1,1]])\n", "for i, freq in enumerate(omegal):\n", " # Here we try to obtain solutions, but if they don't work, \n", " # we ignore them by inserting `np.nan` values.\n", " x = x-sp.average(x)\n", " try:\n", " t, x, e, amps, phases = ms.hb_freq(duff_osc2, x, freq, num_harmonics=1, f_tol = 1e-6)#, callback = resid)\n", " ampl[i]=amps[0]\n", " except:\n", " ampl[i] = sp.nan\n", "plt.plot(omegal, ampl)" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(omegal,ampl)\n", "plt.plot(omega,amp)\n", "#plt.axis([0,3, 0, 10.5])" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [], "source": [ "from scipy.optimize import newton_krylov" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [], "source": [ "def duff_amp_resid(a):\n", " return (mu**2+(sigma-3/8*alpha/omega_0*a**2)**2)*a**2-(k**2)/4/omega_0**2" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [], "source": [ "mu = 0.05 # damping\n", "k = 1 # excitation amplitude\n", "sigma = -0.9 #detuning\n", "omega_0 = 1 # driving frequency\n", "alpha = 0.1 # cubic coefficient" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(-0.54786912)" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "newton_krylov(duff_amp_resid,-.1)" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sigmas = sp.linspace(-1,3,200)\n", "amplitudes = sp.zeros_like(sigmas)\n", "x = newton_krylov(duff_amp_resid,1)\n", "for i, sigma in enumerate(sigmas):\n", " try:\n", " amplitudes[i] = newton_krylov(duff_amp_resid,x)\n", " x = amplitudes[i]\n", " except:\n", " amplitudes[i] = newton_krylov(duff_amp_resid,0)\n", " x = amplitudes[i]\n", "\n", "plt.plot(sigmas,amplitudes)" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jslater/anaconda3/lib/python3.6/site-packages/scipy/optimize/nonlin.py:476: RuntimeWarning: invalid value encountered in double_scalars\n", " and dx_norm/self.x_rtol <= x_norm))\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD7CAYAAAB68m/qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAHt1JREFUeJzt3Xt0HOWd5vHvq1vrrtbVlizbsmRssDEGWSbcwUQZWMgNYiAzSXbI2SCSTTI5M2cGkszs7Mw5m83gXPaSSZhxdpLZ7JDEi0Ouk0AiLxAGA0YWGGzABsl3W7YsqXW/690/uiRasqSWrVaXqvr5nKPT1f2Wu351pH769VtvVRlrLSIi4n1JbhcgIiKxoUAXEfEJBbqIiE8o0EVEfEKBLiLiEwp0ERGfUKCLiPiEAl1ExCcU6CIiPpESz40VFRXZioqKeG5SRMTz9u7de85aWxxtvTkFujGm2lrbOFMbUAlgrd052/tUVFTQ0NAwl02KiIjDGHN0LutFHXIxxtQCj8+yypecIK90wl1ERFwQtYdura03xjRP12aM2Qq87Ky3Lca1iYjIBZjvQdHNQKExptoY81AsChIRkYsTi1kubePj606PfRJjTJ0xpsEY09Da2hqDzYmIyHTmG+htwPhwTIhwj30Sa+12a22NtbamuDjqQVoREblIFxXoxpigs7gTZ4YLEMQZTxcRkfibyyyXrUDNlOGUXQDW2mYg5LQVRpu2eLGstfQOjizEW4uI+MZcZrnsJNwTj3xtU8TydmdxQcIc4KGdr7G7qY3nv3jrQm1CRMTzPHHqf2F2gLPdA+j+pyIiM/NEoJfkBBgetXT0DbtdiojIouWNQM8NAHC2e8DlSkREFi9PBPqS3HQAznYNulyJiMji5YlAL8kJ99DPdKmHLiIyE48EutND71YPXURkJp4I9Iy0ZHLSU2hVoIuIzMgTgQ7hYRcNuYiIzMxDgZ6uIRcRkVl4JtCX5AY0bVFEZBaeCfSS3HTOdA3qbFERkRl4J9BzAgyNjNHVr4t0iYhMxzuBPn5ykYZdRESm5Z1Anzi5SAdGRUSm47lAVw9dRGR63gl0Z8hFPXQRkel5JtCzAylkpSWrhy4iMgPPBDqEe+k6uUhEZHqeCvTinABndfq/iMi05hToxpjqOazz0PzLmd0S9dBFRGYUNdCNMbXA43NY532xKmomJTkBzupsURGRaUUNdGttPdAch1qiKskJ0D88SvegzhYVEZlq3mPoxphqJ/QXnG5FJyIys1gcFC2IwXvMyfjNonVddBGR880r0OfSOzfG1BljGowxDa2trfPZHCsLswA40tY7r/cREfGjiwp0Y0zQWaw0xmw1xtQBBdPNhrHWbrfW1lhra4qLi+dTK6W56aSnJtHcqkAXEZlqLrNctgI1zuO4XQDW2p3W2p3Oa8Hz/nGMJSUZKgqzOHxOgS4iMtVcZrnstNbmRwQ31tpNU9bZbq2tstY2LkSRkSqLFegiItPx1JmiAKuKsjjW3sfw6JjbpYiILCoeDPRsRscsx9v73C5FRGRR8VygVxaHZ7po2EVEZDLvBXqRAl1EZDqeC/RgZhr5mak0aeqiiMgkngt0CB8YPXyux+0yREQWFU8GemVxtoZcRESm8GSgryrK4kzXIL266qKIyARPBroOjIqInM+Tgb5KUxdFRM7jyUCvKMzCGAW6iEgkTwZ6emoyy4IZvH1WM11ERMZ5MtAB1pXmcuBUp9tliIgsGp4N9PVleRw+16uZLiIiDs8G+uXLcrEW3jzd5XYpIiKLgmcDfX1ZHgD7T2rYRUQEPBzoS3IDFGWnceCUeugiIuDhQDfGsK4sj/0KdBERwMOBDnB5WS5vn+lmcGTU7VJERFw3p0A3xlTP0lbn/DwSu7LmZn1ZHiNjlkMtmo8uIhI10I0xtcDjs7TVW2u3A5XO87i5fFkuAPs1H11EJHqgW2vrgeYZmiuB8RBvdp7HzfL8THICKTrBSEQESJnPP3Z65uOqgR3zK+fCJCUZ1pXlsv+kDoyKiMTkoKgzxt5orW2MxftdiMuX5fHm6S6GR8fivWkRkUUlVrNcaq21D0/X4BwwbTDGNLS2tsZoc++qXpHP4MiYTjASkYR3UYFujAlGLNdZa7c5y+cdFLXWbrfW1lhra4qLiy++0hlsrsgHoOFIR8zfW0TES+Yyy2UrUOM8jtvltNUCjxhjmowxriRqSW46Kwsz2XOk3Y3Ni4gsGlEPilprdwI7p7y2yXmsB/IXprS521xRwK43z2CtxRjjdjkiIq7w9Jmi4zZX5NPRN0xTq+5gJCKJyxeBXlNRAMDLGnYRkQTmi0CvLMqiMCtNgS4iCc0XgW6MoaYiX4EuIgnNF4EO4QOjx9v7aekccLsUERFX+CrQAV463OZyJSIi7vBNoF++LI+8jFSee/uc26WIiLjCN4GenGS4YXURz73dirXW7XJEROLON4EOcNOaIs50DXLwTLfbpYiIxJ3PAj18rZjfH4r9RcBERBY7XwV6aV4Ga5Zk8/tDGkcXkcTjq0AHuOmSYvYcaad/SDeOFpHE4r9AX1PM0MgYL2r6oogkGN8F+tWrCgikJGkcXUQSju8CPT01meuqCql3LqcrIpIofBfoALetX8rx9n7ePK3piyKSOHwZ6LXrlpBk4MkDLW6XIiISN74M9KLsAJsrCnhqvwJdRBKHLwMdwsMuB89009za43YpIiJx4d9Av3wpAE8dOONyJSIi8TGnQDfGVM/SttUYU2uMeSh2Zc3fsmAGV5Tn8ZTG0UUkQUQNdGNMLfD4DG3VANbaeiA0W/C74bb1S3n1eIgTHX1ulyIisuCiBroT1s0zNN8HhJzlZqA2RnXFxAc3lgHw81dPuVyJiMjCm+8YehCIvJFn4TzfL6aWF2SyuSKfJxpP6CQjEfG9BT8oaoypM8Y0GGMaWlvjfzr+XVeV09Tay/6TXXHftohIPM030ENAgbMcBM67Ipa1dru1tsZaW1NcXDzPzV24OzeUkpacxE9fORn3bYuIxNNFBboxJugs7gAqneVKoD4WRcVSXmYqt15awi/2nWJkdMztckREFsxcZrlsBWqcx3G7AKy1jc46tUBo/Plic1f1Ms71DPLcO7rxhYj4V0q0Fay1O4GdU17bFLG8fQHqiqlb1hZTkJXGjj3H2bK2xO1yREQWhG/PFI0USEnmnk3l/O7NM5zpGnC7HBGRBZEQgQ7wh1evYHTM8n9fPu52KSIiCyJhAr2iKIvrVxfy45ePMzqmOeki4j8JE+gAH3vPSk6G+nn20Fm3SxERibmECvT3rVtCUXaAx1485nYpIiIxl1CBnpqcxB9dvZz/d/CsrpMuIr6TUIEO8IlrK0hNSuJ7zx92uxQRkZhKuEAvzgnw4avK2Ln3BB29Q26XIyISMwkX6ACfurGSgeExHnvpqNuliIjETEIG+polOdy0pph/3n2UwZFRt8sREYmJhAx0gAdvquRczyCPN5xwuxQRkZhI2EC/rqqQq1YEefSZJoZGdBVGEfG+hA10Ywx/8t5LOBnq56evqJcuIt6XsIEOcMuaYq4oz+Pvn36HYV0rXUQ8LqED3RjD52+9hOPt/fxMdzQSEY9L6EAHqL2shA3L8vjv9W8zMKwZLyLiXQkf6MYYHr79Uk6G+vmXFzUvXUS8K+EDHeCGS4q4YXUR3376HboGht0uR0TkoijQHQ/ffikdfcN89/fNbpciInJRFOiODeV5vP+KUr77XDMnQ/1ulyMicsGiBroxZqsxptYY81CU9rrYlxdfX/x3l2ItfPXXb7pdiojIBZs10I0x1QDW2nogNP58Snuz0948td1ryvMzefDmKn712mn2HG53uxwRkQsSrYd+HxBylpuB2mnWecR5rLTWNsaqMLd85uYqyvLS+ZtfHNC9R0XEU6IFehCI7KoWRjY6Ad5sjOmYst4EY0ydMabBGNPQ2to6r2LjISMtmS/feRlvnO7SNEYR8ZR5HRQ1xgQJ9+C/CnzXGFM5dR1r7XZrbY21tqa4uHg+m4ubOzeUcuMlRXztqYOc7tQBUhHxhmiBHgIKnOUg0DalvQ74qrV2G/AAsDW25bnDGMNXPryBkbEx/vPPD7hdjojInEQL9B3AeK+7EqiHiZ75JNbanbw73u55Kwoz+cJ71/DbN87w5P4Wt8sREYlq1kAfP8hpjKkFQhEHPXc57duAOmfqYp21dvuCVhtnn7pxFZeV5vJXP9uv+4+KyKJnrI3fTI6amhrb0NAQt+3FwhunuvjQt/+N2y8v5Vt/eJXb5YhIAjLG7LXW1kRbT2eKRrGuLJcvvPcSfrnvFP/62mm3yxERmZECfQ4+fXMVG8vz+KufvU5L54Db5YiITEuBPgcpyUl8874rGRge4093vKoTjkRkUVKgz1FVcTZ/+6H1vNDcxj882+R2OSIi51GgX4B7NpXzgY1lfPN3h3j5iK71IiKLiwL9Ahhj+Mpdl7M8P4PPPtZIa/eg2yWJiExQoF+g3PRUHv34JroGhvn8jxoZGR1zuyQREUCBflEuK83lKx/ewIvN7Tzy5FtulyMiAkCK2wV41Uc2lbPvRIjvPneYtUtz2bqp3O2SRCTBqYc+D//p/eu4rqqQLz/xOnuP6iCpiLhLgT4PqclJfOdj1ZQG06n7wV6OtvW6XZKIJDAF+jwFM9P43v2bGbOWT/zTHs18ERHXKNBjoKo4m+/dv5nW7kHu//4eugeG3S5JRBKQAj1GrlqRz6Mfr+ZgSzcP/p+9DI6Mul2SiCQYBXoM3bK2hG1br2B3U5uu+SIicadpizF2d3U5bT1DfOXXbxLM3M9/+dDlJCUZt8sSkQSgQF8AD9xUSUffEN95pglr4SsfVqiLyMJToC+Qv7htLcbAt59uYnRsjL+7+wqFuogsKAX6AjHG8Od/sJbkpCT+5663GR2DbVuvIFmhLiILJGqgG2O2AiGg2rkp9NT2aqASwFq7M+YVepgxhj973xqSjeG/1R9idGyMr9+zkZRkHYsWkdibNVmcsMZaWw+Exp9P8SUnyCtnaE94X6i9hL+4bS0/e/UUn3mskf4hTWkUkdiL1lW8j3DvHKAZqI1sdHrvLwNYa7dZaxtjXqFPfHbLav7mA+uof/MMf/S/XqS9d8jtkkTEZ6IFehCIvOpU4ZT2zUChMabaGPPQdG9gjKkzxjQYYxpaW1vnUar33X/9Kh79WDVvnOriI4/u5lhbn9sliYiPxGIwt228Z+702Cex1m631tZYa2uKi4tjsDlvu/3yUh771Hvo6Bvi7kefZ9/xUPR/JCIyB9ECPQQUOMtBoG1KexvhoZjxdTfHrjT/qqko4CefuY701GQ+uv1FfvXaKbdLEhEfiBboO3BmsDiP9QDGmKDz2s6I9iDOeLpEV1WczRP/8TrWleXyuR++wt/95i1dKkBE5mXWQI8YSqkFQhEHPXc57c2EZ79sBQo1bfHClOSk86MHruFj71nBPzzbxP3f30OoTwdLReTiGGvj1yusqamxDQ0Ncduel/x4zzH++ucHWJIXYPsnarisNNftkkRkkTDG7LXW1kRbT2e4LBIfvXoFP37wGoZGxvjwt5/nsZeOEs8vWxHxPgX6IlK9Ip9fff5Grl5VwF/+dD+f+ZdGDcGIyJwp0BeZ4pwA//uTV/PlOy5l11tnuON/PMeew7oBtYhEp0BfhJKSDHU3VfGTz1xHWkoSH93+Al9/6qDugiQis1KgL2JXlAf51Z/cyF1XlfP3T7/DB7/1PK+d0IlIIjI9Bfoilx1I4Rv3buR799cQ6h/iru/s5mtPvaXeuoicR4HuEbdeuoTf/unN3HXVMr79dBMf+Na/sfeoxtZF5F0KdA/Jy0jl6/ds5Puf3Ez3wAgfefQFHt75mq7cKCKAAt2Ttqwtof7PbubBmyr5SeMJbv3GM/xozzHGdOkAkYSmQPeorEAKX7rjMn79hRtZsySHLz3xOnc9upu9RzvcLk1EXKJA97g1S3LYUXcN37x3I6dC/Xzk0d187oeNHG/XtdZFEo1uEu0Dxhjuri7ntvVL+cffN7P990389o0zfPL6Cj67ZTW56alulygicaCLc/nQ6c5+vvbUQZ5oPEkwM5VP31zFH19bQUZastulichFmOvFuRToPrb/ZCdfe+ogzx5qpTgnwOe2rOajVy8nkKJgF/ESBbpMePlIO19/6iAvHW5nWTCDT99SxT2byklPVbCLeIECXSax1vL8O21843cHeeVYiKLsAP/hhlV8/JoV5GiMXWRRU6DLtKy1vNDcxqPPNPHc2+fISU/h31+7kk9ev4qi7IDb5YnINBToEtVrJ0I8+kwTTx5oIZCSxH01y/nUjZUsL8h0uzQRiRCzQHfuFxoCqq2122ZZ76HZ2kGBvli9c7aHf3y2iZ++cpJRa3nvpSX88XUV3LC6CGOM2+WJJLyY3ILOGFMNYK2tJ3wz6OoZ1qsF3ncxhYr7Vpdk87V7NvLcw1v47C2reeVYiE/80x5qv/ksP3jhCD2DI26XKCJzEO1M0fsI984BmoHahS1H3FSal8Gf37aW5794K9+8dyPZgRT++ucHuOa/7uJvfnGAd852u12iiMwi2pmiQSDyGq2FU1cwxlRba+uNMQ/HtDJxTXpqMndXl3N3dTmvHOvgBy8c5bGXjvLPu49QvSLIvTXLufOKUs2OEVlkYnHqf0EM3kMWqatW5HPVinz+8s7L+GnjSXY0HOeLT7zO3/7yDe7YUMp9m5ezuSJfY+0ii0C0QA/xbmAHgbbIxvHe+WxvYIypA+oAVqxYcZFlituKsgM8cFMln7pxFa8cD/F4w3F+ue80P2k8QUVhJh+pLueDV5axsjDL7VJFEtass1ycg6A11trtxpiHgHprbaMxJmitDTkzYCAc+g8CD1hrG2d6P81y8Ze+oRF+83oLOxqOs+dweGRu4/IgH9pYxvuvKKUkN93lCkX8IZbTFusIHxCttNZuj3jzTVPWeRi4R4GemE6G+vnVvlP8/NVTvHG6iyQD11QW8qEry7h9fSl5mRpvF7lYOrFIXPPO2R5+se8Uv3j1JEfa+khJMlxbVcgfrF/KbeuWqOcucoEU6OI6ay2vn+zkN/tbeHJ/C4fP9WIMXLU8yO2XL+W29Us15i4yBwp0WVSstbx9toen9rfw5IEWDpzqAmDtkhxuubSYLWtL2LQyn9Rk3URLZCoFuixqx9v7eOpAC7vePMvLR9oZGbPkBFK44ZIitqwt4ea1xSzR0IwIoEAXD+keGOb5d9p45uBZnj54ljNdgwCsK81ly6XF3LK2hCuXB9V7l4SlQBdPstbyVks3Tx88yzNvtbL3WAejY5astGSuXlXAdVVFXFtVyLrSXJKSdDKTJAYFuvhCZ/8wz79zjt1N59jd1EZzay8AwcxUrq0s5LqqQq6tKqKqOEtnq4pvzTXQY3Hqv8iCyctI5Y4NpdyxoRSAls4BXmg+x+532tjd1MZv9rcAUJIT4JrKQmoq8qlZWcDapTkkqwcvCUY9dPEsay3H2vvY3RQO9z2H2ybG33MCKVy1Mp/NK/PZVJHPlcuDZKap/yLepCEXSTjWWk509NNwtJ2GIx00HOng0NlurIWUJMP6slw2rSzgyhVBriwPsrwgQ8M04gkKdBGgs2+YxmMdNBxt5+UjHew7HmJwZAyA/MxUNi4PsrE8yJXLg1xRnkeh7qsqi5DG0EWAvMxUtlxawpZLSwAYHh3jYEs3+06E2Hc8xL7jnTx76G3G+zXLCzLYWB5kw7I81pXlsr4sj4KsNBf3QGTu1EOXhNczOML+k53hgD8RDvmTof6J9tK8dNaV5rK+LHci5MvzNVwj8aMeusgcZQdSuKaykGsq370hV3vvEG+e7uLAqU7eONXFgVNdPH3wLGNO/ycnPcUJ+TzWl+WydmkOq0uySU9NdmkvRBToItMqyErj+tVFXL+6aOK1/qFRDp7pnhTyP9xzlIHh8Jh8koGVhVlcUpLN2qU5rFkS/llVlEVais5ylYWnQBeZo4y0ZK5cHj6AOm50zHL4XA8HW3o4dKZ74mfXW2cZdbrzKUmGVUVZrFmaw5qSHNYsyaaqJJsVBZnq0UtMKdBF5iE5ybC6JIfVJTncSenE64MjozS39nLoTDcHW7o5dKaH10908uvXT08cgE0ysCw/g8qibCqLs6gszqayKIvK4iyW5qZrjF4umAJdZAEEUpK5rDSXy0pzJ73eNzRC09lems/10NTay+FzvTS39vDykXb6hkYn1stMS2ZVURarisJBX1UcXl5ZmEVehu7+JNNToIvEUWZaChvK89hQnjfpdWstLV0DNLeGA775XC/Nrb3sOxHiXyN69RC+js2KgszJP4Xhx9K8DF3yIIEp0EUWAWMMpXkZlOZlTDoQCzAwPMrRtj4On+vhaFsfx9rDP6+f7OTJ/S2MjL2b9qnJhvL8d4N+ZWEmywsyKc/PoDyYSW5GioZyfEyBLrLIpacms3ZpDmuX5pzXNjI6xunOAY6190WEfS/H2vtoPNZB98DIpPWzAymUBdNZFsygLJjBsvwMlgWdn/wMSnLS1cP3sKiBbozZCoSAamvttmna65zFKmvtwzGuT0RmkZKcxPKCcC/8+tWT26y1dPYPc7Stj5Ohfk6F+jnREX48GernleMhQn3Dk98vybA0L31SyJc54b80N52luenq5S9iswa6MaYawFpbb4ypNMZUW2sbI9prgXprbbMx5nFjTK21tn6BaxaROTDGEMxMI5iZxsaIqZaRegdHJgJ+PPRPdoSXXzrcTsu+gYnpl+MyUpNZmpfOktwAS3PTWZKXPhH248vFOQHdYcoF0Xro9wG/c5abgVqgMaK90vnZ7rRXxrpAEVk4WYEULlmSwyVLzh/OgfCQzpnuQU6F+mnpHOBM1wAtnQO0dIWXG452cLZrkKHRsUn/zhgoynYCPzedpXkBSnLCQV+cHQg/5gQoyg7opKsYihboQaA94nlhZKO1dnvE02pgR4zqEpFFICU5aWL4ZSbWWtp7hyZCvqVzMLzsBP+Jjj5ePtJOZ//wtP8+mJk6KeQnLUe8lp+ZptsORhGTg6LO0Exj5HBMRFsdUAewYsWKWGxORBYRYwyF2QEKswOsL8ubcb3BkVHO9QzR2j1Ia/cg53oGJ5Zbuwdp7RnklWMhznYPTFxOIVJykqEoO40iZ1uFWWkUOD/jy4XZaRRkBSjISiM3PfHG+qMFeggocJaDQNsM69XOdEDU6cVvh/DVFi+mSBHxvkBKctTePoR7/L1Do5xzQn5S6DuvtfUM0tzaQ3vv0KQTsiKlJhvyMycH/WxfAnkZqZ6f4RMt0HcA45dsrATqAYwxQWttyFmuG5/9ooOiIjJfxhiyAylkB1KoKMqKuv7A8ChtvUO09wzR1jtIe+8Q7b1DEa8N0d47yOsdIdp6h86byvnudiE3PZX8zFTyMtMIZoSXg5lp5EUuZ6aS77QHM1PJTU9dNENBswa6tbbRGFPjzGYJRQyp7AI2Oa8/Yox5mHBP/p6FLVdEZLL01Ln1/McNjYzR0TdEW8948Ie/BDr6hgn1DRHqGybUP0xH3xCHz/US6huia4YvAQh/EeRlpDoBn0Ywc/rl61YXUpKTHqvdnlbUMfQpBz7HX9vkPNYD+QtQl4jIgkhLSWKJM/tmrkZGx+gaGCHUFw7+zv5w8Hf0DdPZN+R8AYS/ENp7h2hu7aWjb/L/Bn74wHvcD3QRkUSXkpw0MfZ+Ica/CDr6hijNW9gwBwW6iMiCudgvgoulGf0iIj6hQBcR8QkFuoiITyjQRUR8QoEuIuITCnQREZ9QoIuI+ISxNn7XyzLGtAJH47CpIuBcHLazGCTKvibKfoL21a/ms68rrbXF0VaKa6DHizGmwVpbE31N70uUfU2U/QTtq1/FY1815CIi4hMKdBERn/BroJ93hUgfS5R9TZT9BO2rXy34vvpyDF1EJBH5tYcuIpJwFOge4tyMe6a2rcaYWmPMQ/GsaaFE2ddHnMe6+FUksvh5PtCjBZlfPvzO7f4en6GtGibuIBWaLQy9YLZ9ddQZY5qA5jiVtGCMMXXOzyMztPvii3oO++mLzymE/36dn7j/Tj0d6HMMMl98+J19nGkf7gNCznIzUBuXohZIlH0FeMBaW+X1G5I7X1z1zm0eK53nke2++KKOtp8OX3xOnX27x/mdVU/9nS3079TTgc7cgswXH/4ogkB7xPNCtwqJk0o/9FqBSt79m212nkfyyxd1tP0En3xOrbX11toHnaeV1trGKass6O/U64E+lyDzy4dfHNbabc4Hv3CG3p4nWGu3R9yEvRpomLKKL76o57Cf4LPPqbMfD07TtKC/U68HelR++fBHEQIKnOUg0OZiLQvKGYfd6jxtY/renqc4/+1unKY35yuz7affPqfW2m3Ag8aYYDy36/VAnzXI/PjhjxTxx7KDd/etEvD0f1unE7GvDby7f1VM39vzmlpr7cPTvO63L+pp99NPn1NjTOS4eTMw9SDvgv5OvR7o0waZHz/8zh98TcQfPsAugPEej9OzCXm9pzeHfb3XaWvywb7WOb258d+fL7+oo+ynbz6nhMfEIwO7GeL3O/X8maLONKdmwgcgtjuv7bXWbopob3fat7lXqchkEdMz2wmHwD3W2vpp/n4n/X17zQXsp+c/p05w3+s83TR+gDRev1PPB7qIiIR5fchFREQcCnQREZ9QoIuI+IQCXUTEJxToIiI+oUAXEfEJBbqIiE/8fyh0dRcFd27AAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sigmas = sp.linspace(-1,3,200)\n", "sigmasr = sigmas[::-1]\n", "amplitudesr = sp.zeros_like(sigmas)\n", "x = newton_krylov(duff_amp_resid,3)\n", "for i, sigma in enumerate(sigmasr):\n", " try:\n", " amplitudesr[i] = newton_krylov(duff_amp_resid,x)\n", " x = amplitudesr[i]\n", " except:\n", " amplitudesr[i] = sp.nan#newton_krylov(duff_amp_resid,0)\n", " x = amplitudesr[i]\n", " \n", "\n", "plt.plot(sigmasr,amplitudesr)" ] }, { "cell_type": "code", "execution_count": 121, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(sigmasr,amplitudesr)\n", "plt.plot(sigmas,amplitudes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using lambda functions\n", "As an aside, we can use a lambda function to solve a simple equation without much hassle. For example, $\\ddot{x} + 0.1\\dot{x}+ x + 0.1 x^3 = \\sin(0.7t)$" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1.47671412]\n" ] } ], "source": [ "def duff_osc2(x, v, params):\n", " omega = params['omega']\n", " t = params['cur_time']\n", " return np.array([[-x-.1*x**3-.1*v+1*sin(omega*t)]])\n", "_,_,_,a,_ = ms.hb_freq(duff_osc2, np.array([[0,1,-1]]), 0.7, num_harmonics=1)\n", "print(a)" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1.47671412])" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "_,_,_,a,_ = ms.hb_freq(lambda x,v, params:np.array([[-x-.1*x**3-.1*v+1*sin(0.7*params['cur_time'])]]), np.array([[0,1,-1]]), .7, num_harmonics=1)\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Two things to note: \n", "1. Remember that the lambda function has to return an `n by 1` array. \n", "2. Time must be referenced as params['cur_time']" ] } ], "metadata": { "hide_input": false, "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.6.5" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }