Analytic Trigonometric Formulas - Derivation
John Travis
Mississippi College
Starting with a unit circle approach, developing all the sum, difference, double angle and half angle formulas.
Click to the left again to hide and once more to show the dynamic interactive window |
Equating the two distances and gives
Equating the two distances and gives
|
Replacing with yields the addition formula for cosine
Use the fact at is odd and is even to get the addition formula.
Replacing with yields the addition formula for cosine
Use the fact at is odd and is even to get the addition formula. |
Using this formula and replacing with and with yields
The cofunction relationships yield
Using this formula and replacing with and with yields
The cofunction relationships yield |
Replacing with yields
Use the fact at is odd and is even to get the subtraction formula.
Replacing with yields
Use the fact at is odd and is even to get the subtraction formula. |
Replacing with yields the double angle formula
Replacing with yields the double angle formula
|
Visually, is the traditional sine curve compressed horizontally.
Visually, is the traditional sine curve expanded vertically. By multiplying by the second curve is given a variable amplitude. The animation shows what happens as is increasingly multiplied by . ^C Traceback (click to the left of this block for traceback) ... __SAGE__
Visually, is the traditional sine curve compressed horizontally.
Visually, is the traditional sine curve expanded vertically. By multiplying by the second curve is given a variable amplitude. The animation shows what happens as is increasingly multiplied by . ^C Traceback (most recent call last): G = plot(sin(2*x),(x,0,2*pi),color='blue',alpha=0.3)+plot(2*sin(x),(x,0,2*pi),color='green',alpha=0.3) File "", line 1, in <module> File "/tmp/tmpKcmzR7/___code___.py", line 13, in <module> H = G + plot(_sage_const_2 *sin(x)*c,(x,_sage_const_0 ,_sage_const_2 *pi),color='red') File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/misc/decorators.py", line 492, in wrapper return func(*args, **options) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/plot.py", line 1941, in plot G = funcs.plot(*args, **original_opts) File "sage/symbolic/expression.pyx", line 12027, in sage.symbolic.expression.Expression.plot (build/cythonized/sage/symbolic/expression.cpp:62698) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/misc/decorators.py", line 492, in wrapper return func(*args, **options) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/plot.py", line 1960, in plot G = _plot(funcs, *args, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/plot.py", line 2265, in _plot randomize) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/plot.py", line 3717, in generate_plot_points xi += delta*(random() - 0.5) File "src/cysignals/signals.pyx", line 320, in cysignals.signals.python_check_interrupt KeyboardInterrupt __SAGE__ |
Using the similar addition formula for but replacing with yields the double angle formula
Evenness and oddness gives a first formula for Replacing with gives a second formula for Instead, replacing with gives a third formula for
Using the similar addition formula for but replacing with yields the double angle formula
Evenness and oddness gives a first formula for Replacing with gives a second formula for Instead, replacing with gives a third formula for |
Compare the equality of the last two forms for :
Graph and then flip and stretch vertically. Graph and then stretch vertically. Finally translate blue down and green up ^C Traceback (click to the left of this block for traceback) ... __SAGE__
Compare the equality of the last two forms for :
Graph and then flip and stretch vertically. Graph and then stretch vertically. Finally translate blue down and green up ^C Traceback (most recent call last): H = plot(sin(x)^2,(x,0,2*pi),color='green',alpha=0.4) File "", line 1, in <module> File "/tmp/tmppJE38B/___code___.py", line 30, in <module> exec compile(u'animate(Slides).show(delay=_sage_const_30 , iterations=_sage_const_3 ) File "", line 1, in <module> File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 786, in show dm.display_immediately(self, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 835, in display_immediately plain_text, rich_output = self._rich_output_formatter(obj, rich_repr_kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 625, in _rich_output_formatter rich_output = self._call_rich_repr(obj, rich_repr_kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 583, in _call_rich_repr return obj._rich_repr_(self, **rich_repr_kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 684, in _rich_repr_ self.save, kwds, suffix, outputType) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 713, in graphics_from_save save_function(filename, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 1080, in save use_ffmpeg=use_ffmpeg, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 613, in gif d = self.png() File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 470, in png save_image(filename, **self._kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/graphics.py", line 3045, in save_image self.save(filename, *args, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/misc/decorators.py", line 411, in wrapper return func(*args, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/graphics.py", line 3217, in save figure.savefig(filename, **opts) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/figure.py", line 2062, in savefig self.canvas.print_figure(fname, **kwargs) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 2212, in print_figure **kwargs) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 532, in print_png self.figure.dpi, metadata=metadata) File "src/cysignals/signals.pyx", line 320, in cysignals.signals.python_check_interrupt KeyboardInterrupt __SAGE__ |
|
|
^C Traceback (click to the left of this block for traceback) ... __SAGE__ ^C Traceback (most recent call last): H = plot(sin(x),(x,0,2*pi),color='green',alpha=0.3) File "", line 1, in <module> File "/tmp/tmpM_zcIa/___code___.py", line 31, in <module> exec compile(u'animate(Slides).show(delay=_sage_const_30 , iterations=_sage_const_3 ) File "", line 1, in <module> File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 786, in show dm.display_immediately(self, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 835, in display_immediately plain_text, rich_output = self._rich_output_formatter(obj, rich_repr_kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 625, in _rich_output_formatter rich_output = self._call_rich_repr(obj, rich_repr_kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 583, in _call_rich_repr return obj._rich_repr_(self, **rich_repr_kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 684, in _rich_repr_ self.save, kwds, suffix, outputType) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 713, in graphics_from_save save_function(filename, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 1080, in save use_ffmpeg=use_ffmpeg, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 613, in gif d = self.png() File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/animate.py", line 470, in png save_image(filename, **self._kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/graphics.py", line 3045, in save_image self.save(filename, *args, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/misc/decorators.py", line 411, in wrapper return func(*args, **kwds) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/sage/plot/graphics.py", line 3217, in save figure.savefig(filename, **opts) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/figure.py", line 2062, in savefig self.canvas.print_figure(fname, **kwargs) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 2212, in print_figure **kwargs) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 517, in print_png FigureCanvasAgg.draw(self) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 437, in draw self.figure.draw(self.renderer) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper return draw(artist, renderer, *args, **kwargs) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/figure.py", line 1493, in draw renderer, self, artists, self.suppressComposite) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/image.py", line 141, in _draw_list_compositing_images a.draw(renderer) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper return draw(artist, renderer, *args, **kwargs) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 2635, in draw mimage._draw_list_compositing_images(renderer, self, artists) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/image.py", line 141, in _draw_list_compositing_images a.draw(renderer) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper return draw(artist, renderer, *args, **kwargs) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/axis.py", line 1202, in draw self._update_label_position(renderer) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/axis.py", line 2275, in _update_label_position bboxes, bboxes2 = self._get_tick_boxes_siblings(renderer=renderer) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/axis.py", line 2260, in _get_tick_boxes_siblings tlb, tlb2 = axx.yaxis._get_tick_bboxes(ticks_to_draw, renderer) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/axis.py", line 1130, in _get_tick_bboxes extent = tick.label1.get_window_extent(renderer) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/text.py", line 914, in get_window_extent tx, ty = self._get_xy_display() File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/text.py", line 228, in _get_xy_display return self.get_transform().transform_point((x, y)) File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/matplotlib/transforms.py", line 1529, in transform_point return self.transform(np.asarray([point]))[0] File "/home/sageserver/sage-8.7/local/lib/python2.7/site-packages/numpy/core/numeric.py", line 538, in asarray return array(a, dtype, copy=False, order=order) File "src/cysignals/signals.pyx", line 320, in cysignals.signals.python_check_interrupt KeyboardInterrupt __SAGE__ |
|
|