From a85741e25000ff99d2ab4fd9d774e78eca0387e8 Mon Sep 17 00:00:00 2001 From: "Ryan C. Cooper" Date: Wed, 31 Jan 2018 18:44:57 -0500 Subject: [PATCH] added rotating pendulum --- ch_03/pend_rot.m | 5 + ch_03/rotating_pendulum.m | 10 ++ octave-workspace | Bin 10826 -> 81732 bytes rotating_pendulum.ipynb | 334 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 349 insertions(+) create mode 100644 ch_03/pend_rot.m create mode 100644 ch_03/rotating_pendulum.m create mode 100644 rotating_pendulum.ipynb diff --git a/ch_03/pend_rot.m b/ch_03/pend_rot.m new file mode 100644 index 0000000..91a5af3 --- /dev/null +++ b/ch_03/pend_rot.m @@ -0,0 +1,5 @@ +function dy=pend_rot(t,y,l,w,a) + dy=zeros(size(y)); + dy(1)=y(2); + dy(2)=-9.81/l*sin(y(1))+w^2*sin(y(1))*cos(y(1))+a*w^2/l*cos(y(1)); +end diff --git a/ch_03/rotating_pendulum.m b/ch_03/rotating_pendulum.m new file mode 100644 index 0000000..40075fa --- /dev/null +++ b/ch_03/rotating_pendulum.m @@ -0,0 +1,10 @@ + +l=0.3; +a=1; +w=10; + +my_ode=@(t,y) pend_rot(t,y,l,w,a) + +[t,y]=ode23(my_ode,[0 2],[pi/6,0]); + +plot(t,y(:,1)) diff --git a/octave-workspace b/octave-workspace index 696cc40d9f50e64574f26735ec2818b27082a482..2ee3267da300f5f0d1eb5e8e72e601a7d7c7c9a1 100644 GIT binary patch literal 81732 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 literal 10826 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 Lg=Ca}O*8y2iFJ^n diff --git a/rotating_pendulum.ipynb b/rotating_pendulum.ipynb new file mode 100644 index 0000000..c585767 --- /dev/null +++ b/rotating_pendulum.ipynb @@ -0,0 +1,334 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%plot --format svg" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "setdefaults" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "pkg load odepkg" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "function dy=pend_rot(t,y,l,w,a)\n", + " dy=zeros(size(y));\n", + " dy(1)=y(2);\n", + " dy(2)=-9.81/l*sin(y(1))+w^2*sin(y(1))*cos(y(1))+a*w^2/l*cos(y(1));\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "my_ode =\n", + "\n", + "@(t, y) pend_rot (t, y, l, w, a)\n", + "\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t-0.4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-0.2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.8\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "l=0.3;\n", + "a=1;\n", + "w=1;\n", + "\n", + "my_ode=@(t,y) pend_rot(t,y,l,w,a)\n", + "\n", + "[t,y]=ode23(my_ode,[0 2],[pi/6,0]);\n", + "\n", + "plot(t,y(:,1))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "error: A(I,J): column index out of bounds; value 4 out of bound 3\r\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[0;31muse_imwrite = 0\r\n", + "use_imwrite = 0\r\n", + "error: print: no axes object in figure to print\r\n", + "error: called from\r\n", + " print at line 304 column 5\r\n", + " _make_figures>inner_print at line 68 column 5\r\n", + " _make_figures>safe_print at line 59 column 5\r\n", + " _make_figures at line 48 column 13\r\n", + "\n", + "\u001b[0m" + ] + } + ], + "source": [ + "x=a*cos(w*t)+l*sin(y(:,1)); % x1-coordinate over time\n", + "y=a*sin(w*t)+l*sin(y(:,1)); % y1-coordinate over time\n", + "z=a-l*cos(y(:,1)); % z1-coordinate over time\n", + "linkx=[zeros(length(t),1),zeros(length(t),1),a*cos(w*t)];\n", + "linky=[zeros(length(t),1),zeros(length(t),1),a*sin(w*t)];\n", + "linkz=[zeros(length(t),1),a*ones(length(t),1),a*ones(length(t),1)];\n", + "for i=1:length(t)\n", + " clf\n", + " plot3(linkx(:,i),linky(:,i),linkz(:,i))\n", + " hold on\n", + " plot3([linkx(3,i),x(i)],[linky(3,i),y(i)],[linkz(3,i),z(i)],'-o')\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans =\n", + "\n", + " 780 1\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[0;31muse_imwrite = 0\r\n", + "use_imwrite = 0\r\n", + "error: print: no axes object in figure to print\r\n", + "error: called from\r\n", + " print at line 304 column 5\r\n", + " _make_figures>inner_print at line 68 column 5\r\n", + " _make_figures>safe_print at line 59 column 5\r\n", + " _make_figures at line 48 column 13\r\n", + "\n", + "\u001b[0m" + ] + } + ], + "source": [ + "size(y)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Octave", + "language": "octave", + "name": "octave" + }, + "language_info": { + "file_extension": ".m", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "octave", + "version": "0.19.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}