forked from CalculusWithJulia/CalculusWithJulia.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
implicit_differentiation.html
1512 lines (1104 loc) · 472 KB
/
implicit_differentiation.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"
rel="stylesheet">
<style>
.julia {display: block; font-family: "Source Code Pro";
color:#0033CC;
}
.hljl {font-family: "Source Code Pro";
color:#0033CC;
}
body { padding-top: 60px; }
h5:before {content:"\2746\ ";}
h6:before {content:"\2742\ ";}
pre {display: block;}
th, td {
padding: 15px;
text-align: left;
border-bottom: 1px solid #ddd;
}
tr:hover {background-color: #f5f5f5;}
.admonition-title:before {content:"\2746\ ";}
.admonition-title { color:#0033CC}
</style>
<!-- .julia:before {content: "julia> "} -->
<style></style>
<script src="https://code.jquery.com/jquery.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ["\$","\$"], ["\\(","\\)"]]
},
displayAlign: "left",
displayIndent: "5%"
});
</script>
<!-- not TeX-AMS-MML_HTMLorMML-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML" async></script>
</script>
<script>
window.PlotlyConfig = {MathJaxConfig: 'local'}
</script>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
$("h1").each(function(index) {
var title = $( this ).text()
$("#page_title").html("<strong>" + title + "</strong>");
document.title = title
});
$( "h2" ).each(function( index ) {
var nm = $( this ).text();
var id = $.trim(nm).replace(/ /g,'');
this.id = id
$("#page_dropdown").append("<li><a href='#" + id + "'>" + nm + "</a></li>");
});
$('[data-toggle="popover"]').popover();
});
</script>
</head>
<body data-spy="scroll" >
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#" id="page_title"></a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
Jump to... <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu" id="page_dropdown"></ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
<header>
</header>
<div class="title">
</div>
<div class="container-fluid">
<div class="span10 offset1">
<h1>Implicit Differentiation</h1>
<h2>Graphs of equations</h2>
<p>An <strong>equation</strong> in <span class="math">$y$</span> and <span class="math">$x$</span> is an algebraic expression involving an equality with two (or more) variables. An example might be <span class="math">$x^2 + y^2 = 1$</span>.</p>
<p>The <strong>solutions</strong> to an equation in the variables <span class="math">$x$</span> and <span class="math">$y$</span> are all points <span class="math">$(x,y)$</span> which satisfy the equation.</p>
<p>The <strong>graph</strong> of an equation is just the set of solutions to the equation represented in the Cartesian plane.</p>
<p>With this definition, the graph of a function <span class="math">$f(x)$</span> is just the graph of the equation <span class="math">$y = f(x)$</span>.</p>
<p>In general, graphing an equation is more complicated than graphing a function. For a function, we know for a given value of <span class="math">$x$</span> what the corresponding value of <span class="math">$f(x)$</span> is through evaluation of the function. For equations, we may have 0, 1 or more <span class="math">$y$</span> values for a given <span class="math">$x$</span> and even more problematic is we may have no rule to find these values.</p>
<p>To plot such an equation in <code>Julia</code>, we can use the <code>ImplicitEquations</code> package, which is loaded when <code>CalculusWithJulia</code> is:</p>
<pre class='hljl'>
<span class='hljl-k'>using</span><span class='hljl-t'> </span><span class='hljl-n'>CalculusWithJulia</span><span class='hljl-t'> </span><span class='hljl-cs'># load `Plots`, `ImplicitEquations`, `Roots`, `SymPy`</span><span class='hljl-t'>
</span><span class='hljl-nf'>gr</span><span class='hljl-p'>()</span><span class='hljl-t'> </span><span class='hljl-cs'># better graphics than plotly() here</span>
</pre>
<pre class="output">
Plots.GRBackend()
</pre>
<p>To plot the circle of radius <span class="math">$2$</span>, we would first define a function of <em>two</em> variables:</p>
<pre class='hljl'>
<span class='hljl-nf'>f</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span>
</pre>
<pre class="output">
f (generic function with 1 method)
</pre>
<div class="alert alert-info" role="alert">
<div class="markdown"><p>This is a function of <em>two</em> variables, used here to express one side of an equation. <code>Julia</code> makes this easy to do–-just make sure two variables are in the signature of <code>f</code> when it is defined. Using functions like this, we can express our equation in the form $f(x,y) = c$ or $f(x,y) = g(x,y)$, the latter of which can be expressed as $h(x,y) = f(x,y) - g(x,y) = 0$. That is, only the form $f(x,y)=c$ is needed.</p>
</div>
</div>
<p>Then we use one of the logical operations–-<code>Lt</code>, <code>Le</code>, <code>Eq</code>, <code>Ge</code>, or <code>Gt</code>–-to construct a predicate to plot. This one describes <span class="math">$x^2 + y^2 = 2^2$</span>:</p>
<pre class='hljl'>
<span class='hljl-n'>r</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-n'>f</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>2</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-p'>)</span>
</pre>
<pre class="output">
ImplicitEquations.Pred(Main.WeaveSandBox5030181185.f, ==, 4)
</pre>
<div class="alert alert-info" role="alert">
<div class="markdown"><p>There are unicode infix operators for each of these which make it easier to read at the cost of being harder to type in. This predicate would be written as <code>f ⩵ 2^2</code> where <code>⩵</code> is <strong>not</strong> two equals signs, but rather typed with <code>\Equal[tab]</code>.)</p>
</div>
</div>
<p>These "predicate" objects can be passed to <code>plot</code> for visualization:</p>
<pre class='hljl'>
<span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-n'>r</span><span class='hljl-p'>)</span>
</pre>
<img src="data:image/png;base64,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" />
<p>Of course, more complicated equations are possible and the steps are similar–-only the function definition is more involved. For example, the <a href="http://www-groups.dcs.st-and.ac.uk/~history/Curves/Devils.html">Devils curve</a> has the form</p>
<p class="math">\[
~
y^4 - x^4 + ay^2 + bx^2 = 0
~
\]</p>
<p>Here we draw the curve for a particular choice of <span class="math">$a$</span> and <span class="math">$b$</span>. For illustration purposes, a narrower viewing window than the default of <span class="math">$[-5,5] \times [-5,5]$</span> is specified below using <code>xlims</code> and <code>ylims</code>:</p>
<pre class='hljl'>
<span class='hljl-n'>a</span><span class='hljl-p'>,</span><span class='hljl-n'>b</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-ni'>1</span><span class='hljl-p'>,</span><span class='hljl-ni'>2</span><span class='hljl-t'>
</span><span class='hljl-nf'>f</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>4</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>4</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-oB'>*</span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-oB'>*</span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-n'>f</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>0</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>xlims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-ni'>3</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>ylims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-ni'>3</span><span class='hljl-p'>))</span>
</pre>
<img src="data:image/png;base64,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" />
<div class="alert alert-info" role="alert">
<div class="markdown"><p>The rendered plots look "blocky" due to the algorithm used to plot the equations. As there is no rule defining $(x,y)$ pairs to plot, a search by regions is done. A region is initially labeled undetermined. If it can be shown that for any value in the region the equation is true (equations can also be inequalities), the region is colored black. If it can be shown it will never be true, the region is dropped. If a black-and-white answer is not clear, the region is subdivided and each subregion is similarly tested. This continues until the remaining undecided regions are smaller than some threshold. Such regions comprise a boundary, and here are also colored black. Only regions are plotted–-not $(x,y)$ pairs–so the results are blocky. Pass larger values of $N=M$ (with defaults of $8$) to <code>plot</code> to lower the threshold at the cost of longer computation times.</p>
</div>
</div>
<h3>The IntervalConstraintProgramming package</h3>
<p>The <code>IntervalConstraintProgramming</code> package also can be used to graph implicit equations. For certain problem descriptions it is significantly faster and makes better graphs. The usage is slightly more involved:</p>
<p>We specify a problem using the <code>@constraint</code> macro. Using a macro allows expressions to involve free symbols, so the problem is specified in an equation-like manner:</p>
<pre class='hljl'>
<span class='hljl-k'>using</span><span class='hljl-t'> </span><span class='hljl-n'>IntervalArithmetic</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>IntervalConstraintProgramming</span><span class='hljl-t'>
</span><span class='hljl-n'>S</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nd'>@constraint</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'><=</span><span class='hljl-t'> </span><span class='hljl-ni'>2</span>
</pre>
<pre class="output">
Separator:
- variables: x, y
- expression: x ^ 2 + y ^ 2 ∈ [-∞, 2]
</pre>
<p>The right hand side must be a number.</p>
<p>The area to plot over must be specified as an <code>IntervalBox</code>, basically a pair of intervals. The interval <span class="math">$[a,b]$</span> is expressed through <code>a..b</code>.</p>
<pre class='hljl'>
<span class='hljl-n'>X</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>IntervalBox</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-nfB'>3..3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-nfB'>3..3</span><span class='hljl-p'>)</span>
</pre>
<pre class="output">
[-3, 3] × [-3, 3]
</pre>
<pre class='hljl'>
<span class='hljl-n'>r</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>pave</span><span class='hljl-p'>(</span><span class='hljl-n'>S</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>X</span><span class='hljl-p'>)</span>
</pre>
<pre class="output">
Paving:
- tolerance ϵ = 0.01
- inner approx. of length 1152
- boundary approx. of length 1156
</pre>
<p>We can plot either the boundary, the interior, or both.</p>
<pre class='hljl'>
<span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-n'>r</span><span class='hljl-oB'>.</span><span class='hljl-n'>inner</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-cs'># plot interior; use r.boundary for boundary</span>
</pre>
<img src="data:image/png;base64,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" />
<h2>Tangent lines, implicit differentiation</h2>
<p>The graph <span class="math">$x^2 + y^2 = 1$</span> has well-defined tangent lines at all points except <span class="math">$(-1,0)$</span> and <span class="math">$(0, 1)$</span> and even at these two points, we could call the vertical lines <span class="math">$x=-1$</span> and <span class="math">$x=1$</span> tangent lines. However, to recover the slope would need us to express <span class="math">$y$</span> as a function of <span class="math">$x$</span> and then differentiate that function. Of course, in this example, we would need two functions: <span class="math">$f(x) = \sqrt{1-x^2}$</span> and <span class="math">$g(x) = - \sqrt{1-x^2}$</span> to do this completely.</p>
<p>In general though, we may not be able to solve for <span class="math">$y$</span> in terms of <span class="math">$x$</span>. What then?</p>
<p>The idea is to <em>assume</em> that <span class="math">$y$</span> is representable by some function of <span class="math">$x$</span>. This makes sense, moving on the curve from <span class="math">$(x,y)$</span> to some nearby point, means changing <span class="math">$x$</span> will cause some change in <span class="math">$y$</span>. This assumption is only made <em>locally</em>–-basically meaning a complicated graph is reduced to just a small, well-behaved, section of its graph.</p>
<p>With this assumption, asking what <span class="math">$dy/dx$</span> is has an obvious meaning – what is the slope of the tangent line to the graph at <span class="math">$(x,y)$</span>.</p>
<p>The method of implicit differentiation allows this question to be investigated. It begins by differentiating both sides of the equation assuming <span class="math">$y$</span> is a function of <span class="math">$x$</span> to derive a new equation involving <span class="math">$dy/dx$</span>.</p>
<p>For example, starting with <span class="math">$x^2 + y^2 = 1$</span>, differentiating both sides in <span class="math">$x$</span> gives:</p>
<p class="math">\[
~
2x + 2y\cdot \frac{dy}{dx} = 0.
~
\]</p>
<p>The chain rule was used to find <span class="math">$d/dx(y^2) = 2y \cdot dy/dx$</span>. From this we can solve for <span class="math">$dy/dx$</span> (the resulting equations are linear in <span class="math">$dy/dx$</span>, so can always be solved explicitly):</p>
<p class="math">\[
~
dy/dx = -x/y
~
\]</p>
<p>This says the slope of the tangent line depends on the point <span class="math">$(x,y)$</span> through the formula <span class="math">$-x/y$</span>.</p>
<p>As a check, we compare to what we would have found had we solved for <span class="math">$y= \sqrt{1 - x^2}$</span> (for <span class="math">$(x,y)$</span> with <span class="math">$y \geq 0$</span>). We would have found: <span class="math">$dy/dx = 1/2 \cdot 1/\sqrt{1 - x^2} \cdot -2x$</span>. Which can be simplified to <span class="math">$-x/y$</span>. This should show that the method above–-assuming <span class="math">$y$</span> is a function of <span class="math">$x$</span> and differentiating–-is not only more general, but can even be easier.</p>
<p>The name–-<em>implicit differentiation</em>–-comes from the assumption that <span class="math">$y$</span> is implicitly defined in terms of <span class="math">$x$</span>. According to the <a href="http://en.wikipedia.org/wiki/Implicit_function_theorem">Implicit Function Theorem</a> the above method will work provided the curve has sufficient smoothness near the point <span class="math">$(x,y)$</span>.</p>
<h5>Examples</h5>
<p>Consider the <a href="http://www-history.mcs.st-and.ac.uk/Curves/Serpentine.html">serpentine</a> equation</p>
<p class="math">\[
~
x^2y + a\cdot b \cdot y - a^2 \cdot x = 0, \quad a\cdot b > 0.
~
\]</p>
<p>For <span class="math">$a = 2, b=1$</span> we have the graph:</p>
<pre class='hljl'>
<span class='hljl-n'>a</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-ni'>2</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>1</span><span class='hljl-t'>
</span><span class='hljl-nf'>f</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-oB'>*</span><span class='hljl-n'>y</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-t'> </span><span class='hljl-oB'>*</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-t'> </span><span class='hljl-oB'>*</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>*</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-n'>f</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>0</span><span class='hljl-p'>))</span>
</pre>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAGACAIAAADK+EpIAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3dd1wUd/4G8M9sg11AlLaoGKNRNIqxV9RoTiyxgCZiQS4SeyyJhtiwEGPXXDTWxKgx0fMgxhKNkcNgFNSoEcUKqCiCNJfedtkyvz/2d55nwbbwndl93n/4Wodl5mHY5dlp3+F4nicAAACxkbAOAAAA8DJQYAAAIEooMAAAECUUGAAAiBIKDAAARAkFBgAAooQCAwAAUbJkgRmNxpCQkEcmTps2ze8/1qxZY8HFAQCALZNZakZ79+6NiYlJT09/eCLP8+np6REREUqlkoikUqmlFgcAADbOYltgDRs2HDVq1CMTc3NzjUZjWFhYYGDgsmXLSktLLbU4AACwcRbbAmvVqtXjE/Py8ho3bjxx4kQPD49NmzZt3LgxLCzs8aeVlpYuX748Nzf38S+tWrVKoVBYKmQVMRqNHMdJJDigWBmspedhMBikUinHcayDCBrW0vPQ6/VyuZx1ipcnk8me+Su2WIE9kbe39+rVq82Px44dO3bs2Cc+LT4+fs+ePePGjXv8SwaDQfgv06KiIplMplKpWAcRtIKCAnt7e3t7e9ZBBC0vL8/R0VH4H9rYun//vouLCw5JVC47O9vDw0P4fz+f5nk+o1RtgSUnJ+v1+ubNmxORXC6v5OOAm5vbjBkzqjRM1TF/0kGBVU6n0ymVShRY5crLy1UqFQqsckqlUqVSocAqZ15L4i2w51FV+3MSEhKISKvVhoeHp6am6vX6nTt3+vr6VtHiAADA1lRVgYWGhhJRixYtgoKC5s+fP3z48OLi4qftQgQAAHhRFt6FGB0d/fADjuMCAgICAgIsuxQAAACcEgYAAKKEAgMAAFFCgQEAgCihwAAAQJRQYABgASkpKeYrTyUSyYN/n8j8pd69e7OODKKHAgOAl1enTh2pVCqVSps2bfpg6ITHL541V9fDXzp69Kj5G2Uy2fr166s5NliHqh2JAwCs0rFjx4YMGaLVanU6Hc/zRGQymVasWNGkSRMiMk8xl5Z5DEzzf3meNz+eOnVqWlqa+WlENH369NDQUIlE0r179yNHjjD7qUBsUGAA8GKmTp26c+fOgoIC83+7devWq1cvhUIxcuRILy+v55lDx44df/zxx/LyciL6/PPPDQaDwWAgoujoaA8PD5lMNm7cuM8//7zqfgSwDigwAHhe33777ebNm69fv67VaoloyJAhKpVqypQpHTt2fKH5eHp6fvbZZ+bHffr0+frrryUSydGjR7Oysu7fv09EK1eu3LNnj0qlmj9//qBBgyz+g4B1QIEBwLOVlJQsWbLk22+/zcvLI6KOHTvWrl1727Ztzs7Orzjnjh077tq1i4ju3bs3adKkwsLCs2fParXaa9euEdGkSZM2b978zjvvmEenA3gYCgwAnkGv13/77bfLly8norp167q4uOzevbtBgwaWXUrdunV/+eUXItq3b99nn31WUVGRnp6ekZGRkZFx5MiR+/fv16lTZ+TIke7u7pZdLogXCgwAKlNYWHj06NFPP/2UiGrUqBEZGdmlS5cqXeLgwYMHDx5MRB9//PHWrVt1Op3BYFi5ciURpaWlBQYG1qlTp0oDgFjgNHoAqMzChQvff/99juPs7e137dpV1e31sLVr15aUlMTFxSkUCplMRkRffvllx44dT548WW0ZQMhQYADwVIsXL167di0RqVSq8vLyAQMGVH+Gjh076nS63NxcFxcXiURCRMOHD5fJZH/729+qPwwICgoMAJ5s27Zt4eHhRCSXywsLC9mGqVGjhkajSUpKUigU5ovJjh07JpVKxXsnd3h1KDAAeIKDBw9+9NFHRqPx73//+/nz56VSKetExHFco0aNkpOT9+3b16BBA57nTSbT2rVr7e3td+zYwTodMIACA4BHnT59esKECTqdjohmzZrVokUL1on+q379+p07dz516tTmzZuVSqXJZNLpdBMmTKhVq9aQIUNYp4NqhQIDgP+RmJg4evTozMzMZs2aLVy40Dw6lNC4u7tPmDAhPj5+ypQpRKTT6QoKCg4cONC0aVMM4WE7UGAA8D/WrVuXnJxMRJMnTw4PDxfCzsOnadq06bp162JiYvr06aNWq00mU1JS0rJly/z8/CIjI1mngyqHAgOA/zp27Jh5XIzWrVsPHz6cdZzn0rNnzyNHjsTFxbVp08be3l6n0x09enTy5MnTp0+Pj49nnQ6qEAoMAP5fSkpKUFBQYWHha6+9tn//fhcXF9aJXkCjRo3Onz+/a9cutVotkUg0Gs2aNWs+/PDDf/3rX+bxFcH6oMAAgIiI5/n33nsvMzNTKpX++uuvr732GutEL2PIkCFZWVmzZs2y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" />
<p>We can see that at each point in the viewing window the tangent line exists due to the smoothness of the curve. Moreover, at a point <span class="math">$(x,y)$</span> the tangent will have slope <span class="math">$dy/dx$</span> satisfying:</p>
<p class="math">\[
~
2xy + x^2 \frac{dy}{dx} + a\cdot b \frac{dy}{dx} - a^2 = 0.
~
\]</p>
<p>Solving, yields:</p>
<p class="math">\[
~
\frac{dy}{dx} = \frac{a^2 - 2xy}{ab + x^2}.
~
\]</p>
<p>In particular, the point <span class="math">$(0,0)$</span> is always on this graph, and the tangent line will have positive slope <span class="math">$a^2/(ab) = a/b$</span>.</p>
<hr />
<p>The <a href="http://www-history.mcs.st-and.ac.uk/Curves/Eight.html">eight</a> curve has representation</p>
<p class="math">\[
~
x^4 = a^2(x^2-y^2), \quad a \neq 0.
~
\]</p>
<p>A graph for <span class="math">$a=3$</span> shows why it has the name it does:</p>
<pre class='hljl'>
<span class='hljl-n'>a</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-t'>
</span><span class='hljl-nf'>f</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>4</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-oB'>*</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-n'>f</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>0</span><span class='hljl-p'>))</span>
</pre>
<img src="data:image/png;base64,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" />
<p>The tangent line at <span class="math">$(x,y)$</span> will have slope, <span class="math">$dy/dx$</span> satisfying:</p>
<p class="math">\[
~
4x^3 = a^2 \cdot (2x - 2y \frac{dy}{dx}).
~
\]</p>
<p>Solving gives:</p>
<p class="math">\[
~
\frac{dy}{dx} = -\frac{4x^3 - a^2 \cdot 2x}{a^2 \cdot 2y}.
~
\]</p>
<p>The point <span class="math">$(3,0)$</span> can be seen to be a solution to the equation and should have a vertical tangent line. This also is reflected in the formula, as the denominator is <span class="math">$a^2\cdot 2 y$</span>, which is <span class="math">$0$</span> at this point, whereas the numerator is not.</p>
<h5>Example</h5>
<p>The quotient rule can be hard to remember, unlike the product rule. No reason to despair, the product rule plus implicit differentiation can be used to recover the quotient rule. Suppose <span class="math">$y=f(x)/g(x)$</span>, then we could also write <span class="math">$y g(x) = f(x)$</span>. Differentiating implicitly gives:</p>
<p class="math">\[
~
\frac{dy}{dx} g(x) + y g'(x) = f'(x).
~
\]</p>
<p>Solving for <span class="math">$dy/dx$</span> gives:</p>
<p class="math">\[
~
\frac{dy}{dx} = \frac{f'(x) - y g'(x)}{g(x)}.
~
\]</p>
<p>Not quite what we expect, perhaps, but substituting in <span class="math">$f(x)/g(x)$</span> for <span class="math">$y$</span> gives us the usual formula:</p>
<p class="math">\[
~
\frac{dy}{dx} = \frac{f'(x) - \frac{f(x)}{g(x)} g'(x)}{g(x)} = \frac{f'(x) g(x) - f(x) g'(x)}{g(x)^2}.
~
\]</p>
<div class="alert alert-info" role="alert">
<div class="markdown"><p>In this example we mix notations using $g'(x)$ to represent a derivative of $g$ with respect to $x$ and $dy/dx$ to represent the derivative of $y$ with respect to $x$. This is done to emphasize the value that we are solving for. It is just a convention though, we could just as well have used the "prime" notation for each.</p>
</div>
</div>
<h5>Example: Graphing a tangent line</h5>
<p>Let's see how to add a graph of a tangent line to the graph of an equation. Tangent lines are tangent at a point, so we need a point to discuss.</p>
<p>Returning to the equation for a circle, <span class="math">$x^2 + y^2 = 1$</span>, let's look at <span class="math">$(\sqrt{2}/2, - \sqrt{2}/2)$</span>. The derivative is $ -y/x<span class="math">$, so the slope at this point is $1$</span>. The line itself has equation <span class="math">$y = b + m \cdot (x-a)$</span>. The following represents this in <code>Julia</code>:</p>
<pre class='hljl'>
<span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'>
</span><span class='hljl-n'>a</span><span class='hljl-p'>,</span><span class='hljl-n'>b</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>sqrt</span><span class='hljl-p'>(</span><span class='hljl-ni'>2</span><span class='hljl-p'>)</span><span class='hljl-oB'>/</span><span class='hljl-ni'>2</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-nf'>sqrt</span><span class='hljl-p'>(</span><span class='hljl-ni'>2</span><span class='hljl-p'>)</span><span class='hljl-oB'>/</span><span class='hljl-ni'>2</span><span class='hljl-t'>
</span><span class='hljl-n'>m</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-n'>a</span><span class='hljl-oB'>/</span><span class='hljl-n'>b</span><span class='hljl-t'>
</span><span class='hljl-nf'>tl</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>m</span><span class='hljl-t'> </span><span class='hljl-oB'>*</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-oB'>-</span><span class='hljl-n'>a</span><span class='hljl-p'>)</span>
</pre>
<pre class="output">
tl (generic function with 1 method)
</pre>
<p>Now we want to plot <em>both</em> <span class="math">$F ⩵ 1$</span> and the tangent line. This can be done with two layers:</p>
<pre class='hljl'>
<span class='hljl-nf'>f</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-n'>f</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>1</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>xlims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>2</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>2</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>ylims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>2</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>2</span><span class='hljl-p'>))</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot!</span><span class='hljl-p'>(</span><span class='hljl-n'>tl</span><span class='hljl-p'>)</span>
</pre>
<img src="data:image/png;base64,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vXr1UqvV7u7uly5d6tq1K+1EwEt+fn55eXmLFy8mhOzatcvd3f3ChQu0Q4EZQYGBMZWVlX3wwQdLlixhGObjjz/OycnBYA2opi+++CIvL69evXoqlapbt26XLl2inQjMBQoMjCY3N9fDw2Pv3r0eHh7379+PjY21srKiHQpqAzc3t6ysrA8//JDjuC5dugwZMkSn09EOBfShwMA49u/f36hRI7Va7eXl9euvvzZq1Ih2Iqhtvv/++/j4eIZhDh061LJlS1wSAxQYGEFcXNzIkSNLS0uHDBmSk5OD2XihhoSGhrIsa2Vldf/+fVdX1/z8fNqJgCYUGFRLYWFhu3btpk6dam1tvXDhwoMHD9JOBLWfVqv19fUtLS319fU9duwY7ThADQoMqi4/P79nz543btwQCAQJCQlfffUV7URgKZ4+fdqxY0eNRjN48GD82mSxUGBQRXK5PDg4+NatWzY2NtnZ2SEhIbQTgWVJS0sLCQlhWXb48OFRUVG04wAFKDCoitzc3P79+6elpXXs2DErK8vb25t2IrBEhw8f3rRpEyEkMjLScLsYWBQUGLyx58+f169f//r164GBgSdPnpRKpbQTgeWaPHny9u3bCSGLFi165513aMcBk0KBwZvJzs729/evqKh46623jh075uHhQTsRWLpx48ZdunRJIBD8/PPPERERtOOA6aDA4A08efKkQYMG5eXlwcHBFy5ccHV1pZ0IgBBCOnfubLhFLCYmZvLkybTjwBvQFcq0zzOr9rkoMKisrKyst956S6fTBQYG7t27l2EY2okA/mv48OGJiYkMw2zevPmjjz6iHQcqgeNKzh2WfxuhzX5YtRWgwKCyevbsmZubW7du3eTkZEdHR9pxAP7q/fffP378OCFk165dy5Ytox0HXkWX/zxvw1z1tXOe01fZde5btZWgwKBS/Pz8njx54u/vn56ebm9vTzsOwMsFBwd/8cUXhJDPP/88MTGRdhx4GVavStkv//ZTm+YBnhGrrKR+VV4T5lqF1+A4rn///tnZ2fb29pcuXcKxF5i5xYsX63S6ZcuWjRgxIisry8+v6j8fwei0zzMVe6MFDo7SORuELp7VXBuOwOBV9Hr9jBkzkpOT7ezscnNz3dzcaCcCeL2lS5d26tSJZdn69es/efKEdhwghBBOW6E89X3exvn2gQPcpyytfnsRFBi82rJl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" />
<h5>Example</h5>
<p>When we assume <span class="math">$y$</span> is a function of <span class="math">$x$</span>, it may not be feasible to actually find the function algebraically. However, in many cases one can be found numerically. Suppose <span class="math">$F(x,y) = c$</span> describes the equation. Then for a fixed <span class="math">$x$</span>, <span class="math">$y(x)$</span> solves <span class="math">$F(x,y(x))) - c = 0$</span>, so <span class="math">$y(x)$</span> is a zero of a known function. As long as we can piece together which <span class="math">$y$</span> goes with which, we can find the function.</p>
<p>For example, <a href="http://www-history.mcs.st-and.ac.uk/Curves/Foliumd.html">folium</a> of Descartes has the equation</p>
<p class="math">\[
~
x^3 + y^3 = 3axy.
~
\]</p>
<p>Setting <span class="math">$a=1$</span> we have the graph:</p>
<pre class='hljl'>
<span class='hljl-n'>a</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-ni'>1</span><span class='hljl-t'>
</span><span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>3</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>3</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-oB'>*</span><span class='hljl-n'>a</span><span class='hljl-oB'>*</span><span class='hljl-n'>x</span><span class='hljl-oB'>*</span><span class='hljl-n'>y</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-n'>F</span><span class='hljl-p'>,</span><span class='hljl-ni'>0</span><span class='hljl-p'>))</span>
</pre>
<img src="data:image/png;base64,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" />
<p>We can solve for the lower curve, <span class="math">$y$</span>, as a function of <span class="math">$x$</span>, as follows:</p>
<pre class='hljl'>
<span class='hljl-nf'>y1</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>minimum</span><span class='hljl-p'>(</span><span class='hljl-nf'>find_zeros</span><span class='hljl-p'>(</span><span class='hljl-n'>y</span><span class='hljl-oB'>-></span><span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-ni'>10</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>10</span><span class='hljl-p'>))</span><span class='hljl-t'> </span><span class='hljl-cs'># find_zeros from `Roots`</span>
</pre>
<pre class="output">
y1 (generic function with 1 method)
</pre>
<p>This gives the lower part of the curve, which we can plot with:</p>
<pre class='hljl'>
<span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-n'>y1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-ni'>5</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>5</span><span class='hljl-p'>)</span>
</pre>
<img src="data:image/png;base64,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" />
<p>Though, in this case, the cubic equation would admit a closed-form solution, the approach illustrated applies more generally.</p>
<h2>Using SymPy for computation</h2>
<p><code>SymPy</code> can be used to perform implicit differentiation. The three steps are similar: we assume <span class="math">$y$</span> is a function of <span class="math">$x$</span>, <em>locally</em>; differentiate both sides; solve the result for <span class="math">$dy/dx$</span>.</p>
<p>Let's do so for the <a href="http://www-history.mcs.st-and.ac.uk/Curves/Trident.html">Trident of Newton</a>, which is represented in Cartesian form as follows:</p>
<p class="math">\[
~
xy = cx^3 + dx^2 + ex + h.
~
\]</p>
<p>To approach this task in <code>SymPy</code>, we begin by defining our symbolic expression. For now, we keep the parameters as symbolic values:</p>
<pre class='hljl'>
<span class='hljl-nd'>@vars</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-t'> </span><span class='hljl-n'>c</span><span class='hljl-t'> </span><span class='hljl-n'>d</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-t'>
</span><span class='hljl-n'>ex</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>*</span><span class='hljl-n'>y</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>a</span><span class='hljl-oB'>*</span><span class='hljl-n'>c</span><span class='hljl-oB'>^</span><span class='hljl-ni'>3</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-oB'>*</span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>c</span><span class='hljl-oB'>*</span><span class='hljl-n'>x</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>d</span><span class='hljl-p'>)</span>
</pre>
<div class="well well-sm">\begin{equation*}- a c^{3} - b x^{2} - c x - d + x y\end{equation*}</div>
<p>To express that <code>y</code> is a locally a function of <code>x</code>, we use a "symbolic function" object:</p>
<pre class='hljl'>
<span class='hljl-n'>u</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>SymFunction</span><span class='hljl-p'>(</span><span class='hljl-s'>"u"</span><span class='hljl-p'>)</span>
</pre>
<div class="well well-sm">\begin{align*}u\end{align*}</div>
<p>Defining a symbolic function is done with the command <code>SymFunction</code>. (This command's name is slightly modified from that when using SymPy under <code>Python</code>.) The object <code>u</code> is the symbolic function, and <code>u(x)</code> a symbolic expression involving a symbolic function. This is what we will use to refer to <code>y</code>.</p>
<p>Assume <span class="math">$y$</span> is a function of <span class="math">$x$</span>, called <code>u(x)</code>, this substitution is just a renaming:</p>
<pre class='hljl'>
<span class='hljl-n'>ex1</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>ex</span><span class='hljl-p'>(</span><span class='hljl-n'>y</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>))</span>
</pre>
<div class="well well-sm">\begin{equation*}- a c^{3} - b x^{2} - c x - d + x u{\left (x \right )}\end{equation*}</div>
<p>At this point, we differentiate both sides in <code>x</code>:</p>
<pre class='hljl'>
<span class='hljl-n'>ex2</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-n'>ex1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>)</span>
</pre>
<div class="well well-sm">\begin{equation*}- 2 b x - c + x \frac{d}{d x} u{\left (x \right )} + u{\left (x \right )}\end{equation*}</div>
<p>The next step is solve for <span class="math">$dy/dx$</span>–-the lone answer to the linear equation–-which is done as follows:</p>
<pre class='hljl'>
<span class='hljl-n'>dydx</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>ex3</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>solve</span><span class='hljl-p'>(</span><span class='hljl-n'>ex2</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>dydx</span><span class='hljl-p'>)[</span><span class='hljl-ni'>1</span><span class='hljl-p'>]</span><span class='hljl-t'> </span><span class='hljl-cs'># pull out lone answer with [1] indexing</span>
</pre>
<div class="well well-sm">\begin{equation*}\frac{2 b x + c - u{\left (x \right )}}{x}\end{equation*}</div>
<p>As this represents an answer in terms of <code>u(x)</code>, we replace that term with the original variable:</p>
<pre class='hljl'>
<span class='hljl-n'>dydx</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>ex3</span><span class='hljl-p'>(</span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-p'>)</span>
</pre>
<div class="well well-sm">\begin{equation*}\frac{2 b x + c - y}{x}\end{equation*}</div>
<p>If <code>x</code> and <code>y</code> are the variable names, this function will combine the steps above:</p>
<pre class='hljl'>
<span class='hljl-k'>function</span><span class='hljl-t'> </span><span class='hljl-nf'>dy_dx</span><span class='hljl-p'>(</span><span class='hljl-n'>eqn</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>u</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>SymFunction</span><span class='hljl-p'>(</span><span class='hljl-s'>"u"</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>eqn1</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>eqn</span><span class='hljl-p'>(</span><span class='hljl-n'>y</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>))</span><span class='hljl-t'>
</span><span class='hljl-n'>eqn2</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>solve</span><span class='hljl-p'>(</span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-n'>eqn1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>))[</span><span class='hljl-ni'>1</span><span class='hljl-p'>]</span><span class='hljl-t'>
</span><span class='hljl-nf'>eqn2</span><span class='hljl-p'>(</span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-k'>end</span>
</pre>
<pre class="output">
dy_dx (generic function with 1 method)
</pre>
<p>Let <span class="math">$a = b = c = d = 1$</span>, then <span class="math">$(1,4)$</span> is a point on the curve. We can draw a tangent line to this point with these commands:</p>
<pre class='hljl'>
<span class='hljl-n'>H</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>ex</span><span class='hljl-p'>(</span><span class='hljl-n'>a</span><span class='hljl-oB'>=></span><span class='hljl-ni'>1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-oB'>=></span><span class='hljl-ni'>1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>c</span><span class='hljl-oB'>=></span><span class='hljl-ni'>1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>d</span><span class='hljl-oB'>=></span><span class='hljl-ni'>1</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>x0</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>y0</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-ni'>1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>4</span><span class='hljl-t'>
</span><span class='hljl-n'>m</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>dydx</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-oB'>=></span><span class='hljl-ni'>1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>=></span><span class='hljl-ni'>4</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-oB'>=></span><span class='hljl-ni'>1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-oB'>=></span><span class='hljl-ni'>1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>c</span><span class='hljl-oB'>=></span><span class='hljl-ni'>1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>d</span><span class='hljl-oB'>=></span><span class='hljl-ni'>1</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-nf'>lambdify</span><span class='hljl-p'>(</span><span class='hljl-n'>H</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-ni'>0</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>xlims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>5</span><span class='hljl-p'>,</span><span class='hljl-ni'>5</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>ylims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>5</span><span class='hljl-p'>,</span><span class='hljl-ni'>5</span><span class='hljl-p'>))</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot!</span><span class='hljl-p'>(</span><span class='hljl-n'>y0</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>m</span><span class='hljl-t'> </span><span class='hljl-oB'>*</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-oB'>-</span><span class='hljl-n'>x0</span><span class='hljl-p'>))</span>
</pre>
<img src="data:image/png;base64,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" />
<p>Basically all the same steps as if done "by hand." Some effort could have been saved in plotting, had values for the parameters been substituted initially, but not doing so shows their dependence in the derivative.</p>
<div class="alert alert-success" role="alert">
<div class="markdown"><p>The use of <code>lambdify</code> is needed to turn the symbolic expression, <code>H</code>, into a function, as <code>ImplicitEquations</code> expects functions in its predicates.</p>
</div>
</div>
<div class="alert alert-info" role="alert">
<div class="markdown"><p>While <code>SymPy</code> itself has the <code>plot_implicit</code> function for plotting implicit equations, this works only with <code>PyPlot</code>, not <code>Plots</code>, so we use the <code>ImplicitEquations</code> package in these examples.</p>
</div>
</div>
<h2>Higher order derivatives</h2>
<p>Implicit differentiation can be used to find <span class="math">$d^2y/dx^2$</span> or other higher-order derivatives. At each stage, the same technique is applied. The only "trick" is that some simplifications can be made.</p>
<p>For example, consider <span class="math">$x^3 - y^3=3$</span>. To find <span class="math">$d^2y/dx^2$</span>, we first find <span class="math">$dy/dx$</span>:</p>
<p class="math">\[
~
3x^2 - (3y^2 \frac{dy}{dx}) = 0.
~
\]</p>
<p>We could solve for <span class="math">$dy/dx$</span> at this point–-it always appears as a linear factor–-to get:</p>
<p class="math">\[
~
\frac{dy}{dx} = \frac{3x^2}{3y^2} = \frac{x^2}{y^2}.
~
\]</p>
<p>However, we differentiate the first equation, as we generally try to avoid the quotient rule</p>
<p class="math">\[
~
6x - (6y \frac{dy}{dx} \cdot \frac{dy}{dx} + 3y^2 \frac{d^2y}{dx^2}) = 0.
~
\]</p>
<p>Again, if must be that <span class="math">$d^2y/dx^2$</span> appears as a linear factor, so we can solve for it:</p>
<p class="math">\[
~
\frac{d^2y}{dx^2} = \frac{6x - 6y (\frac{dy}{dx})^2}{3y^2}.
~
\]</p>
<p>One last substitution for <span class="math">$dy/dx$</span> gives:</p>
<p class="math">\[
~
\frac{d^2y}{dx^2} = \frac{-6x + 6y (\frac{x^2}{y^2})^2}{3y^2} = -2\frac{x}{y^2} + 2\frac{x^4}{y^5} = 2\frac{x}{y^2}(1 - \frac{x^3}{y^3}) = 2\frac{x}{y^5}(y^3 - x^3) = 2 \frac{x}{y^5}(-3).
~
\]</p>
<p>It isn't so pretty, but that's all it takes.</p>
<p>To visualize, we plot implicitly and notice that:</p>
<ul>
<li><p>as we change quadrants from the third to the fourth to the first the concavity changes from down to up to down, as the sign of the second derivative changes from negative to positive to negative;</p>
</li>
<li><p>and that at these inflection points, the "tangent" line is vertical when <span class="math">$y=0$</span> and flat when <span class="math">$x=0$</span>.</p>
</li>
</ul>
<pre class='hljl'>
<span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>3</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>3</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-n'>F</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>xlims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>ylims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>))</span>
</pre>
<img src="data:image/png;base64,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W7du+DYBAADeg7ebON6PrwfFTF1KSkpcXFxJSYmHh8eSJUtatWpFOxE1LMuGh4fHxsbSDkKHQqFYt25dRkZG586dIyIi7O3taSeixsJ/El7BwUGvbmXBNT6tVhsUFHTz5k2WZS9duvS///u/BvhQI5Sfnz969OjMzEyVSnXo0KEFCxbQTkTN0aNH58+fP2TIENpBqImOjt66datard66dWtMTAztONTgJ0EPBwe9upaFIe7fffWgmEqles+DYmavoKDA39/f29tbLBYPGzYsJyeHdiJqPD09p0yZQjsFTampqUFBQdbW1kFBQSkpKbTjUIOfBD0cHPTqWhaGmAvR2tq6d+/eSqUyKCiIEGKxU1V27969e/fuhBCWZePi4gYNGkQ7ETU+Pj60I1BWWlrq6upKCHF1dZXJZLTjUIOfBD0cHPTqWhaNNQILCwsbOnTo0KFDXy2xsbGJj48PCwuLiopqpA81Qm/uh/T09Pnz50ul0vnz51MMZnhv7gpLxnGc/mFVjuN0Oh3tOGAULPbg8Jral0VjjcD+eEn21YNiNjY2w4cPP3DgQCN9qBH6437gOC46OjozM3P58uUWeIUWV+n/yMnJqaioqFWrViUlJc7OzrTjAGUWfnB4pa5lYYhrYHhQTO/u3btpaWlr1qxxcnJSKpVKpZJ2IqCmT58+Z86c4TjuzJkz/fr1ox0HKMPBQa+uZWGga2CrVq2Kiop69aCYAT7UCN25cyc3N3fcuHGvlvxxIi6wKKGhod99992kSZPatWv35Zdf0o4DlOHgoFfXsjDQc2AAAAD8wjTYAABgklBgAABgklBgAABgklBgAABgklBgAABgklBgAABgklBgAABgklBgAABgklBgAABgklBgAABgklBgAABgklBgAABgklBgAABgklBgAABgkv4/OrJxTmJ9TTgAAAAASUVORK5CYII=" />
<p>The same problem can be done symbolically. The steps are similar, though the last step (replacing <span class="math">$x^3 - y^3$</span> with <span class="math">$3$</span>) isn't done without explicitly asking.</p>
<pre class='hljl'>
<span class='hljl-nd'>@vars</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-t'>
</span><span class='hljl-n'>u</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>SymFunction</span><span class='hljl-p'>(</span><span class='hljl-s'>"u"</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>eqn</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-t'>
</span><span class='hljl-n'>eqn1</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>eqn</span><span class='hljl-p'>(</span><span class='hljl-n'>y</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>))</span><span class='hljl-t'>
</span><span class='hljl-n'>dydx</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>solve</span><span class='hljl-p'>(</span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-n'>eqn1</span><span class='hljl-p'>,</span><span class='hljl-n'>x</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>))[</span><span class='hljl-ni'>1</span><span class='hljl-p'>]</span><span class='hljl-t'> </span><span class='hljl-cs'># 1 solution</span><span class='hljl-t'>
</span><span class='hljl-n'>d2ydx2</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>solve</span><span class='hljl-p'>(</span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-n'>eqn1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>2</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>),</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>2</span><span class='hljl-p'>))[</span><span class='hljl-ni'>1</span><span class='hljl-p'>]</span><span class='hljl-t'> </span><span class='hljl-cs'># 1 solution</span><span class='hljl-t'>
</span><span class='hljl-n'>eqn2</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>d2ydx2</span><span class='hljl-p'>(</span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-n'>dydx</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>simplify</span><span class='hljl-p'>(</span><span class='hljl-n'>eqn2</span><span class='hljl-p'>)</span>
</pre>
<div class="well well-sm">\begin{equation*}\frac{2 x \left(- x^{3} + y^{3}\right)}{y^{5}}\end{equation*}</div>
<h2>Inverse functions</h2>
<p>As <a href="../precalc/inversefunctions.html">mentioned</a>, an <a href="http://en.wikipedia.org/wiki/Inverse_function">inverse</a> function for <span class="math">$f(x)$</span> is a function <span class="math">$g(x)$</span> satisfying: <span class="math">$y = f(x)$</span> if and only if <span class="math">$g(y) = x$</span> for all <span class="math">$x$</span> in the domain of <span class="math">$f$</span> and <span class="math">$y$</span> in the range of <span class="math">$f$</span>.</p>
<p>In short, both <span class="math">$f \circ g$</span> and <span class="math">$g \circ f$</span> are identify functions on their respective domains. As inverses are unique, their notation, <span class="math">$f^{-1}(x)$</span>, reflects the name of the related function. function.</p>
<p>The chain rule can be used to give the derivative of an inverse function when applied to <span class="math">$f(f^{-1}(x)) = x$</span>. Solving gives, <span class="math">$[f^{-1}(x)]' = 1 / f'(g(x))$</span>.</p>
<p>This is great–-if we can remember the rules. If not, sometimes implicit differentiation can also help.</p>
<p>Consider the inverse function for the tangent, which exists when the domain of the tangent function is restricted to <span class="math">$(-\pi/2, \pi/2)$</span>. The function solves <span class="math">$y = \tan^{-1}(x)$</span> or <span class="math">$\tan(y) = x$</span>. Differentiating this yields:</p>
<p class="math">\[
~
\sec(y)^2 \frac{dy}{dx} = 1.
~
\]</p>
<p>But <span class="math">$\sec(y)^2 = 1 + x^2$</span>, as can be seen by right-triangle trigonometry. This yields the formula <span class="math">$dy/dx = [\tan^{-1}(x)]' = 1 / (1 + x^2)$</span>.</p>
<h5>Example</h5>
<p>For a more complicated example, suppose we have a moving trajectory <span class="math">$(x(t), y(t))$</span>. The angle it makes with the origin satisfies</p>
<p class="math">\[
~
\tan(\theta(t)) = \frac{y(t)}{x(t)}.
~
\]</p>
<p>Suppose <span class="math">$\theta(t)$</span> can be defined in terms of the inverse to some function (<span class="math">$\tan^{-1}(x)$</span>). We can differentiate implicitly to find <span class="math">$\theta'(t)$</span> in terms of derivatives of <span class="math">$y$</span> and <span class="math">$x$</span>:</p>
<p class="math">\[
~
\sec^2(\theta(t)) \cdot \theta'(t) = \frac{y'(t) x(t) - y(t) x'(t)}{x(t))^2}.
~
\]</p>
<p>But <span class="math">$\sec^2(\theta(t)) = (r(t)/x(t))^2 = (x(t)^2 + y(t)^2) / x(t)^2$</span>, so moving to the other side the secant term gives an explicit, albeit complicated, expression for the derivative of <span class="math">$\theta$</span> in terms of the functions <span class="math">$x$</span> and <span class="math">$y$</span>:</p>
<p class="math">\[
~
\theta'(t) = \frac{x^2}{x^2(t) + y^2(t)} \cdot \frac{y'(t) x(t) - y(t) x'(t)}{x(t))^2} = \frac{y'(t) x(t) - y(t) x'(t)}{x^2(t) + y^2(t)}.
~
\]</p>
<p>This could have been made easier, had we leveraged the result of the previous example.</p>
<h2>Example from physics</h2>
<p>Many problems are best done with implicit derivatives. A video showing such a problem along with how to do it analytically is <a href="http://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/unit-2-applications-of-differentiation/part-b-optimization-related-rates-and-newtons-method/session-32-ring-on-a-string/">here</a>.</p>
<p>This video starts with a simple question:</p>
<blockquote>
<p>If you have a rope and heavy ring, where will the ring position itself due to gravity?</p>
</blockquote>
<p>Well, suppose you hold the rope in two places, which we can take to be <span class="math">$(0,0)$</span> and <span class="math">$(a,b)$</span>. Then let <span class="math">$(x,y)$</span> be all the possible positions of the ring that hold the rope taught. Then we have this picture:</p>
<div class="well well-sm">
<figure>
<img src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAAEJGlDQ1BJQ0MgUHJvZmlsZQAAOBGFVd9v21QUPolvUqQWPyBYR4eKxa9VU1u5GxqtxgZJk6XtShal6dgqJOQ6N4mpGwfb6baqT3uBNwb8AUDZAw9IPCENBmJ72fbAtElThyqqSUh76MQPISbtBVXhu3ZiJ1PEXPX6yznfOec7517bRD1fabWaGVWIlquunc8klZOnFpSeTYrSs9RLA9Sr6U4tkcvNEi7BFffO6+EdigjL7ZHu/k72I796i9zRiSJPwG4VHX0Z+AxRzNRrtksUvwf7+Gm3BtzzHPDTNgQCqwKXfZwSeNHHJz1OIT8JjtAq6xWtCLwGPLzYZi+3YV8DGMiT4VVuG7oiZpGzrZJhcs/hL49xtzH/Dy6bdfTsXYNY+5yluWO4D4neK/ZUvok/17X0HPBLsF+vuUlhfwX4j/rSfAJ4H1H0qZJ9dN7nR19frRTeBt4Fe9FwpwtN+2p1MXscGLHR9SXrmMgjONd1ZxKzpBeA71b4tNhj6JGoyFNp4GHgwUp9qplfmnFW5oTdy7NamcwCI49kv6fN5IAHgD+0rbyoBc3SOjczohbyS1drbq6pQdqumllRC/0ymTtej8gpbbuVwpQfyw66dqEZyxZKxtHpJn+tZnpnEdrYBbueF9qQn93S7HQGGHnYP7w6L+YGHNtd1FJitqPAR+hERCNOFi1i1alKO6RQnjKUxL1GNjwlMsiEhcPLYTEiT9ISbN15OY/jx4SMshe9LaJRpTvHr3C/ybFYP1PZAfwfYrPsMBtnE6SwN9ib7AhLwTrBDgUKcm06FSrTfSj187xPdVQWOk5Q8vxAfSiIUc7Z7xr6zY/+hpqwSyv0I0/QMTRb7RMgBxNodTfSPqdraz/sDjzKBrv4zu2+a2t0/HHzjd2Lbcc2sG7GtsL42K+xLfxtUgI7YHqKlqHK8HbCCXgjHT1cAdMlDetv4FnQ2lLasaOl6vmB0CMmwT/IPszSueHQqv6i/qluqF+oF9TfO2qEGTumJH0qfSv9KH0nfS/9TIp0Wboi/SRdlb6RLgU5u++9nyXYe69fYRPdil1o1WufNSdTTsp75BfllPy8/LI8G7AUuV8ek6fkvfDsCfbNDP0dvRh0CrNqTbV7LfEEGDQPJQadBtfGVMWEq3QWWdufk6ZSNsjG2PQjp3ZcnOWWing6noonSInvi0/Ex+IzAreevPhe+CawpgP1/pMTMDo64G0sTCXIM+KdOnFWRfQKdJvQzV1+Bt8OokmrdtY2yhVX2a+qrykJfMq4Ml3VR4cVzTQVz+UoNne4vcKLoyS+gyKO6EHe+75Fdt0Mbe5bRIf/wjvrVmhbqBN97RD1vxrahvBOfOYzoosH9bq94uejSOQGkVM6sN/7HelL4t10t9F4gPdVzydEOx83Gv+uNxo7XyL/FtFl8z9ZAHF4bBsrEwAAQABJREFUeAHt3Qu8TlX++PHvcT3u19wzSINMpUjlFlEiRJJhTJMZDfkp/sqdI7fcGrr9NPr9miH93CmFhCSRkpKSRpKQWy6534/zP981c06e45znPLf97Ntnv15ynmfvvdZ3vdeT79n72WuthJTUTdgQQAABBBBAIK4COeJaG5UhgAACCCCAgBEgAfNBQAABBBBAwAYBErAN6FSJAAIIIIAACZjPAAIIIIAAAjYIkIBtQKdKBBBAAAEESMB8BhBAAAEEELBBgARsAzpVIoAAAgggQALmM4AAAggggIANAiRgG9CpEgEEEEAAARIwnwEEEEAAAQRsECAB24BOlQgggAACCJCA+QwggAACCCBggwAJ2AZ0qkQAAQQQQIAEzGcAAQQQQAABGwRIwDagUyUCCCCAAAIkYD4DCCCAAAII2CBAArYBnSoRQAABBBAgAfMZQAABBBBAwAYBErAN6FSJAAIIIIAACZjPAAIIIIAAAjYIkIBtQKdKBBBAAAEESMB8BhBAAAEEELBBgARsAzpVIoAAAgggQALmM4AAAggggIANAiRgG9CpEgEEEEAAARIwnwEEEEAAAQRsECAB24BOlQgggAACCJCA+QwggAACCCBggwAJ2AZ0qkQAAQQQQIAEzGcAAQQQQAABGwRIwDagUyUCCCCAAAIkYD4DCCCAAAII2CBAArYBnSoRQAABBBAgAfMZQAABBBBAwAYBErAN6FSJAAIIIIAACZjPAAIIIIAAAjYIkIBtQKdKBBBAAAEESMB8BhBAAAEEELBBgARsAzpVIoAAAgggQALmM4AAAggggIANAiRgG9CpEgEEEEAAARIwnwEEEEAAAQRsECAB24BOlQgggAACCJCA+QwggAACCCBggwAJ2AZ0qkQAAQQQQIAEzGcAAQQQQAABGwRIwDagUyUCCCCAAAIkYD4DCCCAAAII2CBAArYBnSoRQAABBBAgAfMZQAABBBBAwAYBErAN6FSJAAIIIIAACZjPAAIIIIAAAjYIkIBtQKdKBBBAAAEESMB8BhBAAAEEELBBgARsAzpVIoAAAgggQALmM4AAAggggIANAiRgG9CpEgEEEEAAARIwnwEEEEAAAQRsECAB24BOlQgggAACCJCA+QwggAACCDhW4OjRo3LhwoWYxHfgwIGYlBOrQkjAsZKkHAQQQACBmAqcP39e/vSnP0lCQkLI5T799NMyfPjwTI+fMGGCfPHFF5nus+NNErAd6tSJAAIIIJCtwHPPPSd//etfJXfu3NkeG8oBSUlJMnjwYElJSQnlcMuPIQFbTkwFCCCAAALhChw6dEj+/ve/S4sWLcypZ86ckR49ekj58uWlePHi0qFDBzl58mSmxX733XdSu3Ztueaaa6Rfv36SnJxsjitatKgUKVJE5s+fn+l58X6TBBxvcepDAAEEEMhWYOPGjXLLLbdIrly5zLEvvPCC7NixQzZt2iTr16+Xr776SubMmZNpOYsXLza3od9//3155513ZPr06enHNW7cWNasWZP+2s4fSMB26lM3AggggECmAtu2bTNXu2k7O3fuLK+//rqUKlVKEhMT5frrr5esHqq6++67pU2bNnLTTTeJnnflFW+FChVEy3bCRgJ2Qi8QAwIIIIBAgMCPP/5okm3amzlz5pTevXtL6dKl5f7775ft27en31pOOybt7zvuuCPtR3Mret++femvNYFr2U7YSMBO6AViQAABBBAIEPjNb34jVyZO/f5Xv/v9+uuvZcuWLVK3bt0sH6bau3dvellbt26VMmXKpL/WMrVsJ2wkYCf0AjEggAACCAQI6O1jvcpN244cOSINGjQwV8U//fSTrFixQi5evGh2a5LVP2mb7jt16pQcO3ZMFixYIC1btkzbZcrUsp2w/fvbbSdEQgwIIIAAAgj8R0CT5L/+9S9zlavjgPVp5r59+8rLL79s3mvXrl16gtYHtHSbOnWq+bt69epSq1Ytk4CbNm0q3bt3N+/rfzRR63fETtgSUsdDOWNAlBM0iAEBBBBAwDECmmS7du1qHqjSoDRd6ZVwyZIlA2LU73RnzJghw4YNS39fr45Pnz4tOvQobdMrYh2epJNx6HAkuzcSsN09QP0IIIAAApkK6LAjvXpduXJlpvvT3vyf//kfqVq1qhm2dGXCTduf9vfYsWOlRIkSZnKPtPfs/JvvgO3Up24EEEAAgSwFrrvuOvnzn/8sJ06cyPQYnahDH6jS2bL0trJeGev3vVd+H3zliZp8//KXv1z5lq0/cwVsKz+VI4AAAghEItCtWzd57bXXMj21YMGC8u6775qHtjI9wCFvkoAd0hGEgQACCCAQmoB+3/vII48EPbhs2bLmIa0CBQoEPc7OndyCtlOfuhFAAAEEwhb429/+lu05+/fvl1mzZmV7nJ0HMAzJTn3qtkxA1xDlAX/LeCkYAdsEzp07Z9YHrlGjRkAMu3fvNk89X/nmxx9/LHqr2qkbCdipPUNcEQv8/PPP8s033wTMfhNxYZyIAAKOEjh79qx52jljUL/88stVCViPdfJGAnZy7xBbRAI6/q9SpUpSuXLliM7nJAQQcK6A3tlavny5HD58ONsgq1Wrlu0xdh7Ad8B26lM3AggggEBYAjor1h/+8Idsz9HFGzp16pTtcXYeQAK2U5+6EUAAAQTCFkhKShJ9yjnYNnDgQOEKOJgQ+xBAAAEEEAhT4NChQ/K73/3OzPec8dQ8efLIiBEjZNSoURl3Oe413wE7rksICAEEEEAgKwEdXjR48GAZOXKk6Lq/H3zwgXz44YdmtqwqVapI27ZtpUKFClmd7qj3mYjDUd1BMLEQ0LVAL1y4wENYscCkDAQcJHDy5El5/PHHpWPHjtK6dWsHRRZZKHwHHJkbZyGAAAIIxFFAf6nWK9+77rrLE8lX6UjAcfwAURUCCEQvMH36dNFJGHS+31tvvVU+++yzTAt99dVX5YEHHkifkOX3v/+96Ko5bO4UGDNmjBnb/9hjj7mzAZlEzS3oTFB4y90C3IJ2d/8Fi3779u1mEoaPPvrIjPUeMGCA7Nq1S957772rTtMZk3RR96FDh8rly5flueeeM+vA6kM6bO4SmDJlinz33XemD3Pl8s6jS95pibs+T0SLAAIRCJQuXVo+/fRTqVmzphw/flxuuOEG+eSTTzItKTExUaZOnSpdunSRS5cuyeLFi4XkmymVo99cuHChbNiwQV5++WXxUvJVdG5BO/qjR3AIIHClQKFChWTOnDlmfGf16tVlwYIF5upWj9Fbk5pg9U/abcomTZqY8aLXX3+93HbbbVcWxc8uEFi7dq1ZUGHChAnmKwcXhBxWiCTgsLg4GAEE7BR4/fXXZf78+Sbx6nCUfv36pX/HO2zYMHM1rFfEettZt3feeUeOHTsm+/btMz/bGTt1hyewdetWmThxoowdO1ZKlSoV3skuOZpb0C7pKMJEAAERXeVKr2Z1EgadE3jatGmic3/rVrFiRfMnzenEiRPSs2dP8+CV3oLW4Sv6BG3hwoXTDuFvhwrocxz6S9SQIUOkatWqDo0y+rC4Ao7ekBIQQCBOAp07d5affvpJbr75ZvM9cJ06dUSvhM+cOXNVBPqAlk7UcN9990mrVq2kdu3aou+xOVtAv9vv37+/WUawbt26zg42yuh4CjpKQE53ngBPQTuvT2Id0ZEjR6RYsWKSIwfXELG2tbM8Hevbp08f8319165d7QwlLnVzCzouzFSCAAKxFChRokQsi6MsBwjoVwo6vaR+leCH5Kvk/ProgA8eISCAAAJ+F3jppZfk7Nmz5sE6v1hwBeyXnqadCCCAgEMF5s6dK19++aUZ66vr+PplIwH7padpJwIIIOBAAV3JaN68efLKK69I/vz5HRihdSGRgK2zpWQEEEAAgSACW7ZskcmTJ8ukSZOkZMmSQY705i6+A/Zmv9IqBBBAwNECe/bskaSkJNEJVHQdXz9uJGA/9jptRgABBGwU0NnJdKxv9+7dzfhsG0OxtWoSsK38VI4AAgj4S+D8+fNmQpQWLVpI8+bN/dX4DK0lAWcA4SUCCCCAgDUCuizkM888Y6aXfOSRR6ypxEWlkoBd1FmEigACCLhZ4Pnnn5fk5GTp27evm5sRs9h5CjpmlBSEAAIIIJCVwMyZM+Xbb7+VF198Ufw01jcrD32fBBxMh30IIIAAAlELrFq1ShYtWmTG+ubLly/q8rxSAAnYKz1JOxBAAAEHCmzevFl0mkkd71u8eHEHRmhfSHwHbJ89NSOAAAKeFti9e7d56Gr48OFSqVIlT7c1ksaRgCNR4xwEEEAAgaACR48eNWN9e/XqJbVq1Qp6rF93koD92vO0GwEEELBIQFc1GjBggLRp00aaNm1qUS3uL5YE7P4+pAUIIICAYwR0mJHecq5Ro4Z07tzZMXE5MRASsBN7hZgQQAABlwrowgo6zKhPnz4ubUH8wuYp6PhZUxMCCCDgaYEZM2bI999/Ly+88ILkyMH1XXadTQLOToj9CCCAAALZCqxYsUKWLFlixvomJiZmezwHiPj6VxSdFPyXX36JyedAn/i7cOFCTMqiEAQQQMBNAps2bZIpU6bIhAkTpFixYm4K3dZYfZ2ABw8eLDt37jQdsHr1amnQoIFUrlxZ2rVrl2Vizuq4rVu3ysiRI23tTCpHAAEE4i2g/4aOGDHC/PtXsWLFeFfv6vp8m4C/+eYbk2RvvfVWOXz4sHlaT3+D++6770wSfuqpp67q2GDHafL+4YcfzJ+rTuQNBBBAwIMCR44cMcONevfuLTfeeKMHW2htk3ybgHUx6Icfftjobty40Twyf9NNN0nu3LnliSeekIULF14ln91xDz74oAwcOPCq83gDAQQQ8JqAjvXVf0fbt28vTZo08Vrz4tIe3ybgjz76SBo3bmyQdbq0smXLpoOXLl1ajh8/Lvod8ZVbdsfph3DNmjVXnsLPCCCAgOcEdKzv0KFDRS9aOnbs6Ln2xatBvkzA+/btkzx58kjak3p6G6VAgQLp5mmrdZw5cyb9Pf0hu+NKlChhErcmbzYEEEDAqwITJ04U/XfyySef9GoT49IuXyZgfWjgmmuuSQcuWbKknDhxIv31yZMnTXLO+DRfKMdpuT/++GN6WfyAAAIIeElg2rRponcDhw0bJgkJCV5qWtzb4stxwL/5zW9k//796dgVKlQISJqaQK+99tr0/Wk/ZHfc5cuX5eeffxaeBEwT428EEPCSwLJly2T58uVmrG/evHm91DRb2uLLK2BNpDpLy6FDhwz63XffbZ5efv/99833vn/729/MgwW6U8f36mLSugU7Tvfrb4WlSpViHJxisCGAgKcE9CHUV199VfT2c5EiRTzVNrsa48sErNj68ICO3dVNf5N7+eWXpW3btnLdddfJnj17ZMiQIWbfF198kZ6Mgx2nB2t5Wi4bAggg4CWBHTt2yOjRo2XUqFFSvnx5LzXN1rYkpKRutkZgU+UzZ86Ud999V3Tu0rTt0qVLot//Zvzu9y9/+Yu89tpraYdJVsfpBB5du3Y1S3ClH8wPcRfYu3evmZVMJ1VhQwCB6AT0TmHPnj3NA1cNGzaMrjDODhDw7RVwp06dzC1jvdpN23LlyhWQfHXijRdffNE8kDV79uz0W9YZj9Pzt2/fLvrUtK5/yYYAAgh4QeD06dNmrK8ONSL5xr5HfXsFrJRfffWVueKtX79+gKw+TPXMM8+YeU2vHAusQ5d0hiy9DaPLbV25ffDBB2YscfXq1a98m59tEOAK2AZ0qvScgN7p69evn1StWlX+67/+y3Ptc0KDfJ2As+qAP//5z/LPf/4zq93SpUuXgFvXWR7IDlsESMC2sFOpxwTGjBljvsrRixGGG1nTub69BZ0V53vvvRc0+ep5b7zxhrzzzjtZFcH7CCCAgKsF9JkXnbBIH0Yl+VrXlSTgDLb/+7//m+GdzF9e+VBW5kfwLgIIIOA+AV3TV4dejh071swY6L4WuCdiX07EEax7vv7666t269CkatWqBbyv4+B09SM25wnoGs9FixZ1XmBEhIDDBTZs2GBGfOiwzMKFCzs8WveHRwLO0IcZH67S3efOnbtqfWCdRzptLukMRfDSZgG9ZaZJmA0BBEIX0JEc+r3v+PHjpVy5cqGfyJERC5CAM9DVqVMnfYKOtF36UI/+uXL7/e9/z4f0ShAH/ayLZlz59LqDQiMUBBwpcPDgQRk0aJAZcsRIjvh1Ed8BZ7DWAeehbDyWH4oSxyCAgNMFTp06ZYYb6eiOjEMynR672+MjAWfowdtvv12SkpIyvBv4cuDAgdKgQYPAN3mFAAIIuExAx/oOHjxY6tWrZ6bidVn4rg+XBJxJF44YMcI8iFC6dOmAvToX9PDhw83TgQE7eIEAAgi4UODZZ58VXWa1R48eLoze/SHzHXAWfaiTcfzpT38SXQHkwIEDoslYlzD8/PPPsziDtxFAAAH3CEydOlV0ul1d/Y3NHgEScBB3fSJab0mnbRcuXJDXX3/drJaU2XrBacfxNwIIIOBkgbffflvWrVsn//3f/y25c+d2cqiejo1b0GF0r84FrSsezZkzJ4yzOBQBBBBwjsD69etl+vTpZq77QoUKOScwH0ZCAg6z03XN4DVr1sjRo0fDPNMZh+vqk+3bt5cpU6aYgHbv3i233HKL7Ny50xkBEgUCCFgmsG3bNjPOV7/7LVOmjGX1UHBoAiTg0JzSj9LZYe655x5ZsGBB+ntu+kEnqdAVnXSOVx379/jjj0uLFi2EtXPd1IvEikD4AvoMiz7xrKM4Ms7sF35pnBELARJwBIodOnSQxYsXy9mzZyM42/5TdMiBroesv0j8+OOP5slu+6MiAgQQsErg5MmTZqzvo48+KnfccYdV1VBumAIk4DDB9HC9daMzZmkSduv29NNPi8573b17d9HhVWwIIOBNAX14VK9877rrLmndurU3G+nSVpGAI+w4vYKcO3euJCcnR1iCvafpGp9NmzaVcePGMW+yvV1B7QhYKqDzO+tFw2OPPWZpPRQevgAJOHwzc0bVqlWlYsWKZtmuCIuw7bRly5bJ+++/L2+++aY0a9ZM9GqYDQEEvCegD1seP35cBgwY4L3GeaBFJOAoOlGvgmfNmhVFCfE/9fTp02bWm8mTJ4sOQXjuuedMItb1P9kQQMA7AgsXLhRdXnD06NGSKxdTPjixZ+mVKHpFvwfOkSOH+ZDXrVs3ipLid2qBAgXMg1dpNZYqVcq1Q6rS2sDfCCAQKLB27VpzcaATbRQsWDBwJ68cI8AVcJRdocsSzp49O8pSOB0BBBCIjcDWrVtl4sSJZs56/QWbzbkCJOAo+6ZJkyayb98+0QHubAgggICdArpu+dChQ804f31Ohc3ZAiTgKPtH54vWccFcBUcJyekIIBCVgD5s1b9/f+nWrZu45SuxqBrsgZNJwDHoxPvvv1+++OILs1pSDIqjCAQQQCAsAR3rO2jQIDOqoWXLlmGdy8H2CZCAY2CfmJgobdq0MeOCY1AcRSCAAAIhC+j87iNHjjTDIrt27RryeRxovwAJOEZ9oAscrFy50oy5i1GRFIMAAghkK/DSSy+ZaXH79euX7bEc4CwBEnCM+qNo0aKiD2Tp5BZsCCCAQDwEdDa+L7/8UkaNGiX6PAqbuwRIwDHsr44dO8pbb70l58+fj2GpFIUAAghcLfDhhx/KvHnzzLq++fPnv/oA3nG8AAk4hl1Uvnx5ufnmm2Xp0qUxLJWiEEAAgUCBLVu2iM5mN378eClZsmTgTl65RoAEHOOu0ok59LbQ5cuXY1wyxSGAAAIie/bskaSkJBk2bJhUqVIFEhcLkIBj3Hk1atQQnX1Gbw+xIYAAArEUOHbsmBnrq8uI1q5dO5ZFU5YNAiRgC9CZntICVIpEwOcC+myJrmrUokULad68uc81vNF8ErAF/XjnnXeaB7E2bdpkQekUiQACfhPQr7R0DW+dXvKRRx7xW/M9214SsEVdq1fBbluq0CIKikUAgSgFnn/+eUlOTpa+fftGWRKnO0mABGxRb+hC9zt37pQffvjBohooFgEE/CAwc+ZM0RWORowYwVhfj3U4CdiiDtUFsB966CGugi3ypVgE/CCwatUqWbRokRnrmy9fPj802VdtJAFb2N2tW7eWTz/9VA4dOmRhLRSNAAJeFNi8ebPoNJM61rd48eJebKLv20QCtvAjoLPT6EpJOi6YDQEEEAhVYPfu3eahq+HDh0ulSpVCPY3jXCZAAra4w/Q29HvvvSenTp2yuCaKRwABLwgcPXrUjPXt1auX1KpVywtNog1ZCJCAs4CJ1dslSpSQBg0amDmiY1Um5SCAgDcFzp49a8b66vKmTZs29WYjaVW6AAk4ncK6H3RI0sKFC+XixYvWVULJCCDgagEdZqS3nHU2vc6dO7u6LQQfmgAJODSnqI6qWLGiVK9e3dyKjqogTkYAAc8KTJo0yQwz6tOnj2fbSMMCBUjAgR6WverUqZPMmTNHUlJSLKuDghFAwJ0CM2bMkO+//95cAefIwT/L7uzF8KOmp8M3i+iMG2+8UQoVKiTr1q2L6HxOQgABbwqsWLFClixZIuPGjZPExERvNpJWZSpAAs6UxZo39SqY6SmtsaVUBNwooPPFT5kyxUy0UaxYMTc2gZijECABR4EX7qn6NPTx48fl66+/DvdUjkcAAY8J6FS1Or3kyJEjRZ8TYfOfAAk4jn2ekJAgHTt2lNmzZ8exVqpCAAGnCRw5csQMN+rdu7fo11Ns/hQgAce533Udz2+//VZ0phs2BBDwn4CO9e3fv7+0b99emjRp4j8AWpwuQAJOp4jPD3ny5JEHH3yQq+D4cFMLAo4S0LG+Q4cOlZtuusncDXNUcAQTdwEScNzJRdq2bSsfffSR6JRzbAgg4B+BiRMniq5q9OSTT/qn0bQ0SwEScJY01u0oWLCg6K3o+fPnW1cJJSOAgKMEpk2bJrt27ZKkpCTR50HYECAB2/QZePjhh83YvzNnztgUAdUigEC8BJYtWybLly83Y331ayg2BFSABGzT56BUqVJSt25deeedd2yKgGoRQCAeAhs3bpRXX31V9PZzkSJF4lEldbhEgARsY0fpIg16G1ofzGBDAAHvCezYsUNGjx4to0aNkvLly3uvgbQoKgEScFR80Z183XXXSeXKlUWnomNDAAFvCRw6dEgGDhwoTz31lNSsWdNbjaM1MREgAceEMfJC9CpYF2lgQwAB7wicPn3ajPXViXcaNmzonYbRkpgKkIBjyhl+Ybfeeqvkzp1bPvnkk/BP5gwEEHCcwKVLl8xY3zp16shDDz3kuPgIyDkCJGAH9IVeBTM9pQM6ghAQiIHA+PHjpXDhwtKzZ88YlEYRXhYgATugdxs3biwHDhyQf/3rXw6IhhAQQCBSgddee0327dsnQ4YMYaxvpIg+Oo8E7IDO1gW49bsilip0QGcQAgIRCuiavqtWrZKxY8cKY30jRPTZaSRgh3R4y5YtZfPmzbJ3716HREQYCCAQqsCGDRtEr351rK/efmZDIBQBEnAoSnE4Jm/evGaOaJ6IjgM2VSAQQ4Ht27fLmDFj5Nlnn5Vy5crFsGSK8roACdhBPdyuXTv54IMP5NixYw6KilAQQCArgYMHD8qgQYPMkKPq1atndRjvI5CpAAk4UxZ73tRp6po2bSoLFy60JwBqRQCBkAVOnTol/fr1ky5dukj9+vVDPo8DEUgTIAGnSTjkb12k4e2335Zz5845JCLCQACBjAI61nfw4MFSr14989VRxv28RiAUARJwKEpxPEa/Q6pVq5YsXbo0jrVSFQIIhCOg3/eWLFlSevToEc5pHItAgAAJOIDDGS86deokc+fOZZEGZ3QHUSAQIDB16lQ5fPiw+e43YAcvEAhTgAQcJlg8Dq9WrZqULVtWVq9eHY/qqAMBBEIU0K+H1q1bZ5561ilk2RCIRoAEHI2ehecyPaWFuBSNQAQC69evl+nTp8uECROkUKFCEZTAKQgECpCAAz0c8+r2228XfdDj888/d0xMBIKAXwW2bdsmOsezfvdbpkwZvzLQ7hgLkIBjDBrL4vS7YKanjKUoZSEQvsD+/fvNE8+6tq9+PcSGQKwESMCxkrSgHB0TvGvXLvn+++8tKJ0iEUAgO4GTJ0+asb6PPvqo3HHHHdkdzn4EwhIgAYfFFd+Dc+bMKR06dGCpwviyUxsCRuDChQvmyveuu+6S1q1bo4JAzAVIwDEnjW2B+j/+Z599ZpYrjG3JlIYAAlkJpKSkmCed9fvexx57LKvDeB+BqARIwFHxWX9yvnz5pFWrVjJv3jzrK6MGBBAwAq+88oocP35cBgwYgAgClgmQgC2jjV3B7du3l+XLl4t+H8WGAALWCuhc7Lq84OjRoyVXrlzWVkbpvhYgAbug+4sXLy6NGjWSt956ywXREiIC7hVYu3atGXmgY30LFizo3oYQuSsESMCu6CYRnZhDfzPXB0PYEEAg9gJbt26ViRMnytixY6VUqVKxr4ASEcggQALOAOLUl9dee63UrFlTli1b5tQQiQsB1wrs3btXhg4dKkOGDJGqVau6th0E7i4BErCL+kuvgufMmSP6hCYbAgjERkAfturfv79069ZN6tatG5tCKQWBEARIwCEgOeWQ3/3ud1KsWDH56KOPnBIScSDgagH9SmfQoEHSrFkzadmypavbQvDuEyABu6zPWKTBZR1GuI4V0DtJI0eOlIoVK0rXrl0dGyeBeVeABOyyvm3QoIGcOnVKNm/e7LLICRcBZwm8+OKLcu7cOTPVpLMiIxq/CJCAXdjTHTt2ZHpKF/YbITtHYO7cueaXWL0C1ilf2RCwQ4AEbId6lHXee++98t1338mPP/4YZUmcjoD/BD788EMzs5yO9c2fP7//AGixYwRIwI7pitADyZ07t+jsWLNnzw79JI5EAAHZsmWLTJ482aztW7JkSUQQsFWABGwrf+SVt2nTRj7++GM5fPhw5IVwJgI+EtizZ48kJSXJsGHDpEqVKj5qOU11qgAJ2Kk9k01cOk1eixYtWKQhGyd2I6ACx44dM2N9u3fvLrVr1wYFAUcIkIAd0Q2RBfHQQw/Ju+++K6dPn46sAM5CwAcC58+fN6sa6S+szZs390GLaaJbBEjAbumpTOK85ppr5M4775S33347k728hQACly9flmeeecZML/nII48AgoCjBEjAjuqO8IPRiTkWLFggly5dCv9kn56hS83dcMMNPm29v5r9/PPPS3JysvTt29dfDae1rhAgAbuim7IOsnLlynLdddfJihUrsj6IPQj4UGDmzJmiKxyNGDGCsb4+7H83NJkE7IZeyibGTp06MSQpG6OMu3UOYJ1+UOfWvueee0RXw8m46XeHt9xyi/z000/puwYOHCj6DzubswVWrVolixYtEh3rmy9fPmcHS3S+FSABe6Dra9WqJYmJibJ+/XoPtCY+TdixY4eUKFFCvvnmGylXrpxZCSdjzXnz5jXDVXQdZt30Nv8//vEPadSoUcZDee0gAZ2m9aWXXjJjfYsXL+6gyAgFgUABEnCgh2tf6VXwrFmzXBt/vAPXyUz04RxNvnpVq+ss6xzbGbe079j1/dWrV0u1atWkQoUKGQ/jtUMEdu/ebfp1+PDhUqlSJYdERRgIZC5AAs7cxXXv6lXZkSNHzHdergvehoBr1qwpOpZatxo1akiBAgVk3759oldMefLkMX80Kbdq1crMGXzw4EEz5lrn4WZzpsDRo0fNWN9evXqJ3hViQ8DpAiRgp/dQiPHlyJFDHn74Ya6CQ/TSZJu26ZzaOpa6TJky8sEHH8gnn3xi/tSrV898f6hJWId6LV68WDp06JB2Gn87SODs2bNmrK/OENe0aVMHRUYoCGQtQALO2sZ1e3SiAZ3r9sqHhlzXiDgF/PPPP8u6detE14T95z//KbrMY+HCheXmm2+WW2+91fzR17rpbehJkyZJ9erVpXTp0nGKkGpCFdBhRnrLWe9kdO7cOdTTOA4B2wVIwLZ3QewC0Funbdu2lTlz5sSuUI+WpOOAn376aTOES787//vf/55lS3X1Kb0Fze3nLIls3aG/HOmSgn369LE1DipHIFyBhNQrgJRwT+J45wqcOHFC/vCHP8jrr79uhtg4N1LrIvv6669FhxDVqVMn20oOHTokOqNYsE1vb15//fWi5eqwJTbnCMyYMUPWrl0rL7zwghkJ4JzIiASB7AW4As7eyFVH6G3TZs2aSdrQGVcFb0Ow2SXfN954w9xV0O9+Sb42dFCQKnXymSVLlsi4ceNIvkGc2OVcARKwc/sm4sj0Vqk+NKRXbmzRCZQqVUratWtnJnSIriTOjqXApk2bZMqUKaZf+MUolrKUFU+BXPGsjLriI6BP8+qSa3p1oCsmsUUuoN//sjlLYOfOnWZ6yVGjRknFihWdFRzRIBCGAFfAYWC56VCdmGPu3LlmIno3xU2sCAQT0LHuAwYMkN69e8uNN94Y7FD2IeB4ARKw47sosgD1oaFrr71WdE5cNgS8IKBfqfTv31/at28vTZo08UKTaIPPBUjAHv4A6PjV2bNne7iFNM0vAjrWd9iwYXLTTTcxHMwvne6DdpKAPdzJt912m2ndZ5995uFW0jQ/CEycONE86fzkk0/6obm00ScCJGCPdzRXwR7vYB80b9q0abJr1y5JSkqShIQEH7SYJvpFgATs8Z6+++67zdSU3333ncdbSvO8KKALYixfvtyM9dWZ3tgQ8JIACdhLvZlJW3SKPp1Egu+CM8HhLUcLbNy4UV599VXR289FihRxdKwEh0AkAiTgSNRcdo6u5vP555/LgQMHXBY54fpVYMeOHTJ69GjRsb7ly5f3KwPt9rgACdjjHazNS0xMFF2mjUUafNDZHmiizs89cOBAeeqpp0TXbWZDwKsCJGCv9myGdj344IOycuVK0cUa2BBwqoCuy6xjfXU61YYNGzo1TOJCICYCJOCYMDq/EJ0vt3HjxvLmm286P1gi9KXApUuXZOjQoWYVK6ZQ9eVHwHeNJgH7qMv1quKtt96SCxcu+KjVNNUtArqqka7m1bNnT7eETJwIRCVAAo6Kz10nV6hQwcyfu3TpUkcGfvToUdFbkME2Xef3559/DnYI+1wo8Nprr8n+/ftlyJAhjPV1Yf8RcmQCJODI3Fx7lk7MoYs0XL582XFtGDlypCxatChoXDo05a9//WvQY9jpLgFdtUvnLB87dqww1tddfUe00QmQgKPzc93ZN9xwg5QsWVLWrFnjutgJ2HsCGzZsEL361bG+evuZDQE/CZCA/dTb/2mrLlU4a9Ysx7ZcbzPfcsstZgavtCB1WMrMmTPTXvK3BwS2b98uY8aMkWeffVbKlSvngRbRBATCEyABh+fliaPvvPNOOXfunHz55ZeObE/evHmlSpUqsnDhQhOfPh37j3/8Qxo1auTIeAkqfIGDBw/KoEGDzJCj6tWrh18AZyDgAQESsAc6MZIm6HfBTr4K1vgWLFhgmrZ69WqpVq2a6ENkbO4XOHXqlPTr10+6dOki9evXd3+DaAECEQqQgCOEc/tp99xzj+h0fzt37nRkU3T6zM2bN4teKc2bN481YB3ZS+EHdfHiRfOkc7169aRt27bhF8AZCHhIgATsoc4Mpym5cuUSnezAqVfB+fLlE03Cb7/9tixevNgsKBFO+zjWmQL6pHOJEiWkR48ezgyQqBCIowAJOI7YTqtK54f+5JNPROfedeKmt6EnTZok+h1h6dKlnRgiMYUhMHXqVDl8+LD57jeM0zgUAc8KkIA927XZNyx//vzSsmVLc4s3+6Pjf8S9995rbkHrDF5s7hbQOxnr1q0zTz3nzp3b3Y0hegRiJEACjhGkW4vR29C66Lk+GOO0LTk5WfSXBF3PmM29AuvXr5fp06fLhAkTpFChQu5tCJEjEGMBEnCMQd1WnE7KoQ/E6BWKk7Y33njDPKSjyVcXkmBzp8C2bdtk/PjxZqxvmTJl3NkIokbAIgESsEWwbio2bciPPqFq56ZPZqet/1qqVClp166duWq6MiYdisRKOVeKOPdnndt58ODBZm1fHUbGhgACgQIJKalb4Fu88qOATorQoEEDuf/++13f/K+//lp0Nq06deq4vi1ubcDJkyfl8ccfN8PHWrdu7dZmEDcClgpwBWwpr3sK16vgOXPmuCdgInWsgC53qb/Q6frTJF/HdhOBOUCABOyATnBCCDfffLMULFhQ1q5d64RwiMGlAnpDTed3Llu2rHTr1s2lrSBsBOIjQAKOj7MratGr4NmzZ7siVoJ0psArr7wix48flwEDBjgzQKJCwEECJGAHdYbdoTRs2FB++eUX2bJli92hUL8LBXTxDF1ecPTo0aIzrbEhgEBwARJwcB9f7U1ISDAPzXAV7Ktuj0lj9asLndZUx/rqVxlsCCCQvQAJOHsjXx1x3333ydatW2X37t2+ajeNjVxAPy8TJ04UnedZh4+xIYBAaAIk4NCcfHNUnjx5zPhbnoj2TZdH1dC9e/fK0KFDzQpHVatWjaosTkbAbwIkYL/1eAjt1Qkw1qxZI0ePHg3haA7xq4A+bNW/f3/ztHPdunX9ykC7EYhYgAQcMZ13T9Tv8Jo3by7z58/3biNpWVQCaWN9mzVrZhb0iKowTkbApwIkYJ92fHbN1jmYlyxZImfPns3uUPb7TEDH+o4cOVIqVqwoXbt29VnraS4CsRMgAcfO0lMl6fq7t912m7zzzjueaheNiV7gxRdflHPnzkm/fv2iL4wSEPCxAAnYx52fXdN1Yo558+aJLgvIhoAKzJ07VzZv3myugHPmzAkKAghEIUACjgLP66fqU62VKlWSlStXer2ptC8EgQ8//ND8QqZjfXWdZjYEEIhOgAQcnZ/nz2Z6Ss93cUgN1NnRJk+ebNb21TWk2RBAIHoBEnD0hp4uoXbt2mZawU8//dTT7aRxWQvs2bNHkpKSZNiwYVKlSpWsD2QPAgiEJUACDovLnwd36tTJTDPoz9b7u9XHjh0zY327d+8u+ssYGwIIxE6ABBw7S8+WpOu6HjhwQLZt2+bZNtKwqwXOnz9vVjVq2bKlGRd+9RG8gwAC0QiQgKPR88m5OXLkkIcffpirYJ/0tzbz8uXL8swzz4g+iPfHP/7RRy2nqQjET4AEHD9rV9ekV0Fffvml7Nu3z9XtIPjQBJ5//nkz/Kxv376hncBRCCAQtgAJOGwyf56QmJgobdq0MeNA/Sngn1bPnDnTrIg1YsQIYayvf/qdlsZfgAQcf3PX1vjggw/KqlWrRCfhZ/OmgPbvokWLzLq++fLl82YjaRUCDhEgATukI9wQRtGiRaVJkyaycOFCN4RLjGEK6AxXL730khnrW7x48TDP5nAEEAhXgAQcrpjPj+/YsaO89dZbok/IsnlHYPfu3eahq+HDh5vZz7zTMlqCgHMFSMDO7RtHRlauXDmpVauWLF261JHxEVT4Arrus67r26tXL9O34ZfAGQggEIkACTgSNZ+foxNzzJkzxwxV8TmF65uvy00OGDDAPGDXtGlT17eHBiDgJgESsJt6yyGxVq9eXcqUKSOrV692SESEEYmArnKlt5xr1KghnTt3jqQIzkEAgSgESMBR4Pn5VBZpcH/vT5o0yQwz6tOnj/sbQwsQcKEACdiFneaEkO+44w65ePGifP75504IhxjCFJgxY4Z8//335gpYZzpjQwCB+Avwf178zT1TI1fB7uzKFStWyJIlS2TcuHGiE6ywIYCAPQIkYHvcPVFrs2bN5Mcff5QdO3Z4oj1+aMSmTZtkypQpZqKNYsWK+aHJtBEBxwqQgB3bNc4PTKcpfOihh2T27NnOD5YIZefOnaLTS44cOVIqVqyICAII2CxAAra5A9xevc4P/emnn8rPP//s9qZ4Ov4jR46Y4Ua9e/eWG2+80dNtpXEIuEWABOyWnnJonDpfcKtWrVikwaH9o2HpWN9+/fpJ+/btzVSiDg6V0BDwlQAJ2FfdbU1j9Tb0e++9J6dOnbKmAkqNWEDH+g4dOtTMcKXTiLIhgIBzBEjAzukL10aiE/c3atRI3nzzTde2wauBT5w4UfQuxRNPPOHVJtIuBFwrQAJ2bdc5K3C9utIEfOHCBWcF5uNopk2bJrt27ZKkpCRJSEjwsQRNR8CZAiRgZ/aL66LSp2p1SkO9Fc1mv8CyZctk+fLlZqxvnjx57A+ICBBA4CoBEvBVJLwRqYBOzKGLNKSkpERaBOfFQGDjxo3y6quvit5+LlKkSAxKpAgEELBCgARshapPy9ThLfoP/tq1a30qYH+zdVKU0aNHy6hRo6R8+fL2B0QECCCQpQAJOEsadkQioEsVzpo1K5JTOSdKgUOHDsnAgQPlqaeekpo1a0ZZGqcjgIDVAiRgq4V9Vn79+vXNcKSvvvrKZy23t7mnT5+W/v37iz4M17BhQ3uDoXYEEAhJgAQcEhMHhSqgT9tqEuAqOFSx6I+7dOmSGetbp04dMzVo9CVSAgIIxEOABBwPZZ/Vce+998q2bdvMEBifNd2W5uqqRoULF5aePXvaUj+VIoBAZAIk4MjcOCuIQO7cuc20hyzSEAQpRrtee+012b9/vwwZMoSxvjEypRgE4iVAAo6XtM/qeeCBB8zT0LoIAJs1Arqm76pVq2Ts2LHCWF9rjCkVASsFSMBW6vq47IIFC8p9990n8+fP97GCdU3fsGGD6NWvjvXV289sCCDgPgESsPv6zDURP/zww6JXaWfOnHFNzG4IdPv27TJmzBh59tlnpVy5cm4ImRgRQCATARJwJii8FRuBa665Ru644w55++23Y1MgpcjBgwdl0KBBZshR9erVEUEAARcLkIBd3HluCF0n5tDb0DpUhi06AV3uUdf17dKli+h4azYEEHC3AAnY3f3n+OgrV64sVapUkZUrVzo+VicHePHiRfOkc7169aRt27ZODpXYEEAgRAEScIhQHBa5gF4FMyQpcj89U590LlGihPTo0SO6gjgbAQQcI0ACdkxXeDeQW265RfLmzSvr16/3biMtbNnUqVPl8OHD5rtfC6uhaAQQiLMACTjO4H6tTpcq5Co4/N7XB9jWrVtnnnrWCU7YEEDAOwIkYO/0paNbctddd4mu1rN161ZHx+mk4PSOwfTp02XChAlSqFAhJ4VGLAggEAMBEnAMECkie4EcOXKIjgvmKjh7Kz1C59IeP368GetbpkyZ0E7iKAQQcJUACdhV3eXuYFu2bCm6TOHevXvd3RCLo9e5nQcPHmzW9q1WrZrFtVE8AgjYJUACtkveh/XqfMU6hGbOnDk+bH1oTT5x4oSZZOPRRx81k5iEdhZHIYCAGwVIwG7sNRfH3K5dO/nggw/k2LFjLm6FNaFfuHDBXPnq9+WtW7e2phJKRQABxwiQgB3TFf4IpEiRItKsWTNZsGCBPxocYitTUlLMk85ly5aVbt26hXgWhyGAgJsFSMBu7j2Xxq4PY+nwmnPnzrm0BbEP+5VXXpHjx4/LgAEDYl84JSKAgCMFSMCO7BZvB6VXebVr15bFixd7u6Ehtm7hwoWiywuOHj1acuXKFeJZHIYAAm4XIAG7vQddGr9OzDFv3jxJTk52aQtiE/batWtl1qxZZqyvrqHMhgAC/hEgAfunrx3V0t/+9rdSvnx580CWowKLYzA6KcnEiRPNPM+lSpWKY81UhQACThAgATuhF3wag5+np9Sx0EOHDjUrHFWtWtWnnwCajYC/BUjA/u5/W1tft25duXz5smzcuNHWOOJduT5s1b9/f/O0sxqwIYCAPwVIwP7sd8e0Wpcq1O9A/bLpWN9BgwaZoVg6MxgbAgj4V4AE7N++d0TL7777btmzZ49s377dEfFYGYSO9R05cqRUrFhRunbtamVVlI0AAi4QIAG7oJO8HGLOnDmlQ4cOvlik4cUXXzRjn/v16+flLqVtCCAQogAJOEQoDrNOoFWrVuZ74AMHDlhXic0lz507VzZv3myugPWXDjYEEECABMxnwHaBfPnymbmPNUl5cfvwww/NmGdd1zd//vxebCJtQgCBCARIwBGgcUrsBdq3by8rVqwQXQ3IS9uWLVtk8uTJZm3fkiVLeqlptAUBBKIUIAFHCcjpsREoVqyY6CpAb731VmwKdEAp+nBZUlKSDBs2TKpUqeKAiAgBAQScJEACdlJv+DyWjh07mgSsQ3Xcvv3yyy9mYYXu3bubea/d3h7iRwCB2AuQgGNvSokRClx77bVSs2ZNeffddyMswRmnnT9/XgYOHCgtWrSQ5s2bOyMookAAAccJkIAd1yX+Dkgn5pgzZ47omFk3bjqz1zPPPCM6veQf//hHNzaBmBFAIE4CJOA4QVNNaAI33HCDlChRQtasWRPaCQ476vnnnzcrPPXt29dhkREOAgg4TYAE7LQeIR5x6/SUM2fOFF3haMSIEcJYXz7ICCCQnQAJODsh9sddoF69enLmzBn58ssv4153pBWuWrVKFi1aZNb11XHNbAgggEB2AiTg7ITYb4uAm5Yq1BmuXnrpJTPWt3jx4rZ4USkCCLhPgATsvj7zRcT33nuvWaBh586djm7v7t27zUNXw4cPl0qVKjk6VoJDAAFnCZCAndUfRPMfgVy5conOjqVPRDt1O3r0qFnXt1evXlKrVi2nhklcCCDgUAESsEM7hrBEHnjgAfn444/l0KFDjuM4e/asmWijTZs20rRpU8fFR0AIIOB8ARKw8/vItxEWKFDATGYxf/58RxkkJyeL3nKuUaOGdO7c2VGxEQwCCLhHgATsnr7yZaS6VvDSpUvl9OnTjmn/pEmTzDCjPn36OCYmAkEAAfcJkIDd12e+ilhXEKpfv74Z4uOEhs+YMUO+//57cwWcIwf/+zihT4gBAbcK8C+IW3vOR3HrIg0LFy6Uixcv2tpqXS5xyZIlMm7cOElMTLQ1FipHAAH3C5CA3d+Hnm9B5cqV5frrr5fly5fb1tZNmzbJlClTzEQbunQiGwIIIBCtAAk4WkHOj4uAXgXbNSRJxyLr9JIjR46UihUrxqW9VIIAAt4XIAF7v4890UIdZ6tPRa9bty6u7Tl8+LBZWrB3795y4403xrVuKkMAAW8LkIC93b+eal28p6fUsb79+/eXBx98UJo0aeIpSxqDAAL2C5CA7e8DIghRoFGjRqKzT33zzTchnhH5YTrWd+jQoWaGK739zYYAAgjEWoAEHGtRyrNMICEhQTQZzpo1y7I60gqeOHGi6KpGTzzxRNpb/I0AAgjEVIAEHFNOCrNa4L777jNXwHv27LGsqmnTpsmuXbskKSlJNOmzIYAAAlYIkICtUKVMywTy5Mkj7dq1u+qJ6JSL+yXl1BpJOfIPKZkyQ4rnWJ76+iNJuXw+rFiWLVtmhjvpWF+tiw0BBBCwSiAhJXWzqnDKRcAKgRMnTkiXLl1Er1SL5fxY5ECSyPltmVeVs6hIkYdESj0lCXmCDyHauHGjPPvss2Zt3/Lly2deHu8igAACMRLgCjhGkBQTP4HChQtLu1a3yflvG4nsSn1AKqvkqyElHxM5+r8i390uKb/MzTLIHTt2yOjRo2XUqFFC8s2SiR0IIBBDAa6AY4hJUfERSLn0i1za1lhyJX8ffoXlX5aEEl0DztPlDnv27ClPPvmkNGzYMGAfLxBAAAGrBEjAVslSriUC5jvdna1ETqfeer5yK9Q89VZzW5EC9eTbbXsl76VPpUqp3alXv6+nHpV8xZG5RKoslYSC9c17uspSr1695P7775eHHkq9Vc2GAAIIxEkg9V8jNgRcJHDklauSb0qJJySh3Nj0J5aTE87KL5fvloQKdSSl0H0iu/8oknLhP428JLL3SUn57WeSnHzZjPWtU6cOyddFHwFCRcArAnwH7JWe9EE7zNXvoZcCWrp6y83y/tam6ck3YGfqi4QiqVfLlRam/pD3113n/yVybLZZ1Ui/T9bbz2wIIIBAvAVIwPEWp77IBX75P5FLB349P2cxKfLbsdlOzJFQKHUayRLdfj0v9aej24bL/v37ZciQIVkm74ATeIEAAgjEWIAEHGNQirNQ4OhrgYUX/7PcWucuyZEjh2zYsCFwX8ZX1/y/1Hd+nVSjeP59Mm5kN8b6ZnTiNQIIxE2ABBw3aiqKRiDl8mmRs18FFlGomXndqVOn7K+Cc5cVSbwp4PyCl+xbXzggEF4ggIAvBUjAvux2Fzb6zKbUoC//GnhCPpH8d5jXjRs3NreTt23LYjKO/5x17GKG5QRPr/+1PH5CAAEE4ixAAo4zONVFKHAmwy3mxOqSkOPfU0XmzJlTOnToILNnz86y8AMHDsj/LcxwBX3+2yyPZwcCCCBgtQAJ2Gphyo+NwNkvAsvJHTitpI7j/eKLL8yVcOCBIqdOnTLr+ta6LfWJ6Cu3iz9JSvKpK9/hZwQQQCBuAiTguFFTUVQClw4Hnp7nNwGvExMTpU2bNjJ3buB0kxcvXjRPOterV0/qN+kUcI55cSGC2bSuLoV3EEAAgbAFSMBhk3GCLQLJJwKrzV068HXqq/bt28vKlSvl/Pnz6fvGjh0rJUqUkB49eojkuib9/fQfkk+m/8gPCCCAQDwFSMDx1KauyAUuZ0jACfmvKqto0aLSpEkT0YUVdJs6daocPnxYBg0a9O9jc6Q+uJVx06er2RBAAAEbBEjANqBTZQQCGa+AcyRmWkjHjh1NAv7pp59k3bp1MmbMGMmdO7c5NiFBZ17N8JG/fCbTcngTAQQQsFogw79GVldH+QhEKJDxCjizq9nUonUpwYSEBJN8J02aJIUKFQqsMCFD4iYBB/rwCgEE4ibAYgxxo6aiqARSrlzRSEv6dVarjOWm33LOuMOclnpeSmY7eA8BBBCIrwBXwPH1prZIBXIUDDzz8rnA16G+ynheziKhnslxCCCAQEwFSMAx5aQwywRyFAgsOuXXJ50Dd2T9KiUldSnCgLWBU1/mzHCLOuvT2YMAAgjEVIAEHFNOCrNMIGfGK+Cz4VeV8epXS8jBFXD4kJyBAAKxECABx0KRMqwXyFE4sI7kI4GvQ3mVnGEyDz2HK+BQ5DgGAQQsECABW4BKkRYI5L0+sNALewJfh/Iqs3NyFg/lTI5BAAEEYi5AAo45KQVaIpBYI7DYixEk4IznpM4nnZCLBBwIyysEEIiXAAk4XtLUE51A3gwJ+Ny3kpIS5niic1sDY8h/W+BrXiGAAAJxFCABxxGbqqIQyFcr8GT9Dvh8hoQaeMTVr06tCXyPBBzowSsEEIirAAk4rtxUFqlAQp7yIvnqBJ5+cmXg6yCvUnQ1pbObAo/If3vga14hgAACcRQgAccRm6qiFCjaPrCAw1Mk5fKFwPeyenX45dQ9l3/dq7e0uQL+1YOfEEAg7gIk4LiTU2HEAkUfSp2B8t8LK5gyLv4kcnB0tsWlnEm98j38SuBxpfqaOaMD3+QVAgggED8BEnD8rKkpSoGE3OVErukTWMqhv0nKvoGB713xKuX0epEfWqZe/J769d3c14oUffjX1/yEAAII2CCQkPokaZiPktoQJVUi8B+BFF29aNstInr1e+VWuI1IsY4iBRqlTq6ROmnHmc9FTr0v8vPk1MUXUs9J33KKVF4oCYWapb/DDwgggIAdAiRgO9SpMyoBc0v5h/tTr2qPZ1JO6mpHCfkyJN0rDqvwiiQUf+SKN/gRAQQQsEeAW9D2uFNrFAIJ+VOvgKssFsldIZNSUm/oBFzx/ucQXQe47ASSbyZivIUAAvYIcAVsjzu1xkAg5fLp1IewxoscnZa6yFFWc0On/o5ZrItImWGpz2+lfofMhgACCDhEgATskI4gjMgFUlKSRU6vE9GZri4dTL0CviiS5zqRvFVFEqulTjdZKvLCORMBBBCwSIAEbBEsxSKAAAIIIBBMgO+Ag+mwDwEEEEAAAYsESOoOJqAAAAUjSURBVMAWwVIsAggggAACwQRIwMF02IcAAggggIBFAiRgi2ApFgEEEEAAgWACJOBgOuxDAAEEEEDAIgESsEWwFIsAAggggEAwARJwMB32IYAAAgggYJEACdgiWIpFAAEEEEAgmAAJOJgO+xBAAAEEELBIgARsESzFIoAAAgggEEyABBxMh30IIIAAAghYJEACtgiWYhFAAAEEEAgmQAIOpsM+BBBAAAEELBIgAVsES7EIIIAAAggEEyABB9NhHwIIIIAAAhYJkIAtgqVYBBBAAAEEggmQgIPpsA8BBBBAAAGLBEjAFsFSLAIIIIAAAsEESMDBdNiHAAIIIICARQIkYItgKRYBBBBAAIFgAiTgYDrsQwABBBBAwCIBErBFsBSLAAIIIIBAMAEScDAd9iGAAAIIIGCRAAnYIliKRQABBBBAIJgACTiYDvsQQAABBBCwSIAEbBEsxSKAAAIIIBBMgAQcTId9CCCAAAIIWCRAArYIlmIRQAABBBAIJkACDqbDPgQQQAABBCwSIAFbBEuxCCCAAAIIBBMgAQfTYR8CCCCAAAIWCZCALYKlWAQQQAABBIIJkICD6bAPAQQQQAABiwRIwBbBUiwCCCCAAALBBEjAwXTYhwACCCCAgEUCJGCLYCkWAQQQQACBYAIk4GA67EMAAQQQQMAiARKwRbAUiwACCCCAQDABEnAwHfYhgAACCCBgkQAJ2CJYikUAAQQQQCCYAAk4mA77EEAAAQQQsEiABGwRLMUigAACCCAQTIAEHEyHfQgggAACCFgkQAK2CJZiEUAAAQQQCCZAAg6mwz4EEEAAAQQsEiABWwRLsQgggAACCAQTIAEH02EfAggggAACFgmQgC2CpVgEEEAAAQSCCZCAg+mwDwEEEEAAAYsESMAWwVIsAggggAACwQRIwMF02IcAAggggIBFAiRgi2ApFgEEEEAAgWACJOBgOuxDAAEEEEDAIgESsEWwFIsAAggggEAwARJwMB32IYAAAgggYJEACdgiWIpFAAEEEEAgmAAJOJgO+xBAAAEEELBIgARsESzFIoAAAgggEEyABBxMh30IIIAAAghYJEACtgiWYhFAAAEEEAgmQAIOpsM+BBBAAAEELBIgAVsES7EIIIAAAggEEyABB9NhHwIIIIAAAhYJkIAtgqVYBBBAAAEEggmQgIPpsA8BBBBAAAGLBEjAFsFSLAIIIIAAAsEESMDBdNiHAAIIIICARQIkYItgKRYBBBBAAIFgAiTgYDrsQwABBBBAwCIBErBFsBSLAAIIIIBAMAEScDAd9iGAAAIIIGCRAAnYIliKRQABBBBAIJgACTiYDvsQQAABBBCwSIAEbBEsxSKAAAIIIBBMgAQcTId9CCCAAAIIWCRAArYIlmIRQAABBBAIJkACDqbDPgQQQAABBCwSIAFbBEuxCCCAAAIIBBMgAQfTYR8CCCCAAAIWCZCALYKlWAQQQAABBIIJkICD6bAPAQQQQAABiwRIwBbBUiwCCCCAAALBBEjAwXTYhwACCCCAgEUCJGCLYCkWAQQQQACBYAIk4GA67EMAAQQQQMAiARKwRbAUiwACCCCAQDABEnAwHfYhgAACCCBgkQAJ2CJYikUAAQQQQCCYAAk4mA77EEAAAQQQsEiABGwRLMUigAACCCAQTIAEHEyHfQgggAACCFgkQAK2CJZiEUAAAQQQCCZAAg6mwz4EEEAAAQQsEiABWwRLsQgggAACCAQTIAEH02EfAggggAACFgn8f2FeFkkMzHgpAAAAAElFTkSuQmCC"/>
<figcaption><div class="markdown"><p>Ring on string figure.</p>
</div></figcaption>
</figure>
</div>
<p>Since the length of the rope does not change, we must have for any admissible <span class="math">$(x,y)$</span> that:</p>
<p class="math">\[
~
L = \sqrt{x^2 + y^2} + \sqrt{(a-x)^2 + (b-y)^2},
~
\]</p>
<p>where these terms come from the two hypotenuses in the figure, as computed through Pythagorean's theorem.</p>
<blockquote>
<p>If we assume that the ring will minimize the value of y subject to this constraint, can we solve for y?</p>
</blockquote>
<p>We create a function to represent the equation:</p>
<pre class='hljl'>
<span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>sqrt</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-nf'>sqrt</span><span class='hljl-p'>((</span><span class='hljl-n'>a</span><span class='hljl-oB'>-</span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>b</span><span class='hljl-oB'>-</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-p'>)</span>
</pre>
<pre class="output">
F (generic function with 2 methods)
</pre>
<p>To illustrate, we need specific values of <span class="math">$a$</span>, <span class="math">$b$</span>, and <span class="math">$L$</span>:</p>
<pre class='hljl'>
<span class='hljl-n'>a</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>L</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>10</span><span class='hljl-t'> </span><span class='hljl-cs'># L > sqrt{a^2 + b^2}</span><span class='hljl-t'>
</span><span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-p'>)</span>
</pre>
<pre class="output">
F (generic function with 2 methods)
</pre>
<p>Our values <span class="math">$(x,y)$</span> must satisfy <span class="math">$f(x,y) = L$</span>. Let's graph:</p>
<pre class='hljl'>
<span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-n'>F</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>L</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>xlims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>5</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>7</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>ylims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>5</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>7</span><span class='hljl-p'>))</span>
</pre>
<img src="data:image/png;base64,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i3YoALP2zTffLF68mGGYffv2DR061Aw7DAUGLzZ37txBgwZVVlbWq1fvwoULe/futba2ph0KAMiKFSuSkpJYlk1ISPD29r579y7tRAaFAoPnkcvl48aN27Jli+5GAGKxGGe8AIxKUFCQWCx2dXWVyWQdO3ZMTU2lnchwUGDwr06cONG4ceO9e/e2bNny8uXL27dvx30pAYyQp6dnVlZWgwYNKioqunbtaj4dhgKDZ6isrOzTp8/bb78tkUjmzJlz5cqVdu3a0Q4FAP/KwcEhJycnMDBQo9GEhISYyfR6FBg8KTU11c3N7dSpU7rDhmvWrKnVbaEBgLbU1NQuXbpotdqgoKAdO3bQjvPaocDgf5w9e7Zfv35VVVUikej69evbt29HewHwSEpKyqxZsziOmzZtWkxMDO04rxcKDP5WVVXVp0+fnj17VlRUfPrpp3l5ea1bt6YdCgBe2ubNm+fMmcNx3Icffmja4zCze8onPFNlZaVIJJLL5QzDbN269cMPP6SdCABe3caNGwUCwfr166dNm6bVaqdNm0Y70WuBERiQhIQEDw8PuVwuEonu3buH9gIwAevWrVu4cCHHcdOnT9++fTvtOK8FCszczZo1q1+/fhUVFX369CkoKHjzzTdpJwIA/VizZs3ixYt1HXb16lXacfQPBWa+dHPlt23bxrLs7NmzExISaCcCAD1bsWJF//79OY7r2LFjRkYG7Th6hgIzUwqFol27drq58vfu3du0aRPtRADwWvz66699+/Y1yQ5DgZmj+Ph4V1fXe/fuNWnS5N69e2+88QbtRADwGsXFxb355psKhSIwMJDjONpx9AYFZnaOHz+uu3F1gwYNMjMz0V4AJk8oFN66dcvZ2bm8vNzT05N2HL1BgZmXAwcODBw4UKlUDh06NCcnh3YcADAQKysrsVhsb29fUFBgMrfkRoGZkTFjxkRERFhaWs6bN++nn36iHQcADMrOzi47O5thmNTUVNO4wBkFZhYqKip69ep18OBBlmX37du3fv162okAgAJXV9cTJ04QQqZOnWoCF4ehwExfeXl5v379Tp8+bWFhcf/+/dGjR9NOBADU9O3b98svvySETJ8+ne8PwESBmbiysjJfX98LFy5YWlpmZGQ0adKEdiIAoOz//u//Jk2axHFchw4daGepExSYKSstLfX19S0oKPD09Lx582bTpk1p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" />
<p>The graph is an ellipse, though slightly tilted.</p>
<p>Okay, now to find the lowest point. This will be when the derivative is <span class="math">$0$</span>. We solve by assuming <span class="math">$y$</span> is a function of <span class="math">$x$</span> called <code>u</code>:</p>
<pre class='hljl'>
<span class='hljl-nd'>@vars</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-t'> </span><span class='hljl-n'>L</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-t'>
</span><span class='hljl-n'>u</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>SymFunction</span><span class='hljl-p'>(</span><span class='hljl-s'>"u"</span><span class='hljl-p'>)</span>
</pre>
<div class="well well-sm">\begin{align*}u\end{align*}</div>
<pre class='hljl'>
<span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>,</span><span class='hljl-n'>a</span><span class='hljl-p'>,</span><span class='hljl-n'>b</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>sqrt</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-nf'>sqrt</span><span class='hljl-p'>((</span><span class='hljl-n'>a</span><span class='hljl-oB'>-</span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>b</span><span class='hljl-oB'>-</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-oB'>^</span><span class='hljl-ni'>2</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>eqn</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>,</span><span class='hljl-n'>a</span><span class='hljl-p'>,</span><span class='hljl-n'>b</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>L</span>
</pre>
<div class="well well-sm">\begin{equation*}- L + \sqrt{x^{2} + y^{2}} + \sqrt{\left(a - x\right)^{2} + \left(b - y\right)^{2}}\end{equation*}</div>
<pre class='hljl'>
<span class='hljl-n'>eqn1</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-nf'>eqn</span><span class='hljl-p'>(</span><span class='hljl-n'>y</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>)),</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>eqn2</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>solve</span><span class='hljl-p'>(</span><span class='hljl-n'>eqn1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-nf'>diff</span><span class='hljl-p'>(</span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>))[</span><span class='hljl-ni'>1</span><span class='hljl-p'>]</span><span class='hljl-t'>
</span><span class='hljl-n'>dydx</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>eqn2</span><span class='hljl-p'>(</span><span class='hljl-nf'>u</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-n'>y</span><span class='hljl-p'>)</span>
</pre>
<div class="well well-sm">\begin{equation*}\frac{a \sqrt{x^{2} + y^{2}} - x \sqrt{x^{2} + y^{2}} - x \sqrt{\left(a - x\right)^{2} + \left(b - y\right)^{2}}}{- b \sqrt{x^{2} + y^{2}} + y \sqrt{x^{2} + y^{2}} + y \sqrt{\left(a - x\right)^{2} + \left(b - y\right)^{2}}}\end{equation*}</div>
<p>We are looking for when the tangent line has 0 slope, or when <code>dydx</code> is 0:</p>
<pre class='hljl'>
<span class='hljl-n'>cps</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>solve</span><span class='hljl-p'>(</span><span class='hljl-n'>dydx</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>x</span><span class='hljl-p'>)</span>
</pre>
<div class="well well-sm">\[ \left[ \begin{array}{r}\frac{a y}{b}\\\frac{a y}{- b + 2 y}\end{array} \right] \]</div>
<p>There are two answers, as we could guess from the graph, but we want the one for the smallest value of <span class="math">$y$</span>, which is the second.</p>
<p>The values of dydx depend on any pair (x,y), but our solution must also satisfy the equation. That is for our value of x, we need to find the corresponding y. This should be possible by substituting:</p>
<pre class='hljl'>
<span class='hljl-n'>eqn1</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>eqn</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-n'>cps</span><span class='hljl-p'>[</span><span class='hljl-ni'>2</span><span class='hljl-p'>])</span>
</pre>
<div class="well well-sm">\begin{equation*}- L + \sqrt{\frac{a^{2} y^{2}}{\left(- b + 2 y\right)^{2}} + y^{2}} + \sqrt{\left(b - y\right)^{2} + \left(- \frac{a y}{- b + 2 y} + a\right)^{2}}\end{equation*}</div>
<p>We would try to solve <code>eqn1</code> for <code>y</code> with <code>solve(eqn1, y)</code>, but <code>SymPy</code> can't complete this problem. Instead, we will approach this numerically using <code>find_zero</code> from the <code>Roots</code> package. We make the above a function of <code>y</code> alone</p>
<pre class='hljl'>
<span class='hljl-n'>eqn2</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>eqn1</span><span class='hljl-p'>(</span><span class='hljl-n'>a</span><span class='hljl-oB'>=></span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-oB'>=></span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>L</span><span class='hljl-oB'>=></span><span class='hljl-ni'>10</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>ystar</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>find_zero</span><span class='hljl-p'>(</span><span class='hljl-n'>eqn2</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-ni'>3</span><span class='hljl-p'>)</span>
</pre>
<pre class="output">
-3.269696007084728
</pre>
<p>Okay, now we need to put this value back into our expression for the <code>x</code> value and also substitute in for the parameters:</p>
<pre class='hljl'>
<span class='hljl-n'>xstar</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>N</span><span class='hljl-p'>(</span><span class='hljl-n'>cps</span><span class='hljl-p'>[</span><span class='hljl-ni'>2</span><span class='hljl-p'>](</span><span class='hljl-n'>y</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-n'>ystar</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>a</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>L</span><span class='hljl-t'> </span><span class='hljl-oB'>=></span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>))</span>
</pre>
<pre class="output">
1.0282718234751367
</pre>
<p>Our minimum is at <code>(xstar, ystar)</code>, as this graphic shows:</p>
<pre class='hljl'>
<span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>F</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>,</span><span class='hljl-n'>y</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>tl</span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-p'>)</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>ystar</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-ni'>0</span><span class='hljl-t'> </span><span class='hljl-oB'>*</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>x</span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>xstar</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-nf'>Eq</span><span class='hljl-p'>(</span><span class='hljl-n'>F</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>10</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>xlims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>4</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>7</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>ylims</span><span class='hljl-oB'>=</span><span class='hljl-p'>(</span><span class='hljl-oB'>-</span><span class='hljl-ni'>10</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>10</span><span class='hljl-p'>))</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot!</span><span class='hljl-p'>(</span><span class='hljl-n'>tl</span><span class='hljl-p'>)</span>
</pre>
<img src="data:image/png;base64,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" />
<p>If you watch the video linked to above, you will see that the surprising fact here is the resting point is such that the angles formed by the rope are the same. Basically this makes the tension in both parts of the rope equal, so there is a static position (if not static, the ring would move and not end in the final position). We can verify this fact numerically by showing the arctangents of the two triangles are the same up to a sign (and slight round-off error):</p>
<pre class='hljl'>
<span class='hljl-n'>a0</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b0</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-ni'>0</span><span class='hljl-p'>,</span><span class='hljl-ni'>0</span><span class='hljl-t'> </span><span class='hljl-cs'># the foci of the ellipse are (0,0) and (3,3)</span><span class='hljl-t'>
</span><span class='hljl-n'>a1</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>b1</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-ni'>3</span><span class='hljl-t'>
</span><span class='hljl-nf'>atan</span><span class='hljl-p'>((</span><span class='hljl-n'>b0</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>ystar</span><span class='hljl-p'>)</span><span class='hljl-oB'>/</span><span class='hljl-p'>(</span><span class='hljl-n'>a0</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>xstar</span><span class='hljl-p'>))</span><span class='hljl-t'> </span><span class='hljl-oB'>+</span><span class='hljl-t'> </span><span class='hljl-nf'>atan</span><span class='hljl-p'>((</span><span class='hljl-n'>b1</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>ystar</span><span class='hljl-p'>)</span><span class='hljl-oB'>/</span><span class='hljl-p'>(</span><span class='hljl-n'>a1</span><span class='hljl-t'> </span><span class='hljl-oB'>-</span><span class='hljl-t'> </span><span class='hljl-n'>xstar</span><span class='hljl-p'>))</span><span class='hljl-t'> </span><span class='hljl-cs'># 0</span>
</pre>
<pre class="output">
0.0
</pre>
<p>Now, were we lucky and just happened to take <span class="math">$a=3$</span>, <span class="math">$b = 3$</span> in such a way to make this work? Well, no. But convince yourself by doing the above for different values of <span class="math">$b$</span>.</p>
<h2>Questions</h2>
<h6>Question</h6>
<p>Is <span class="math">$(1,1)$</span> on the graph of</p>
<p class="math">\[
~
x^2 - 2xy + y^2 = 1?
~
\]</p>
<form name="WeaveQuestion" data-id="IX3rsT6M" data-controltype="radio">
<div class="form-group ">
<div class="radio">
<label>
<input type="radio" name="radio_IX3rsT6M" value="1"><div class="markdown"><p>Yes</p>
</div>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="radio_IX3rsT6M" value="2"><div class="markdown"><p>No</p>
</div>
</label>
</div>
<div id="IX3rsT6M_message"></div>
</div>
</form>
<script text="text/javascript">
$("input:radio[name='radio_IX3rsT6M']").on("change", function() {
correct = this.value == 2;
if(correct) {
$("#IX3rsT6M_message").html("<div class='alert alert-success'><span class='glyphicon glyphicon-thumbs-up'> Correct</span></div>");
} else {
$("#IX3rsT6M_message").html("<div class='alert alert-warning'><span class='glyphicon glyphicon-thumbs-down'> Incorrect</span></div>");
}
});
</script>
<h6>Question</h6>
<p>For the equation</p>
<p class="math">\[
~
x^2y + 2y - 4 x = 0,
~
\]</p>
<p>if <span class="math">$x=4$</span>, what is a value for <span class="math">$y$</span> such that <span class="math">$(x,y)$</span> is a point on the graph of the equation?</p>
<form name='WeaveQuestion' data-id='mdhFgLDR' data-controltype='numeric'>
<div class='form-group '>
<div class='controls'>
<div class="input-group">
<input id="mdhFgLDR" type="number" class="form-control">
</div>
<div id='mdhFgLDR_message'></div>
</div>
</div>
</form>
<script text='text/javascript'>
$('#mdhFgLDR').on('change', function() {
correct = Math.abs(this.value - 0.8888888888888888) <= 0.001;
if(correct) {
$('#mdhFgLDR_message').html('<div class="alert alert-success"><span class="glyphicon glyphicon-thumbs-up"> Correct</span></div>');
} else {
$('#mdhFgLDR_message').html('<div class="alert alert-danger"><span class="glyphicon glyphicon-thumbs-down"> Incorrect</span></div>');
}
});
</script>
<h6>Question</h6>
<p>For the equation</p>
<p class="math">\[
~
(y-5)\cdot \cos(4\cdot \sqrt{(x-4)^2 + y^2)} = x\cdot\sin(2\sqrt{x^2 + y^2})
~
\]</p>
<p>is the point <span class="math">$(5,0)$</span> a solution?</p>
<form name="WeaveQuestion" data-id="WTWkjhlf" data-controltype="radio">
<div class="form-group ">
<div class="radio">
<label>
<input type="radio" name="radio_WTWkjhlf" value="1"><div class="markdown"><p>Yes</p>
</div>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="radio_WTWkjhlf" value="2"><div class="markdown"><p>No</p>
</div>
</label>
</div>
<div id="WTWkjhlf_message"></div>
</div>
</form>
<script text="text/javascript">
$("input:radio[name='radio_WTWkjhlf']").on("change", function() {
correct = this.value == 2;
if(correct) {
$("#WTWkjhlf_message").html("<div class='alert alert-success'><span class='glyphicon glyphicon-thumbs-up'> Correct</span></div>");