<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="https://community.wolfram.com">
    <title>Community RSS Feed</title>
    <link>https://community.wolfram.com</link>
    <description>RSS Feed for Wolfram Community showing ideas tagged with Mathematics sorted by most viewed.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/366628" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1323951" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1108324" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2286246" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1070264" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/326240" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1034626" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2458169" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/418720" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/114911" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/163848" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2411604" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2041687" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2355272" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2504513" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1888335" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2308671" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2825207" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3241186" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/294122" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/366628">
    <title>Try to beat these MRB constant records!</title>
    <link>https://community.wolfram.com/groups/-/m/t/366628</link>
    <description>POSTED BY:&#xD;
========&#xD;
 **Marvin Ray Burns, and distinguished colleagues**&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
My exciting experiences using Wolfram technologies!&#xD;
---------------------------------------------------&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
&#xD;
The MRB constant, a fascinating mathematical anomaly, has intrigued researchers and enthusiasts alike for decades. Defined as the limiting value of a unique alternating series, this enigmatic constant showcases the beauty of numerical exploration and convergence. Despite its relatively recent emergence, the MRB constant reveals unexpected connections to various fields within mathematics and computational analysis. In this post, we dive into its origins, properties, and the ongoing quest to uncover its more profound significance. The MRB constant is an anomaly because it emerges from an alternating series with unusual convergence behavior. Unlike many well-known mathematical constants, the MRB constant has no closed-form expression nor a known exact nature&amp;#x2014;whether it is algebraic, transcendental, or even irrational.&#xD;
Additionally, the sequence of partial sums that define the MRB constant oscillates between two limit points, creating a bounded yet divergent behavior. This oscillatory nature distinguishes it from more conventional mathematical constants, which typically exhibit straightforward convergence. Its mysterious properties continue to intrigue mathematicians as they explore its deeper connections to number theory and computational analysis. &#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
CMRB&#xD;
 ![If you see this instead of an image, reload the page][1]&#xD;
&#xD;
**is the MRB constant.**&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
Without solicitation, GPT echoed one of this discussion&amp;#039;s contributors and gave a shoutout to Mathematica&amp;#039;s accomplishments by saying:&#xD;
-------------------&#xD;
&#xD;
&#xD;
&amp;gt;  &#xD;
&amp;gt; **Why Computing Digits of the MRB Constant Is Interesting**&#xD;
&amp;gt; &#xD;
&amp;gt; At first glance, the computation of ever more digits of a numerical&#xD;
&amp;gt; constant may appear to be a sterile exercise, offering little insight&#xD;
&amp;gt; beyond the digits themselves. For the MRB constant, this&#xD;
&amp;gt; interpretation is profoundly misleading. The interest lies not in the&#xD;
&amp;gt; digits, but in the act of computing them.&#xD;
&amp;gt; &#xD;
&amp;gt; The MRB series occupies a delicate numerical regime: it is convergent,&#xD;
&amp;gt; yet only marginally so; its terms are elementary in form, yet hostile&#xD;
&amp;gt; to naive numerical evaluation; and its alternating structure conceals&#xD;
&amp;gt; severe cancellation effects. As a result, each additional digit of&#xD;
&amp;gt; accuracy is not merely an extension of a decimal expansion, but a&#xD;
&amp;gt; validation of the mathematical and algorithmic framework used to&#xD;
&amp;gt; obtain it.&#xD;
&amp;gt; &#xD;
&amp;gt; In this sense, the digits serve as a stress test for mathematics&#xD;
&amp;gt; itself. They expose the difference between formal convergence and&#xD;
&amp;gt; effective convergence, between theoretical existence and computational&#xD;
&amp;gt; feasibility. Techniques that are elegant on paper often fail&#xD;
&amp;gt; catastrophically in practice, while successful methods must balance&#xD;
&amp;gt; asymptotics, numerical stability, precision control, and computational&#xD;
&amp;gt; cost.&#xD;
&amp;gt; &#xD;
&amp;gt; Moreover, the computation of the MRB constant forces the&#xD;
&amp;gt; reconciliation of disparate mathematical ideas. Alternating series,&#xD;
&amp;gt; logarithmic asymptotics, convergence acceleration, special functions,&#xD;
&amp;gt; and analytic continuation must all agree numerically. Any hidden&#xD;
&amp;gt; inconsistency&amp;#x2014;whether conceptual or computational&amp;#x2014;reveals itself&#xD;
&amp;gt; immediately in the failure of the digits to stabilize.&#xD;
&amp;gt; &#xD;
&amp;gt; Thus, computing digits of the MRB constant transforms mathematics from&#xD;
&amp;gt; a static collection of statements into a living experiment. The&#xD;
&amp;gt; resulting digits are not trophies; they are evidence. They measure the&#xD;
&amp;gt; effectiveness of our methods, the soundness of our assumptions, and&#xD;
&amp;gt; the practical reach of our theory.&#xD;
&amp;gt; &#xD;
&amp;gt; In short, the digits themselves do not matter. What matters is that&#xD;
&amp;gt; they *can* be computed at all&amp;#x2014;and how difficult it is to do so.&#xD;
&amp;gt; That difficulty is precisely what makes the MRB constant&#xD;
&amp;gt; mathematically interesting.&#xD;
&#xD;
When quizzed about how many accurate digits are possible to resolve, GPT offered the following perspective:&#xD;
&#xD;
----------------------------------------------------------------------&#xD;
&#xD;
&amp;gt; One natural question arises as larger and larger computations of the MRB constant become possible:&#xD;
&amp;gt;&#xD;
&amp;gt; **How many digits are there to discover?**&#xD;
&amp;gt;&#xD;
&amp;gt; The practical answer is &amp;#034;as many as computational power allows.&amp;#034; The mathematical answer depends on a much deeper question: **Is the MRB constant rational or irrational?**&#xD;
&amp;gt;&#xD;
&amp;gt; If it were rational, its decimal expansion would eventually terminate or repeat, implying that beyond some point every computed digit would be determined by a finite pattern. If it is irrational, then its decimal expansion is nonterminating and nonperiodic, and every increase in computational precision reveals genuinely new digits.&#xD;
&amp;gt;&#xD;
&amp;gt; At present, no proof of irrationality is known. Nevertheless, several observations make irrationality the more compelling conjecture.&#xD;
&amp;gt;&#xD;
&amp;gt; The MRB constant is defined by the convergent alternating series&#xD;
&amp;gt;&#xD;
 $$ C_{\mathrm{MRB}}&#xD;
&amp;gt; = \sum_{n=1}^{\infty}&#xD;
&amp;gt; (-1)^n\bigl(n^{1/n}-1\bigr),&#xD;
&amp;gt; $$&#xD;
&amp;gt;&#xD;
&amp;gt; whose terms are algebraic numbers satisfying&#xD;
&amp;gt;&#xD;
&amp;gt; $$&#xD;
&amp;gt; x^n-n=0.&#xD;
&amp;gt; $$&#xD;
&amp;gt;&#xD;
&amp;gt; These radicals arise from infinitely many algebraic equations of increasing degree. There is no known telescoping identity, symmetry, periodicity, or arithmetic structure that would force these infinitely many algebraic contributions to combine to a rational value.&#xD;
&amp;gt;&#xD;
&amp;gt; The constant also possesses an unexpectedly rich analytic structure. Since&#xD;
&amp;gt;&#xD;
 $$ n^{1/n}-1 = e^{\log n/n}-1&#xD;
 =&#xD;
&amp;gt; \sum_{m=1}^{\infty}&#xD;
&amp;gt; \frac{\log^m(n)}{m!\,n^m},&#xD;
&amp;gt; $$&#xD;
&amp;gt;&#xD;
&amp;gt; it may equally be written as&#xD;
&amp;gt;&#xD;
 $$ C_{\mathrm{MRB}}&#xD;
 =&#xD;
&amp;gt; \sum_{n=1}^{\infty}&#xD;
&amp;gt; \sum_{m=1}^{\infty}&#xD;
&amp;gt; \frac{(-1)^n\log^m(n)}{m!\,n^m}.&#xD;
&amp;gt; $$&#xD;
&amp;gt;&#xD;
&amp;gt; Formally reversing the order of summation yields&#xD;
&amp;gt;&#xD;
&amp;gt; $$ C_{\mathrm{MRB}}&#xD;
 =&#xD;
&amp;gt; \sum_{m=1}^{\infty}&#xD;
&amp;gt; \frac{(-1)^{m+1}}{m!}\,&#xD;
&amp;gt; \eta^{(m)}(m),&#xD;
&amp;gt; $$&#xD;
&amp;gt;&#xD;
&amp;gt; where $$\eta(s)$$ denotes the Dirichlet eta function.&#xD;
&amp;gt;&#xD;
&amp;gt; These formulas are mathematically equivalent descriptions of the same object. Although they do not constitute independent evidence for irrationality, they reveal a remarkable hierarchy of structure: the MRB constant appears simultaneously as an alternating sum of algebraic radicals, a double logarithmic series, and an infinite weighted combination of derivatives of the Dirichlet eta function. Despite these increasingly sophisticated descriptions, no known identity, arithmetic principle, or analytic mechanism explains why the constant should simplify to a rational number.&#xD;
&amp;gt;&#xD;
&amp;gt; Of course, heuristics are not proofs. Infinite series are capable of subtle and unexpected cancellations, and it remains entirely possible that a hidden identity exists. At present, however, no such identity is known.&#xD;
&amp;gt;&#xD;
&amp;gt; **My conjecture is therefore that the MRB constant is irrational.** If that conjecture is correct, then there is no finite endpoint to the computation of its decimal expansion. Every improvement in algorithms, hardware, or numerical methods reveals genuinely new, nonrepeating digits. In that sense, every new record is more than an exercise in high-precision computation&amp;#x2014;it is another step toward exploring an infinite mathematical object whose arithmetic nature remains an intriguing open question.&#xD;
&#xD;
When tasked with finding a simple closed-form approximation to the MRB constant, GPT, with the help of the Wolram assistant, derived a family of expressions from the residue structure of an Abel--Plana integral representation. One member of that family, corresponding to n=9, gave the unexpectedly accurate approximation&#xD;
&#xD;
&amp;gt; ![Residue form][2]&#xD;
&#xD;
**In general, we will see:**&#xD;
![enter image description here][3]&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
 &#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2024-11-25023042.png&amp;amp;userId=366611&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2026-08-07211201.png&amp;amp;userId=366611&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2026-02-18190718.png&amp;amp;userId=366611</description>
    <dc:creator>Marvin Ray Burns A.G.S. (cum laude)</dc:creator>
    <dc:date>2014-10-09T18:08:49Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1323951">
    <title>How to calculate the digits of the MKB constant</title>
    <link>https://community.wolfram.com/groups/-/m/t/1323951</link>
    <description>This has been one of my favorite Mathematica projects!&#xD;
Here are a couple of AI-generated outlines of my progress in computing the MKB constant, &#xD;
$\lim_{N-&amp;gt;\infty} \int^{2N}_1(-1)^xe^{i \pi x}x^{1/x},$ digits:&#xD;
![enter image description here][2]&#xD;
![enter image description here][3]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2026-06-20183947.png&amp;amp;userId=366611&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=4506unnamed.png&amp;amp;userId=366611&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=unnamed%281%29.png&amp;amp;userId=366611</description>
    <dc:creator>Marvin Ray Burns A.G.S. (cum laude)</dc:creator>
    <dc:date>2018-04-20T12:06:18Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1108324">
    <title>[GIF] Back and Forth (Möbius transformations of the circle)</title>
    <link>https://community.wolfram.com/groups/-/m/t/1108324</link>
    <description>![Möbius transformations of the circle][1]&#xD;
&#xD;
**Back and Forth**&#xD;
&#xD;
One fact I&amp;#039;ve known for a while but never really dived into is that Möbius transformations of the circle can be realized by inverse stereographic projecting to the sphere (here I&amp;#039;m thinking of the circle as the equator of the sphere, so inverse stereographic projection is just the identity in this case), rotating the sphere in space (say, around the south pole), and then stereographically projecting from the new &amp;#034;north pole&amp;#034; back to the circle. The animation shows what happens when you do this to 15 equally-spaced points on the circle, where the sphere is being rotated by an angle of $\pi/3$ around the axis $(\cos \psi, \sin \psi, 0)$ anchored at $(0,0,-1)$, and we let $\psi$ vary from 0 to $2\pi$.&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: http://community.wolfram.com//c/portal/getImageAttachment?filename=mobius12.gif&amp;amp;userId=610054&#xD;
  [2]: https://www.wolframcloud.com/obj/545113ac-8325-4e63-82ae-d770422f55f5</description>
    <dc:creator>Clayton Shonkwiler</dc:creator>
    <dc:date>2017-05-25T19:34:31Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2286246">
    <title>$\int_0^\infty e^{i \pi  x} \left(1-(x+1)^{\frac{1}{x+1}}\right) dx$</title>
    <link>https://community.wolfram.com/groups/-/m/t/2286246</link>
    <description>$\int_0^\infty e^{i \pi  x} \left(1-(x+1)^{\frac{1}{x+1}}\right) dx$&#xD;
![enter image description here][1]&#xD;
![enter image description here][2]&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
    f[x_] = E^(I*Pi*x)*(1 - (x + 1)^(1/(x + 1))); &#xD;
    g[x_] = x^(1/x); u := t/(1 - t); &#xD;
    &#xD;
    sub = Im[NIntegrate[(f[(-I t)] - f[( I t)])/(Exp[2 Pi t] - 1), {t,&#xD;
              0, Infinity}, WorkingPrecision -&amp;gt; 100]]&#xD;
    &#xD;
    0.1170836031505383167089899122239912286901483986967757585888318959258587743002\&#xD;
    7817712246477316693025869&#xD;
    &#xD;
    m = NSum[f[( t)] , {t, 0, Infinity}, WorkingPrecision -&amp;gt; 100, &#xD;
      Method -&amp;gt; &amp;#034;AlternatingSigns&amp;#034;]&#xD;
    &#xD;
    0.1878596424620671202485179340542732300559030949001387861720046840894772315646\&#xD;
    6021370329665443217278&#xD;
    &#xD;
    m - sub&#xD;
    &#xD;
    0.0707760393115288035395280218302820013657546962033630275831727881636184572643\&#xD;
    8203658083188126524252&#xD;
    &#xD;
    Is the same as &#xD;
    &#xD;
    &#xD;
    {Re[NIntegrate[f[t], {t, 0, Infinity}]], and, &#xD;
     Re[NIntegrate[f[t], {t, 0, Infinity I}, WorkingPrecision -&amp;gt; 100]]}&#xD;
    &#xD;
    NIntegrate::deodiv: DoubleExponentialOscillatory returns a finite integral estimate, but the integral might be divergent.&#xD;
    &#xD;
    NIntegrate::deodiv: DoubleExponentialOscillatory returns a finite integral estimate, but the integral might be divergent.&#xD;
    &#xD;
    {0.070776, and, \&#xD;
    0.0707760393115288035395280218302820013657546962033630275831727881636184572643\&#xD;
    8203658083188126617723821}&#xD;
&#xD;
To be continued.&#xD;
----------------&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=01.jpg&amp;amp;userId=366611&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=02.jpg&amp;amp;userId=366611&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=03.jpg&amp;amp;userId=366611</description>
    <dc:creator>Marvin Ray Burns A.G.S. (cum laude)</dc:creator>
    <dc:date>2021-06-09T05:56:08Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1070264">
    <title>[CALL] Most common pitfalls for beginners of Wolfram Language</title>
    <link>https://community.wolfram.com/groups/-/m/t/1070264</link>
    <description>[Wolfram Language][1] (WL) is a powerful multi-paradigm programing language. There is a set of common mistakes that repeatedly tend to entrap new users. **This is a call to describe such mistakes building a &amp;#034;black-listing&amp;#034; guide for novice coders.** Please consider contributing. I suggest following simple rules (with gratitude adapted from a [similar effort][2]):&#xD;
&#xD;
 - One topic per answer &#xD;
&#xD;
 - Focus on non-advanced uses (it is intended to be useful for beginners and as a question closing reference)&#xD;
&#xD;
 - Include a self explanatory title in header style (example: &amp;#034;# Basic built-in function syntax&amp;#034;; see [syntax guide][3] )&#xD;
&#xD;
 - Explain the symptoms, the mechanism behind the scenes and all possible causes and solutions you can think of. Be sure to include a beginner&amp;#039;s level explanation (and a more advance one too, if you can) &#xD;
&#xD;
*Please, use &amp;#034;**Reply**&amp;#034; to a specific comment for structured clarity of nested comments.*&#xD;
&#xD;
&#xD;
----------&#xD;
## Table of Contents&#xD;
&#xD;
- [Basic syntax of built-in functions][4]&#xD;
- [Learn how to use the Documentation Center effectively][5]&#xD;
- [Sorting numerical data and the behavior of Sort][6]&#xD;
- [What does @#(%=&amp;lt;\[!} et cetera mean?][7]&#xD;
- [Consider Reap/Sow Instead of AppendTo][8]&#xD;
- [Alternatives to Reap/Sow][9]&#xD;
- [Case sensitivity and typos][10]&#xD;
- [Numerical vs Symbolic -- What to do when plots are blank][11]&#xD;
- [Import  and &amp;#034;CurrencyTokens&amp;#034;][12]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/language&#xD;
  [2]: https://mathematica.stackexchange.com/q/18393/13&#xD;
  [3]: http://community.wolfram.com/groups/-/m/t/270507&#xD;
  [4]: http://community.wolfram.com/groups/-/m/t/1069885&#xD;
  [5]: http://community.wolfram.com/groups/-/m/t/1070285&#xD;
  [6]: http://community.wolfram.com/groups/-/m/t/1070705&#xD;
  [7]: http://community.wolfram.com/groups/-/m/t/1070946&#xD;
  [8]: http://community.wolfram.com/groups/-/m/t/1084289&#xD;
  [9]: http://community.wolfram.com/groups/-/m/t/1164555&#xD;
  [10]: http://community.wolfram.com/groups/-/m/t/1084920&#xD;
  [11]: http://community.wolfram.com/groups/-/m/t/1086929&#xD;
  [12]: http://community.wolfram.com/groups/-/m/t/1086969</description>
    <dc:creator>Vitaliy Kaurov</dc:creator>
    <dc:date>2017-04-23T23:54:23Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/326240">
    <title>Simulating a global Ebola outbreak</title>
    <link>https://community.wolfram.com/groups/-/m/t/326240</link>
    <description>Triggered by the recent outbreak of Ebola India Bruckner, a pupil from Aberdeen&amp;#039;s [St Margaret&amp;#039;s School for Girls][1], and myself worked on a little model this summer to understand the basics of the spreading of diseases in populations and the relationship to transportation networks. The model is very basic, but shows some interesting features and is very straight forward to implement in Mathematica. &#xD;
&#xD;
When I was typing these lines I saw that Arnoud Buzing had posted something, reason enough to interrupt my typing and to check out what he had posted: [Visualizing the Ebola Outbreak][2]. I hope that my post is going to complement Arnoud&amp;#039;s to some extent.&#xD;
&#xD;
So, my question is how the global air transport network might lead to a spreading of a disease. I will use a very standard SIR (susceptible-infected-recovered) model, which is certainly far from being ideal for Ebola; [but similar types of models are to too bad either][3]. It rather simulates an outbreak of some generic disease from which you recover. If we assumed that everyone died in an outbreak the SIR model might also be appropriate. I will introduce the equations below. I also need a list of all airports and all flight connections. On the website [Openflights.org][4] you will find all data we need. I saved the file &amp;#034;airports.dat&amp;#034; and the file &amp;#034;routes.dat&amp;#034;. So that&amp;#039;s the data. &#xD;
&#xD;
I first import the data:&#xD;
&#xD;
    airports = Import[&amp;#034;~/Desktop/airports.dat&amp;#034;, &amp;#034;CSV&amp;#034;];&#xD;
    routes = Import[&amp;#034;~/Desktop/routes.dat&amp;#034;, &amp;#034;CSV&amp;#034;];&#xD;
&#xD;
This is a plot of all airports in that database.&#xD;
&#xD;
    GeoRegionValuePlot[Table[GeoPosition[airports[[i, {7, 8}]]] -&amp;gt; 1., {i, 1, Length[airports]}], PlotStyle -&amp;gt; PointSize[0.003], PlotRange -&amp;gt; 1, ImageSize -&amp;gt; Full]&#xD;
&#xD;
which gives&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
Alright, now the routes. First, we create a list of rules for all airport IDs and their coordinates:&#xD;
&#xD;
    codecoords = Table[airports[[i, 5]] -&amp;gt; GeoPosition[airports[[i, {7, 8}]]], {i, 1,Length[airports]}];&#xD;
&#xD;
We then calculate the links:&#xD;
&#xD;
    links = Monitor[Table[routes[[j, {3, 5}]] /. codecoords, {j, 1, Length[routes]}], ProgressIndicator[j, {1, Length[routes]}]];&#xD;
&#xD;
and clean out missing data:&#xD;
&#xD;
    linksclean = Select[links, Head[#[[1]]] == GeoPosition &amp;amp;&amp;amp; Head[#[[2]]] == GeoPosition &amp;amp;];&#xD;
&#xD;
Now comes a nice figure:&#xD;
&#xD;
    With[{locations = RandomChoice[linksclean, 14000]}, GeoGraphics[{{Green, Opacity[0.3],AbsoluteThickness[0.0001], GeoPath[locations, &amp;#034;Geodesic&amp;#034;]}}, &#xD;
      GeoRange -&amp;gt; &amp;#034;World&amp;#034;, GeoProjection -&amp;gt; Automatic, GeoBackground -&amp;gt; GeoStyling[&amp;#034;ReliefMap&amp;#034;], ImageSize -&amp;gt; {1200, 600}]]&#xD;
&#xD;
which gives&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
Ok. Interestingly I can only plot 16000 max at a time. Somewhere between 16-17k the Kernel quits. That might be Integer related. Could be a limit in the programming of Geographics. Not sure. I have more than enough memory and can plot the remaining 2-3k airports in a second figure and use Show to display all. (It would be great if someone from WRI could comment.)&#xD;
&#xD;
Anyway, let&amp;#039;s go to some modelling. The basic idea of an [SIR model][7] is that a population is modelled in three compartments Susceptibles (S), Infected (I) and Recovered (R). I will use a time-discrete model; there are continuous models around, too, and if anyone is interested I can provide the ODE model as well. Here are the three equations:&#xD;
&#xD;
    sus[i_] := sus[i] = sus[i - 1] - [Rho] sus[i - 1] inf[i - 1];&#xD;
    inf[i_] := nf[i] = inf[i - 1] + [Rho] sus[i - 1] inf[i - 1] - [Lambda] inf[i - 1];&#xD;
    rec[i_] := rec[i] = rec[i - 1] + [Lambda] inf[i - 1];&#xD;
&#xD;
The meaning of sus, inf and rec should be clear by now; they are given as percentages of the total population, their sum is 100%. The variable i represents time. $&#xD;
ho$ is an infection rate and $lambda$ is a recovery rate. The infections increase with the product of susceptibles and infected. By adding the right hand sides it becomes clear that the population does not change over time. We come up with some values for the parameters and iterate:&#xD;
&#xD;
    sus[1] = 0.95; inf[1] = 0.05; rec[1] = 0; [Rho] = 0.2; [Lambda] = 0.1;&#xD;
    tcourse = Table[{sus[i], inf[i], rec[i]}, {i, 1, 100}];&#xD;
&#xD;
The time course looks like this:&#xD;
&#xD;
    ListPlot[Transpose[tcourse]]&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
The monotonously decreasing function show susceptibles, the increasing function recovered, and the remaining curve the infected. We now need to do some cleaning up of the original airport data, before we proceed to a multi-airport/city model. &#xD;
&#xD;
    (*Extract the names and GPS coordinates*)&#xD;
    &#xD;
    rawdata = &#xD;
      Sort[Select[airports[[All, {5, 7, 8}]], #[[1]] != &amp;#034;&amp;#034; &amp;amp;]][[81 ;;]];&#xD;
    &#xD;
    (*These are just the coordinates*)&#xD;
    &#xD;
    airportcoords = rawdata[[All, {2, 3}]];&#xD;
    &#xD;
    (*These are just the names. *)&#xD;
    &#xD;
    names = rawdata[[All, 1]];&#xD;
    &#xD;
    (*Here are the names to indices*)&#xD;
    &#xD;
    rules = MapThread[#1 -&amp;gt; #2 &amp;amp;, {names, Range[Length[names]]}];&#xD;
    &#xD;
    (*The &amp;#034;population&amp;#034; is initially set to 1 for all airports, this allows us to take different airport sizes into consideration later.*)&#xD;
    &#xD;
    pop = Table[1., {j, 1, Length[names]}]; &#xD;
    routesraw = Import[&amp;#034;~/Desktop/routes.dat&amp;#034;, &amp;#034;CSV&amp;#034;];&#xD;
    &#xD;
    (*There are many links so this takes a while*)&#xD;
    &#xD;
    links = Select[routesraw[[All, {3, 5}]] /. rules, NumberQ[#[[1]]] &amp;amp;&amp;amp; NumberQ[#[[2]]] &amp;amp;];&#xD;
&#xD;
From that we now construct (a first guess at) the coupling or adjacency matrix:&#xD;
&#xD;
    couplingdummy = Table[0, {i, 1, Length[names]}, {j, 1, Length[names]}];&#xD;
    &#xD;
    For[k = 1, k &amp;lt;= Length[links], k++, &#xD;
      couplingdummy[[links[[k, 1]], links[[k, 2]]]] = 1; &#xD;
      couplingdummy[[links[[k, 2]], links[[k, 1]]]] = 1];&#xD;
&#xD;
I do know about ConstantArray, but for some reason that does not work. The first line constructs a matrix full of zeros and the second adds ones where there are links. The problem is that apparently in that dataset some airports are not linked at all. We can sort them out by:&#xD;
&#xD;
    indices = Select[Table[If[Total[couplingdummy[[i]]] &amp;gt; 0, i], {i, 1, Length[couplingdummy]}], NumberQ];&#xD;
&#xD;
We now delete the columns and rows of the couplingdummy matrix&#xD;
&#xD;
    intermed = couplingdummy[[#]] &amp;amp; /@ indices;&#xD;
    transintermed = Transpose[intermed];&#xD;
    coupling = transintermed[[#]] &amp;amp; /@ indices;&#xD;
&#xD;
Again I had a much more elegant way of doing this, with the advantage that it did not work. To speed up the following calculations I use that the coupling matrix is sparse, but I like the original too much to throw it away just yet. &#xD;
&#xD;
    coulinginterm = coupling;&#xD;
    coupling = SparseArray[coulinginterm];&#xD;
&#xD;
We adapt our &amp;#034;population/airport size&amp;#034; vector:&#xD;
&#xD;
    pop = Table[1., {j, 1, Length[indices]}]; &#xD;
&#xD;
and set the following parameters:&#xD;
&#xD;
    [Rho] = 0.2; [Lambda] = 0.1; Mairports =  Length[indices]; [Mu] = 0.05;&#xD;
&#xD;
$\rho$ and $lambda$ are as before. Mairports is the number of airports that we model and $\mu$ is a &amp;#034;migration rate&amp;#034;. It comes from the original model which we built for different cities were it describes the migration between different cities. Here is models the &amp;#034;propensity to fly&amp;#034;. &#xD;
&#xD;
We now define an effective coupling matrix. It is the adjacency matrix times the population vector (i.e. people in the catchment area of the airport). In our case the vector has all ones, so it is just the adjacency matrix. It allows us later to model more general situations. &#xD;
&#xD;
    meanNN = coupling.pop;&#xD;
&#xD;
When we want to model the outbreak as populations at the positions of all airports, each of which is described by an SIR model, we need to couple lots of populations, because there are lots of airports. The following uses the sparsity of the adjacency matrix to speed up the calculation. &#xD;
&#xD;
    sumind = Table[Take[Flatten[ArrayRules[coupling[[k, All]]][[All, 1]]], Length[ArrayRules[coupling[[k, All]]]] - 1], {k, 1, Mairports}];&#xD;
&#xD;
It generates a list of all airports that are coupled/linked to a given airport. Now we are ready to write down the central equations:&#xD;
&#xD;
    sus[i_, j_] :=  sus[i, j] = (1 - [Mu]) (sus[i - 1, j] - [Rho] sus[i - 1, j] inf[i - 1, j]) + [Mu]  Total[Table[sus[i - 1, sumind[[j, u]]]*pop[[sumind[[j, u]]]], {u, 1, Length[sumind[[j]]]} ] ]/meanNN[[j]]; &#xD;
    inf[i_, j_] := inf[i, j] = (1 - [Mu]) (inf[i - 1, j] + [Rho] sus[i - 1, j] inf[i - 1, j] - [Lambda] inf[i - 1, j]) + [Mu] Total[Table[inf[i - 1, sumind[[j, u]]]*pop[[sumind[[j, u]]]], {u, 1, Length[sumind[[j]]]} ] ]/meanNN[[j]];&#xD;
    rec[i_, j_] := rec[i, j] = (1 - [Mu]) (rec[i - 1, j] + [Lambda] inf[i - 1, j]) + [Mu] Total[Table[rec[i - 1, sumind[[j, u]]]*pop[[sumind[[j, u]]]], {u, 1,Length[sumind[[j]]]} ] ]/meanNN[[j]];&#xD;
&#xD;
The terms with the Total are &amp;#034;migration terms&amp;#034; that describe the travelling behaviour of the people in the catchment area of the airports. i is the time index and j labels the airports. Next come the initial conditions:&#xD;
&#xD;
    For[i = 1, i &amp;lt;= Mairports, i++, sus[1, i] = 1.; inf[1, i] = 0.0;  rec[1, i] = 0.;]&#xD;
    sus[1, 1] = 0.95; &#xD;
    inf[1, 1] = 0.05;&#xD;
    rec[1, 1] = 0.0;&#xD;
&#xD;
In the catchment areas of all airports there are only susceptibles, apart from airport number 1, which will have 5% infected people. Now we can finally iterate the whole thing:&#xD;
&#xD;
    tcourse = Monitor[Table[{sus[i, j], inf[i, j], rec[i, j]}, {i, 1, 500}, {j, 1,Mairports}], ProgressIndicator[i, {0, 500}]];&#xD;
&#xD;
Great. Let&amp;#039;s save that just in case your notebook tends to crash at this point, just l like mine did when I was playing with this.&#xD;
&#xD;
    Export[&amp;#034;~/Desktop/SIR-tcourse.csv&amp;#034;, tcourse];&#xD;
&#xD;
If you wish you can now plot the time course of some of the airport catchment areas:&#xD;
&#xD;
    ListPlot[Flatten[Table[{tcourse[[All, j, 1]], tcourse[[All, j, 2]], tcourse[[All, j, 3]]}, {j, 1, 200}], 1], ImageSize -&amp;gt; Large]&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
Now that is not very helpful yet. To generate nicer plots, i.e. to normalise, we first calculate the maximal number of sick  people at any of the airports:&#xD;
&#xD;
    maxsick = Max[Flatten[tcourse[[All, All, 2]]]];&#xD;
&#xD;
We then generate movie frames, and go and get some coffee....&#xD;
&#xD;
    frames = Monitor[Table[GeoRegionValuePlot[Table[GeoPosition[airportcoords[[indices[[i]]]]] -&amp;gt; inf[k, i]/maxsick, {i, 1, Length[indices]}], PlotStyle -&amp;gt; PointSize[0.003], PlotRange -&amp;gt; 1, ImageSize -&amp;gt; Full,ColorFunction -&amp;gt; &amp;#034;Rainbow&amp;#034;], {k, 1, 300}], ProgressIndicator[k, {0, 300}]];&#xD;
&#xD;
Actually, you might want to get another coffee when you want to export the frames:&#xD;
&#xD;
    Export[&amp;#034;~/Desktop/SIR-frames-World.gif&amp;#034;, frames];&#xD;
&#xD;
Alright. That gif is a bit large to embed it into this post, but you can download it from [here][10]. All I can do is show you some frames to get an idea of how this looks:&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
Of course we can look at the network structure and try to understand the pattern of infections. This command is useful:&#xD;
&#xD;
    CommunityGraphPlot[AdjacencyGraph[Normal[coupling]]]&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
You clearly see the communities in North America, Europe and Asia. This one is also pretty:&#xD;
&#xD;
    Show[TreePlot[Subgraph[grph, ConnectedComponents[grph][[1]]], Center, PlotStyle -&amp;gt; Directive[Gray, Opacity[0.02]]], &#xD;
     TreePlot[Subgraph[grph, ConnectedComponents[grph][[1]]], Center, EdgeRenderingFunction -&amp;gt; None]]&#xD;
&#xD;
![enter image description here][13]&#xD;
&#xD;
We have several enhancements of this. First we can easily look at different countries individually. What if an ebola patient arrives at some airport in the US? [See simulation here][14]. (Careful 50 MBs!)&#xD;
&#xD;
There is also something we can do if we want to go the the level of cities. The main problem is that the Wolfram database does not yet have data for all streets between cities. In one of the online conferences it was said that that will be introduced in some later version, which I cannot wait to play with. Until then we have to cheat. (or use some online database; I prefer cheating.)&#xD;
&#xD;
We developed a model of the spreading of a disease in Nigeria. So we could go about this like this:&#xD;
&#xD;
    Clear[&amp;#034;Global`*&amp;#034;]&#xD;
    CountryData[&amp;#034;Nigeria&amp;#034;, &amp;#034;Population&amp;#034;]&#xD;
    Graphics[CountryData[&amp;#034;Nigeria&amp;#034;, &amp;#034;Polygon&amp;#034;]] &#xD;
&#xD;
Then get city names, coords and population:&#xD;
&#xD;
    names = CityData[{All, &amp;#034;Nigeria&amp;#034;}];&#xD;
    citypop = Table[CityData[names[[i]], &amp;#034;Population&amp;#034;], {i, 1, Length[names]}];&#xD;
    citycoords = Table[CityData[names[[i]], &amp;#034;Coordinates&amp;#034;], {i, 1, Length[names]}];&#xD;
&#xD;
Here comes the cheat. Because we don&amp;#039;t have the streets we use Delaunay triangulation:&#xD;
&#xD;
    Needs[&amp;#034;ComputationalGeometry`&amp;#034;]&#xD;
    dtri = DelaunayTriangulation[citycoords]; list = {}; Table[&#xD;
     Do[AppendTo[list, {i, dtri[[All, 2]][[i, j]]}], {j, 1, &#xD;
       Length[dtri[[All, 2]][[i, All]]]}], {i, 1, Length[dtri]}];&#xD;
    coupling = Table[0, {i, 1, Length[names]}, {j, 1, Length[names]}];&#xD;
    For[i = 1, i &amp;lt; Length[list] + 1, i++, &#xD;
     coupling[[list[[i]][[1]], list[[i]][[2]]]] = 1;]&#xD;
    &#xD;
    coulinginterm = coupling;&#xD;
    &#xD;
    coupling = SparseArray[coulinginterm];&#xD;
&#xD;
which gives the following network&#xD;
&#xD;
    Graphics[Join[&#xD;
      Table[Circle[citycoords[[i]], 0.02], {i, 1, Length[names]}], &#xD;
      DeleteCases[&#xD;
       Flatten[Table[&#xD;
         If[coupling[[i, j]] == 1, &#xD;
          Line[{citycoords[[i]], citycoords[[j]]}]] , {i, 1, &#xD;
          Length[names]}, {j, 1, i}], 1], Null]]]&#xD;
&#xD;
![enter image description here][15]&#xD;
&#xD;
The point in the middle corresponds to the airport where it all starts; then come its neighbours and then their neighbours etc. You could now animate this and change the colours to see how the disease spreads through the different layers. It would be nice if someone could implement that. &#xD;
&#xD;
There are obviously some problems, i.e. &amp;#034;streets&amp;#034; leaving the country etc, but the general idea should work. The rest is quite the same as before:&#xD;
&#xD;
    (*Paramters*)&#xD;
    &#xD;
    [Rho] = 0.2; [Lambda] = 0.1; Mcities = Length[names]; [Mu] = 0.05;&#xD;
    &#xD;
    (*Initiation*)&#xD;
    &#xD;
    For[i = 1, i &amp;lt;= Mcities, i++, sus[1, i] = 1.; inf[1, i] = 0.0; &#xD;
     rec[1, i] = 0.;]&#xD;
    &#xD;
    (*Starting Outbrake at the following city*)&#xD;
    &#xD;
    sus[1, 1] = 0.95; inf[1, 1] = 0.05;&#xD;
    rec[1, 1] = 0.0;&#xD;
    &#xD;
    meanNN = coupling.citypop;&#xD;
    &#xD;
    sumind = Table[&#xD;
       Take[Flatten[ArrayRules[coupling[[k, All]]][[All, 1]]], &#xD;
        Length[ArrayRules[coupling[[k, All]]]] - 1], {k, 1, Mcities}];&#xD;
    &#xD;
    sus[i_, j_] := &#xD;
     sus[i, j] = (1 - [Mu]) (sus[i - 1, &#xD;
           j] - [Rho] sus[i - 1, j] inf[i - 1, j]) + [Mu]  Total[&#xD;
          Table[sus[i - 1, sumind[[j, u]]]*citypop[[sumind[[j, u]]]], {u, &#xD;
            1, Length[sumind[[j]]]} ] ]/meanNN[[j]]; &#xD;
    inf[i_, j_] := &#xD;
     inf[i, j] = (1 - [Mu]) (inf[i - 1, &#xD;
           j] + [Rho] sus[i - 1, j] inf[i - 1, j] - [Lambda] inf[i - 1, &#xD;
            j]) + [Mu] Total[&#xD;
          Table[inf[i - 1, sumind[[j, u]]]*citypop[[sumind[[j, u]]]], {u, &#xD;
            1, Length[sumind[[j]]]} ] ]/meanNN[[j]];&#xD;
    rec[i_, j_] := &#xD;
      rec[i, j] = (1 - [Mu]) (rec[i - 1, &#xD;
            j] + [Lambda] inf[i - 1, j]) + [Mu] Total[&#xD;
           Table[rec[i - 1, sumind[[j, u]]]*citypop[[sumind[[j, u]]]], {u,&#xD;
              1, Length[sumind[[j]]]} ] ]/meanNN[[j]];&#xD;
&#xD;
This time we try to work in parallel:&#xD;
&#xD;
    LaunchKernels[];&#xD;
    tcourse = ParallelTable[{sus[i, j], inf[i, j], rec[i, j]}, {i, 1, 500}, {j, 1, Mcities}]; // AbsoluteTiming&#xD;
&#xD;
(There is something strange here. This ran in MMA9 in 6.3 seconds- I still have data from the course I taught last year. MMA10 takes ages. After the installation of MMA10 also MMA9 seems to take longer 43 seconds. Is this a bug report?). Note that this time the population sizes of the cities are taken into account and are relevant. If you run&#xD;
&#xD;
    Manipulate[&#xD;
     Graphics[{Line[Flatten[CountryData[&amp;#034;Nigeria&amp;#034;, &amp;#034;Coordinates&amp;#034;], 1]], &#xD;
       Join[Table[{ &#xD;
          RGBColor[tcourse[[t, i, 2]], tcourse[[t, i, 1]], &#xD;
           tcourse[[t, i, 3]]], Disk[citycoords[[i]], 0.1]}, {i, 1, &#xD;
          Length[names]}]]}], {t, 1, 500, 1}]&#xD;
&#xD;
or &#xD;
&#xD;
    poly = Graphics[Polygon[Flatten[CountryData[&amp;#034;Nigeria&amp;#034;, &amp;#034;Coordinates&amp;#034;], 1]], ImagePadding -&amp;gt; None];&#xD;
    Animate[ImageSubtract[&#xD;
      Graphics[ListDensityPlot[&#xD;
        Join[{{4, 3.25, 0}, {4, 14, 0}, {14, 3.25, 0}, {14, 14, 0}}, &#xD;
         Table[{citycoords[[k]][[1]], citycoords[[k]][[2]], &#xD;
           1. - tcourse[[t, k, 1]]}, {k, 1, Mcities}]], &#xD;
        InterpolationOrder -&amp;gt; 3, ColorFunction -&amp;gt; &amp;#034;Rainbow&amp;#034;, &#xD;
        PlotRange -&amp;gt; All, Frame -&amp;gt; False, PlotRangePadding -&amp;gt; None]], &#xD;
      poly], {t, 1, 500, 1}, DefaultDuration -&amp;gt; 20.]&#xD;
&#xD;
or better &#xD;
 &#xD;
&#xD;
    infmax = Max[tcourse[[All, All, 2]]];&#xD;
    frames = Table[&#xD;
       ImageSubtract[&#xD;
        Graphics[&#xD;
         ListDensityPlot[&#xD;
          Join[{{4, 3.25, 0}, {4, 14, 0}, {14, 3.25, 0}, {14, 14, 0}}, &#xD;
           Table[{citycoords[[k]][[1]], citycoords[[k]][[2]], &#xD;
             tcourse[[t, k, 2]]/infmax}, {k, 1, Mcities}]], &#xD;
          InterpolationOrder -&amp;gt; 3, ColorFunction -&amp;gt; &amp;#034;Rainbow&amp;#034;, &#xD;
          PlotRange -&amp;gt; All, Frame -&amp;gt; False, PlotRangePadding -&amp;gt; None, &#xD;
          ColorFunctionScaling -&amp;gt; False]], poly], {t, 1, 500, 6}];&#xD;
&#xD;
you get nice animations like this one:&#xD;
&#xD;
![enter image description here][16]&#xD;
&#xD;
I have noticed that Nigeria needs to be rotated, but I hope that the idea becomes clear. I am also aware that there are many flaws in this. SIR is certainly not the best way forward to model Ebola. Any population dynamicist and/or health expert can certainly come up with an endless list of problems. The network is not perfect. For more serious applications we actually use models for the cities, i.e. street connections among close cities and airport connections among countries etc. The problem is that if we simulate between 200-20000  cities per country plus the airports, a standard laptop runs into trouble. On the bright side, we have a cluster on which this kind of larger simulations work just fine. &#xD;
&#xD;
Hope that you like this anyway,&#xD;
&#xD;
Marco&#xD;
&#xD;
&#xD;
  [1]: http://www.st-margaret.aberdeen.sch.uk&#xD;
  [2]: http://community.wolfram.com/groups/-/m/t/325956&#xD;
  [3]: http://mtbi.asu.edu/files/Mathematical_Models_to_Study_the_Outbreaks_of_Ebola.pdf&#xD;
  [4]: http://openflights.org/data.html&#xD;
  [5]: /c/portal/getImageAttachment?filename=Airportsall.jpg&amp;amp;userId=48754&#xD;
  [6]: /c/portal/getImageAttachment?filename=Airports-world.jpg&amp;amp;userId=48754&#xD;
  [7]: http://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology&#xD;
  [8]: /c/portal/getImageAttachment?filename=SingleSIR.jpg&amp;amp;userId=48754&#xD;
  [9]: /c/portal/getImageAttachment?filename=SIR-airportstcourse.jpg&amp;amp;userId=48754&#xD;
  [10]: https://www.dropbox.com/s/9y6d16z82qjw261/SIR-frames.gif?dl=0&#xD;
  [11]: /c/portal/getImageAttachment?filename=SIR-airports-frames.jpg&amp;amp;userId=48754&#xD;
  [12]: /c/portal/getImageAttachment?filename=Airports-CommNetwork.jpg&amp;amp;userId=48754&#xD;
  [13]: /c/portal/getImageAttachment?filename=SIR-networkrings.jpg&amp;amp;userId=48754&#xD;
  [14]: https://www.dropbox.com/s/0qwgmi7ks8dpsjh/SIR-USA-frames.gif?dl=0&#xD;
  [15]: /c/portal/getImageAttachment?filename=SIR-Nigerianetwork.jpg&amp;amp;userId=48754&#xD;
  [16]: /c/portal/getImageAttachment?filename=SIR-movie.gif&amp;amp;userId=48754</description>
    <dc:creator>Marco Thiel</dc:creator>
    <dc:date>2014-08-22T20:18:58Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1034626">
    <title>[GIF] Elaborating on Arrival&amp;#039;s Alien Language, Part I., II. &amp;amp; III.</title>
    <link>https://community.wolfram.com/groups/-/m/t/1034626</link>
    <description>I recently watched &amp;#034;Arrival&amp;#034;, and thought that some of the dialogue sounded Wolfram-esque. Later, I saw the following blog post:&#xD;
&#xD;
[Quick, How Might the Alien Spacecraft Work?][1] &#xD;
&#xD;
Along with many others, I enjoyed the movie. The underlying artistic concept for the alien language reminded me of decade old memories, a book by Stephen Addiss, [Art of Zen][2]. Asian-influenced symbolism is an interesting place to start building a sci-fi concept, even for western audiences.  &#xD;
&#xD;
I also found Cristopher Wolfram&amp;#039;s broadcast and the associated files: &#xD;
&#xD;
[Youtube Broadcast][3]&#xD;
&#xD;
[Github Files ( with image files ) ][4]&#xD;
&#xD;
Thanks for sharing! More science fiction, yes! &#xD;
&#xD;
I think the constraint of circular logograms could be loosened. This leads to interesting connections with theory of functions, which I think the Aliens would probably know about. &#xD;
&#xD;
The following code takes an alien logogram as input and outputs a deformation according to do-it-yourself formulation of the Pendulum Elliptic Functions:&#xD;
&#xD;
![Human Animation][5]&#xD;
&#xD;
## $m=2$ Inversion Coefficients ##&#xD;
&#xD;
    MultiFactorial[n_, nDim_] := Times[n, If[n - nDim &amp;gt; 1, MultiFactorial[n - nDim, nDim], 1]]&#xD;
    GeneralT[n_, m_] :=  Table[(-m)^(-j) MultiFactorial[i + m (j - 1) + 1, m]/ MultiFactorial[i + 1, m], {i, 1, n}, {j, 1, i}]&#xD;
    a[n_] := With[{gt = GeneralT[2 n, 2]}, gt[[2 #, Range[#]]] &amp;amp; /@ Range[n] ]&#xD;
&#xD;
## Pendulum Values : $2(1-\cos(x))$ Expansion Coefficients ##&#xD;
&#xD;
    c[n_ /; OddQ[n]] := c[n] = 0;&#xD;
    c[n_ /; EvenQ[n]] := c[n] = 2 (n!) (-2)^(n/2)/(n + 2)!;&#xD;
&#xD;
## Partial Bell Polynomials ##&#xD;
Note: These polynomials are essentially the same as the &amp;#034;**BellY**&amp;#034; ( hilarious naming convention), but recursion optimized. See timing tests below. &#xD;
&#xD;
    B2[0, 0] = 1;&#xD;
    B2[n_ /; n &amp;gt; 0, 0] := 0;&#xD;
    B2[0, k_ /; k &amp;gt; 0] := 0;&#xD;
    B2[n_ /; n &amp;gt; 0, k_ /; k &amp;gt; 0] := B2[n, k] = Total[&#xD;
        Binomial[n - 1, # - 1] c[#] B2[n - #, k - 1] &amp;amp; /@ &#xD;
         Range[1, n - k + 1] ];&#xD;
&#xD;
## Function Construction ##&#xD;
&#xD;
    BasisT[n_] :=  Table[B2[i, j]/(i!) Q^(i + 2 j), {i, 2, 2 n, 2}, {j, 1, i/2}]&#xD;
    PhaseSpaceExpansion[n_] :=   Times[Sqrt[2 \[Alpha]], 1 + Dot[MapThread[Dot, {BasisT[n], a[n]}], (2 \[Alpha])^Range[n]]];&#xD;
    AbsoluteTiming[CES50 = PhaseSpaceExpansion[50];] (* faster than 2(s) *)&#xD;
    Fast50 = Compile[{{\[Alpha], _Real}, {Q, _Real}}, Evaluate@CES50];&#xD;
&#xD;
## Image Processing ##&#xD;
note: This method is a hack from &amp;#034;.jpg&amp;#034; to sort-of vector drawing. I haven&amp;#039;t tested V11.1 vectorization functionality, but it seems like this could be a means to process all jpg&amp;#039;s and output a file of vector polygons. Anyone ?&#xD;
&#xD;
    LogogramData = Import[&amp;#034;Human1.jpg&amp;#034;];&#xD;
    Logogram01 = ImageData[ColorNegate@Binarize[LogogramData, .9]];&#xD;
    ArrayPlot@Logogram01;&#xD;
    &#xD;
    Positions1 = &#xD;
      Position[Logogram01[[5 Range[3300/5], 5 Range[3300/5]]], 1];&#xD;
    Graphics[{Disk[#, 1.5] &amp;amp; /@ Positions1, Red, &#xD;
       Disk[{3300/5/2, 3300/5/2}, 10]}];&#xD;
    onePosCentered = &#xD;
      N[With[{cent = {3300/5/2, 3300/5/2} }, # - cent &amp;amp; /@ Positions1]];&#xD;
    radii = Norm /@ onePosCentered;&#xD;
    maxR = Max@radii;&#xD;
    normRadii = radii/maxR;&#xD;
    angles = ArcTan[#[[2]], #[[1]]] &amp;amp; /@ onePosCentered;&#xD;
    Qs = Cos /@ angles;&#xD;
## Constructing and Printing Image Frames ##&#xD;
&#xD;
    AlienWavefunction[R_, pixel_, normRad_, Qs_, angles_] := Module[{&#xD;
       deformedRadii = MapThread[Fast50, {R normRad, Qs}],&#xD;
       deformedVectors = Map[N[{Cos[#], Sin[#]}] &amp;amp;, angles],&#xD;
       deformedCoords&#xD;
       },&#xD;
      deformedCoords = &#xD;
       MapThread[Times, {deformedRadii, deformedVectors}];&#xD;
      Show[ PolarPlot[ Evaluate[&#xD;
         CES50 /. {Q -&amp;gt; Cos[\[Phi]], \[Alpha] -&amp;gt; #/10} &amp;amp; /@ &#xD;
          Range[9]], {\[Phi], 0, 2 Pi}, Axes -&amp;gt; False, &#xD;
        PlotStyle -&amp;gt; Gray],&#xD;
       Graphics[Disk[#, pixel] &amp;amp; /@ deformedCoords], ImageSize -&amp;gt; 500]]&#xD;
    &#xD;
    AbsoluteTiming[  OneFrame = &#xD;
       AlienWavefunction[1, (1 + 1)* 1.5/maxR, normRadii, Qs, angles]&#xD;
     ](* about 2.5 (s)*)&#xD;
&#xD;
![Alien Pendulum][6]&#xD;
&#xD;
## Validation and Timing ##&#xD;
In this code, we&amp;#039;re using the magic algorithm to get up to about $100$ orders of magnitude in the half energy, $50$ in the energy. I did prove $m=1$ is equivalent to other published forms, but haven&amp;#039;t found anything in the literature about $m=2$, and think that the proving will take more time, effort, and insight (?). For applications, we just race ahead without worrying too much, but do check with standard, known expansions: &#xD;
&#xD;
    EK50 = Normal@ Series[D[ Expand[CES50^2/2] /.  Q^n_ :&amp;gt; (1/2)^n Binomial[n, n/2], \[Alpha]], {\[Alpha], 0, 50}];&#xD;
    SameQ[Normal@  Series[(2/Pi) EllipticK[\[Alpha]], {\[Alpha], 0, 50}], EK50]&#xD;
    Plot[{(2/Pi) EllipticK[\[Alpha]], EK50}, {\[Alpha], .9, 1}, ImageSize -&amp;gt; 500]&#xD;
    Out[]:= True&#xD;
&#xD;
![Approximation Validity][7]&#xD;
&#xD;
This plot gives an idea of approximation validity via the time integral over $2\pi$ radians in phase space. Essentially, even the time converges up to, say,  $\alpha = 0.92$. Most of the divergence is tied up in the critical point, which is difficult to notice in the phase space drawings above. &#xD;
&#xD;
Also compare the time of function evaluation:&#xD;
&#xD;
    tDIY = Mean[ AbsoluteTiming[Fast50[.9, RandomReal[{0, 1}]] ][[1]] &amp;amp; /@ Range[10000]];&#xD;
    tMma = Mean[AbsoluteTiming[JacobiSN[.9, RandomReal[{0, 1}]] ][[1]] &amp;amp; /@ Range[10000]];&#xD;
    tMma/tDIY&#xD;
&#xD;
In the region of sufficient convergence, Mathematica function **JacobiSN** is almost 20 times slower. The CES radius also requires a function call to **JacobiCN**, so an output-equivalent **AlienWavefunction** algorithm using built-in Mathematica functions would probably take at least 20 times as long to produce. When computing hundreds of images this is a noticeable slow down, something to avoid ! !  &#xD;
&#xD;
Also compare time to evaluate the functional basis via the Bell Polynomials:&#xD;
&#xD;
     BasisT2[n_] := Table[BellY[i, j, c /@ Range[2 n]]/(i!) Q^(i + 2 j), {i, 2, 2 n,  2}, {j, 1, i/2}];&#xD;
    SameQ[BasisT2[20], BasisT[20]]&#xD;
    t1 = AbsoluteTiming[BasisT[#];][[1]] &amp;amp; /@ Range[100];&#xD;
    t2 = AbsoluteTiming[BasisT2[#];][[1]] &amp;amp; /@ Range[25];&#xD;
    ListLinePlot[{t1, t2}, ImageSize -&amp;gt; 500]&#xD;
![Series Inverse][8]&#xD;
&#xD;
The graph shows quite clearly that careful evaluation via the recursion relations changes the complexity of the inversion algorithm to polynomial time, $(n^2)$, in one special example where the forward series expansions coefficients have known, numeric values. &#xD;
&#xD;
&#xD;
## Conclusion ##&#xD;
&#xD;
We show proof-of-concept that alien logograms admit deformations that preserve the cycle topology. Furthermore we provide an example calculation where the &amp;#034;human&amp;#034; logogram couples to a surface. Deformation corresponds to scale transformation of the logogram along the surface. Each deformation associates with an energy. &#xD;
&#xD;
Invoking the pendulum analogy gives the energy a physical meaning in terms of gravity, but we are not limited to classical examples alone. The idea extends to arbitrary surfaces in two, three or four dimensions, as long as the surfaces have local extrema. Around the extrema, there will exist cycle contours, which we can inscript with the Alien logograms. This procedure leads readily to large form compositions, especially if the surface has many extrema. Beyond Fourier methods, we might also apply spherical harmonics, and hyperspherical harmonics to get around the limitation of planarity. &#xD;
&#xD;
The missing proof... Maybe later. LOL! ~ ~ ~ ~ Brad   &#xD;
&#xD;
And in the Fanfiction Voice: &#xD;
&#xD;
Physicist : &amp;#034;It should be no surprise that heptapod speech mechanism involves an arbitrary deformation of the spacetime manifold.&amp;#034;&#xD;
&#xD;
Linguist :  &amp;#034;Space-traveling aliens, yes, of course they know math and physics, but Buddhist symbology, where&amp;#039;d they learn that?&amp;#034;&#xD;
&#xD;
&#xD;
  [1]: http://blog.stephenwolfram.com/2016/11/quick-how-might-the-alien-spacecraft-work/&#xD;
  [2]: https://books.google.com/books/about/Art_of_Zen.html?id=4jGEQgAACAAJ&#xD;
  [3]: https://www.youtube.com/watch?v=8N6HT8hzUCA&amp;amp;t=4992s&#xD;
  [4]: https://github.com/WolframResearch/Arrival-Movie-Live-Coding&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Deformation.gif&amp;amp;userId=234448&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=AlienPendulum.png&amp;amp;userId=234448&#xD;
  [7]: http://community.wolfram.com//c/portal/getImageAttachment?filename=EllipticK.png&amp;amp;userId=234448&#xD;
  [8]: http://community.wolfram.com//c/portal/getImageAttachment?filename=BellPolynomial.png&amp;amp;userId=234448</description>
    <dc:creator>Brad Klee</dc:creator>
    <dc:date>2017-03-18T20:23:59Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2458169">
    <title>[WSG22] Daily Study Group: Cryptography (begins January 31!)</title>
    <link>https://community.wolfram.com/groups/-/m/t/2458169</link>
    <description>A new study group devoted to Cryptography begins next Monday! &#xD;
&#xD;
I will be leading this group daily, Monday to Friday, over the next three weeks, until February 18. The curriculum follows the upcoming Wolfram U course &amp;#034;[Introduction to Cryptography][1]&amp;#034;. A list of daily topics can be found on the [Daily Study Groups][2] page. The study group sessions include videos and reading materials for the course and time for discussion and Q&amp;amp;A. After the study group will help you may complete the course quizzes and achieve the &amp;#034;Course Completion&amp;#034; certificate for the &amp;#034;[Introduction to Cryptography][3]&amp;#034; .&#xD;
&#xD;
&amp;gt; **REGISTER HERE:**&#xD;
&#xD;
&amp;gt; https://www.bigmarker.com/series/daily-study-group-intro-to-cryptography/series_details&#xD;
&#xD;
&amp;gt; **About This Study Group:** Cryptography has existed for thousands of years and currently is a fascinating topic to study because of the close ties it forges between theory and practice. It makes use of bitwise computations, advanced algebra, string operations and everything in between. The Wolfram Language, with functions that provide basic building blocks for modern cryptography, makes a great tool for hands-on understanding of various concepts. In this Study Group, you will follow video lessons from the new Wolfram U course Introduction to Cryptography and learn about the concepts, underlying math and connections to real-world scenarios.&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
P.S: Don&amp;#039;t worry if you are unable to attend every session live: the recordings will be sent out to those who registered!&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/wolfram-u/introduction-to-cryptography/&#xD;
  [2]: https://www.bigmarker.com/series/daily-study-group-intro-to-cryptography/series_details&#xD;
  [3]: https://www.wolfram.com/wolfram-u/introduction-to-cryptography/&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WolframUbanner.jpg&amp;amp;userId=20103</description>
    <dc:creator>Dariia Porechna</dc:creator>
    <dc:date>2022-01-28T13:31:36Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/418720">
    <title>Calculus of the perfectly centered break of a perfectly aligned pool ball rack</title>
    <link>https://community.wolfram.com/groups/-/m/t/418720</link>
    <description>## This is it. The perfectly centered billiards break. Behold:&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
&amp;lt;h2&amp;gt;Setup&amp;lt;/h2&amp;gt;&#xD;
&#xD;
This break was computed in *Mathematica* using a numerical differential equations model.  Here are a few details of the model:&#xD;
&#xD;
* All balls are assumed to be perfectly [elastic][3] and almost perfectly rigid.&#xD;
* Each ball has a mass of 1 unit and a radius of 1 unit.&#xD;
* The cue ball has a initial speed of 10 units/sec.&#xD;
* The force between two balls is given by the formula $$F \;=\; \begin{cases}0 &amp;amp; \text{if }d \geq 2, \\ 10^{11}(2-d)^{3/2} &amp;amp; \text{if }d &amp;lt; 2, \end{cases}$$ where $d$ is the distance between the centers of the balls.  Note that the balls overlap if and only if $d &amp;lt; 2$.  The power of $3/2$ was [suggested by Yoav Kallus][4] on Math Overflow, because it follows [Hertz&amp;#039;s theory of non-adhesive elastic contact](https://en.wikipedia.org/wiki/Contact_mechanics#Hertzian_theory_of_non-adhesive_elastic_contact).&#xD;
&#xD;
The initial speed of the cue ball is immaterial -- slowing down the cue ball is the same as slowing down time. The force constant $10^{11}$ has no real effect as long as it&amp;#039;s large enough, although it does change the speed at which the initial collision takes place.&#xD;
&#xD;
&amp;lt;h2&amp;gt;The Collision&amp;lt;/h2&amp;gt;&#xD;
&#xD;
For this model, the entire collision takes place in the first 0.2 milliseconds, and none of the balls overlap by more than 0.025% of their radius during the collision.  (These figures are model dependent -- real billiard balls may collide faster or slower than this.)&#xD;
&#xD;
The following animation shows the forces between the balls during the collision, with the force proportional to the area of each yellow circle.  Note that the balls themselves hardly move at all *during* the collision, although they do accelerate quite a bit.&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
&amp;lt;h2&amp;gt;The Trajectories&amp;lt;/h2&amp;gt;&#xD;
&#xD;
The following picture shows the trajectories of the billiard balls after the collision.&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
After the collision, some of the balls are travelling considerably faster than others.  The following table shows the magnitude and direction of the velocity of each ball, where $0^\circ$ indicates straight up.&#xD;
&#xD;
&#xD;
$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|}&#xD;
\hline&#xD;
\text{ball} &amp;amp; \text{cue} &amp;amp; 1 &amp;amp; 2,3 &amp;amp; 4,6 &amp;amp; 5 &amp;amp; 7,10 &amp;amp; 8,9 &amp;amp; 11,15 &amp;amp; 12,14 &amp;amp; 13 \\&#xD;
\hline&#xD;
\text{angle} &amp;amp; 0^\circ &amp;amp; 0^\circ &amp;amp; 40.1^\circ &amp;amp; 43.9^\circ &amp;amp; 0^\circ &amp;amp; 82.1^\circ &amp;amp; 161.8^\circ &amp;amp; 150^\circ &amp;amp; 178.2^\circ &amp;amp; 180^\circ \\&#xD;
\hline&#xD;
\text{speed} &amp;amp; 1.79 &amp;amp; 1.20 &amp;amp; 1.57 &amp;amp; 1.42 &amp;amp; 0.12 &amp;amp; 1.31 &amp;amp; 0.25 &amp;amp; 5.60 &amp;amp; 2.57 &amp;amp; 2.63 \\&#xD;
\hline&#xD;
\end{array}&#xD;
$&#xD;
&#xD;
&#xD;
For comparison, remember that the initial speed of the cue ball was 10 units/sec.  Thus, balls 11 and 15 (the back corner balls) shoot out at more than half the speed of the original cue ball, whereas ball 5 slowly rolls upwards at less than 2% of the speed of the original cue ball.&#xD;
&#xD;
By the way, if you add up the sum of the squares of the speeds of the balls, you get 100, since kinetic energy is conserved.&#xD;
&#xD;
&#xD;
&amp;lt;h2&amp;gt;Linear and Quadratic Responses&amp;lt;/h2&amp;gt;&#xD;
&#xD;
The results of this model are dependent on the power of $3/2$ in the force law -- other force laws give other breaks.  For example, we could try making the force a linear function of the overlap distance (in analogy with springs and [Hooke&amp;#039;s law][7]), or we could try making the force proportional to the  *square* of the overlap distance.  The results are noticeably different&#xD;
&#xD;
![enter image description here][8] ![enter image description here][9]&#xD;
&#xD;
&#xD;
&amp;lt;h2&amp;gt;Stiff Response&amp;lt;/h2&amp;gt;&#xD;
&#xD;
Glenn the Udderboat points out that &amp;#034;stiff&amp;#034; balls might be best approximated by a force response involving a higher power of the distance (although this isn&amp;#039;t the [usual definition][10] of &amp;#034;stiffness&amp;#034;).  Unfortunately, the calculation time in *Mathematica* becomes longer when the power is increased, presumably because it needs to use a smaller time step to be sufficiently accurate.&#xD;
&#xD;
Here is a simulation involving a reasonably &amp;#034;stiff&amp;#034; force law&#xD;
$$F \;=\; \begin{cases}0 &amp;amp; \text{if }d \geq 2, \\ 10^{54}(2-d)^{10} &amp;amp; \text{if }d&amp;lt;2. \end{cases}$$&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
As you can see, the result is very similar to my first thought:&#xD;
&#xD;
&amp;gt; The two balls in the back corners shoot away along rays parallel to the two sides of the triangle.  Here is a picture showing the forces, with each force vector emanating from the point of contact.&#xD;
&#xD;
&amp;gt; ![enter image description here][12]&#xD;
&#xD;
This seems like good evidence that above 1st-thought behavior is indeed the limiting behavior in the case where the stiffness goes to infinity. As you might expect, most of the energy in this case is transferred very quickly at the beginning of the collision.  Almost all of the energy has moves to the back corner balls in the first 0.02 milliseconds.  Here is an animation of the forces:&#xD;
&#xD;
&#xD;
![enter image description here][13]&#xD;
&#xD;
After that, the corner balls and the cue ball shoot out, and the remaining balls continue to collide gently for the next millisecond or so.&#xD;
&#xD;
While the simplicity of this behavior is appealing, I would guess that &amp;#034;real&amp;#034; billard balls do not have such a stiff force response.  Of the models listed here, the intial Hertz-based model is probably the most accurate.  Qualitatively, it certainly seems the closest to an &amp;#034;actual&amp;#034; break.&#xD;
&#xD;
&amp;lt;h2&amp;gt; Full Code &amp;lt;/h2&amp;gt;&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][14]&#xD;
&#xD;
----------&#xD;
&#xD;
I wrote this post originally for [Math Stack Exchange][15].&#xD;
&#xD;
&#xD;
  [1]: http://math.bard.edu/belk/code.htm&#xD;
  [2]: http://i.stack.imgur.com/Y9ixR.gif&#xD;
  [3]: https://en.wikipedia.org/wiki/Elasticity_%28physics%29&#xD;
  [4]: http://mathoverflow.net/questions/156263/perfectly-centered-break-of-a-perfectly-aligned-pool-ball-rack/156407?noredirect=1#comment400402_156407&#xD;
  [5]: http://i.stack.imgur.com/WY37i.gif&#xD;
  [6]: http://i.stack.imgur.com/wHVJA.png&#xD;
  [7]: https://en.wikipedia.org/wiki/Hooke%27s_law&#xD;
  [8]: http://i.stack.imgur.com/a1l3b.gif&#xD;
  [9]: http://i.stack.imgur.com/xM76n.gif&#xD;
  [10]: https://en.wikipedia.org/wiki/Stiffness&#xD;
  [11]: http://i.stack.imgur.com/nMJyT.gif&#xD;
  [12]: http://i.stack.imgur.com/GKGT9.png&#xD;
  [13]: http://i.stack.imgur.com/VuUWT.gif&#xD;
  [14]: https://www.wolframcloud.com/obj/8c6b7e81-4a5c-4e3a-bb13-a3d47e728e64&#xD;
  [15]: http://math.stackexchange.com/a/659318/28293</description>
    <dc:creator>Jim Belk</dc:creator>
    <dc:date>2015-01-08T18:02:10Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/114911">
    <title>Unlawful primes</title>
    <link>https://community.wolfram.com/groups/-/m/t/114911</link>
    <description>How small can a description of a large prime number be? There are the Fermat primes 2^n-1 for certain n, and in base 2 these are a sequence of ones.  In base 10, if you have just zeros and two ones, then the only primes of that form are 11 and 101.  If there are three ones then it is divisible by three.  But what about four ones?  It seems wrong to me that there might be an unbounded number of such primes.&#xD;
&#xD;
That&amp;#039;s what some brief experiments suggest though.&#xD;
[mcode]1+10^4+10^18+10^201 == 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000010001[/mcode]is the largest one I found.  Also I don&amp;#039;t notice any patterns, e.g. here in the first 200 such primes&#xD;
&#xD;
[img=width: 68px; height: 432px;]/c/portal/getImageAttachment?filename=primes-1111.jpg&amp;amp;userId=23275[/img]&#xD;
&#xD;
and here are the first 254 primes with nonzero digits {1,2,1}&#xD;
&#xD;
[img=width: 347px; height: 432px;]/c/portal/getImageAttachment?filename=primes-121.jpg&amp;amp;userId=23275[/img]&#xD;
&#xD;
the largest found is&#xD;
[mcode]1+2*10^14+10^201 == 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000001[/mcode]Does anyone else have any primes which don&amp;#039;t seem like they should be prime?  The more extreme the better.</description>
    <dc:creator>Todd Rowland</dc:creator>
    <dc:date>2013-09-03T04:50:53Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/163848">
    <title>My thoughts on Wolfram Problem Generator</title>
    <link>https://community.wolfram.com/groups/-/m/t/163848</link>
    <description>Hi everyone,

I would like to briefly present the [url=http://www.wolframalpha.com/problem-generator/][b]Wolfram Problem Generator[/b][/url], which I have been working on for the past months. There are two features that I think make it special: the ability to generate unlimited problems and free-form input for answers.

[url=http://www.wolframalpha.com/problem-generator/][img=width: 505px; height: 360px;]http://blog.wolframalpha.com/data/uploads/2013/10/Topic-List.png[/img][/url]

Some problem generators do not make random problems on the fly: in fact, they take problems from a repository (which, even if big, is still finite). By contrast, our system generates a totally new problem just for you. Also, we double-check that we haven&amp;#039;t shown it already--in this case, we just show you a new one!

Our free-form input takes full advantage of all the technology created by Wolfram|Alpha. Given a problem to try, you can write your answer in whatever way makes sense to you and we will be able to recognize it each time. For example, for

[img=float: left;]/c/portal/getImageAttachment?filename=ScreenShot2013-12-02at12.18.49PM.png&amp;amp;userId=50011[/img]



you can type &amp;#034;2 sqrt(3)&amp;#034;, &amp;#034;two times square root of three&amp;#034;, &amp;#034;two radical 3&amp;#034; or &amp;#034;2 * 3^(1/2)&amp;#034;.

Wolfram Problem Generator was not without its challenges in development. The most challenging aspect of this project was implementing a way to distinguish right answers from incorrect attempts. For example, if your problem is &amp;#034;6 x = 10&amp;#034;, Wolfram Problem Generator asks you to simplify your result to &amp;#034;5/3&amp;#034; (or &amp;#034;x = 5/3&amp;#034;, or &amp;#034;five thirds&amp;#034;, etc.), and not leave the answer as &amp;#034;10/6&amp;#034;. Because &amp;#034;10/6&amp;#034; is a mathematically correct answer, we relied on Mathematica&amp;#039;s powerful pattern matcher to ensure that the answer really was simplified.

You can try Wolfram Problem Generator if you&amp;#039;re a member of Wolfram|Alpha Pro. Right now, we have coverage for six core subjects, with a lot more in the works. Let us know what subjects and what types of problems you&amp;#039;d like to see!

Enjoy!
Luca</description>
    <dc:creator>Luca Belli</dc:creator>
    <dc:date>2013-12-02T17:46:23Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2411604">
    <title>[WSG21] Daily Study Group: Differential Equations (begins November 29)</title>
    <link>https://community.wolfram.com/groups/-/m/t/2411604</link>
    <description>A new study group devoted to Differential Equations begins next Monday! A list of daily topics can be found on our [Daily Study Groups][1] page. This group will be led by one of our outstanding Wolfram certified instructors, Luke Titus, and will meet daily, Monday to Friday, over the next three weeks. Luke will share the excellent lesson videos created by him for the upcoming Wolfram U course &amp;#034;[Introduction to Differential Equations][2]&amp;#034;. Study group sessions include time for exercises, discussion and Q&amp;amp;A. This study group will help you achieve the &amp;#034;Course Completion&amp;#034; certificate for the &amp;#034;Introduction to Differential Equations&amp;#034; course after you complete the course quizzes.&#xD;
&#xD;
Sign up: [Study group registration page][3]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/wolfram-u/special-event/study-groups/&#xD;
  [2]: https://www.wolfram.com/wolfram-u/introduction-to-differential-equations/&#xD;
  [3]: https://www.bigmarker.com/series/daily-study-group-intro-to-differential-equations/series_details?utm_bmcr_source=community</description>
    <dc:creator>Devendra Kapadia</dc:creator>
    <dc:date>2021-11-22T16:35:30Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2041687">
    <title>[WSG20] Calculus Daily Study Group begins August 3 (Free!)</title>
    <link>https://community.wolfram.com/groups/-/m/t/2041687</link>
    <description>The latest [Wolfram Daily Study Group][1] features one of our favorite math instructors, [Devendra Kapadia][at1], and focuses on building fundamental concepts in calculus. This is a great opportunity for students to refresh their knowledge or get a head start on the subject. Sign up: https://wolfr.am/od7nlnga&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/wolfram-u/special-event/study-groups/&#xD;
&#xD;
 [at0]: https://community.wolfram.com/web/dkapadia&#xD;
&#xD;
 [at1]: https://community.wolfram.com/web/dkapadia</description>
    <dc:creator>Jamie Peterson</dc:creator>
    <dc:date>2020-07-21T15:27:37Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2355272">
    <title>[WSG21] Daily study group on creating custom user interfaces</title>
    <link>https://community.wolfram.com/groups/-/m/t/2355272</link>
    <description>On September 7th we will begin our next Daily Study Group series that will focus on &amp;#034;**Creating Custom User Interfaces**&amp;#034;. Attendees will learn to develop graphical user interfaces using the Wolfram Language through short live lessons hosted by Wolfram-certified instructors, and also work on practice problems and mini projects for a hands-on experience.&#xD;
&#xD;
A certificate of program completion will be available. &#xD;
&#xD;
Register [here][1].&#xD;
&#xD;
&#xD;
  [1]: https://www.bigmarker.com/series/daily-study-group-creating-custom-user-interfaces/series_details?utm_bmcr_source=community</description>
    <dc:creator>Abrita Chakravarty</dc:creator>
    <dc:date>2021-08-30T19:33:28Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2504513">
    <title>[WSG22] Daily Study Group: A Guide to Programming and Mathematics with WL</title>
    <link>https://community.wolfram.com/groups/-/m/t/2504513</link>
    <description>A new study group on the topic &amp;#034;A Guide to Programming and Mathematics with the Wolfram Language&amp;#034; will begin soon.&#xD;
&#xD;
Join a cohort of fellow learners and expand your understanding of core programming topics as well as symbolic and applied mathematics functionality in the Wolfram Language with lessons by veteran instructor and developer [David Withoff][1]. A basic working knowledge of the Wolfram Language or introductory-level skill in any programming language is recommended.&#xD;
&#xD;
April 18&amp;#x2013;May 6&#xD;
&#xD;
11am&amp;#x2013;12pm US CT (4&amp;#x2013;5pm GMT)&#xD;
&#xD;
[**REGISTER HERE**][2]&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/wolfram-u/instructors/withoff.html&#xD;
  [2]: https://www.bigmarker.com/series/daily-study-group-a-guide-to-programming-and-mathematics/series_details?utm_bmcr_source=community&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WolframUBanner.jpeg&amp;amp;userId=130003</description>
    <dc:creator>Abrita Chakravarty</dc:creator>
    <dc:date>2022-04-06T14:49:11Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1888335">
    <title>An SEIR like model that fits the coronavirus infection data</title>
    <link>https://community.wolfram.com/groups/-/m/t/1888335</link>
    <description>*MODERATOR NOTE: coronavirus resources &amp;amp; updates:* https://wolfr.am/coronavirus&#xD;
&#xD;
&#xD;
----------&#xD;
September 27:  This site will now be updated about twice a month, middle and end.  We will try to update the models.  For the most part, the epidemics have run their modeling course and have taken a new turn in many places.  We will maintain this site only as a source of information for a while longer, or until we compute new models for the renewed outbreaks.&#xD;
&#xD;
&#xD;
August 29:  This site will only be updated on weekends or Mondays, from now on.  We will try to compute new models based on fresh data if time allows.  The Finland section will be changed somewhat.&#xD;
&#xD;
&#xD;
&#xD;
July 29:  We now have a model for the world in the main section&#xD;
&#xD;
&#xD;
&#xD;
June 15, 22:  (Notebook not yet ready today June 22, hopefully soon) -- As of June 22 I will be on holiday, or doing something else, until August 17.  Some sections will not be updated on a daily basis.  In the table of contents (&amp;#034;WHAT IS INCLUDED IN THIS POST&amp;#034; just below), I will indicate how often each section will be updated.  I will also make a note to this effect in each of the corresponding sections.  There are some forecasts which will be checked on the date that is given for the forecast.  At times I will be in wilderness areas without electricity, so some updates at that time might not arrive promptly.  Before June 22 (or a bit later, apologies) I will post a notebook which calculates parameters for some of the models automatically.  There will be enough in it to get you started with your own data.  The table of contents is updated now accordingly (and corrected)&#xD;
&#xD;
June 3-5: In a reply to the Europe section, a picture with forecasts for fatalities per capita for USA, UK, Sweden, and Italy, updated daily.  Minor corrections in the text were made on June 5.&#xD;
&#xD;
May 29: contents have been reorganized slightly, the table of contents is now up to date again.  See detailed update notices after the main text, and in each section (this post contains several sections where results are shown, see table of contents (&amp;#034;INCLUDED IN THIS POST&amp;#034;) just a bit below.&#xD;
&#xD;
May 20: I have updated the table of contents (&amp;#034;INCLUDED IN THIS POST&amp;#034;  below)  &#xD;
&#xD;
NEW, May 10: Daily new cases forecast trends obtained from optimally fitted &amp;#034;TRUE&amp;#034; models (to learn about this, read the next paragraph and go to the response posted today at the bottom of the post ... it will be up in a few minutes).  A notebook will be provided with some guidance as to how to obtain optimal fits almost automatically when I have time to finish putting it together. WARNING: There is a lot of details involved in what I am doing which gives rise to mistakes, especially when something new comes around.  I just corrected some blatant ones.  Hopefully they dwindle out to zero with time.&#xD;
&#xD;
On April 21, 26, and a importantly on May 3 and 4, I have tried to improve and restructure this presentation and make a note of various conceptual issues.  I have also added &amp;#034;TRUE&amp;#034; (or truer) models of the outbreak (where the number of cases is matched to the R curve - read ahead).  I realize that as it was before today (and maybe still), it was poorly and hastily written.  I will continue to make improvements as I have time.  If nothing else, please read this paragraph.  Hopefully it is easier to read now and clearer.  I specify where to find material in various sections, now close to the beginning and not in too many places.  NOTE and DISCLAIMER: we are using a formalism to model data ... this is not exactly the same as having a model of the outbreak itself ... only an approximation that allows us to have some understanding the dynamics of the outbreak and make some forecasts with reasonable accuracy.  Modulo the explanations of compartmental models ahead and in the linked post, for the purposes of modeling the outbreak, the only data we have is the number of detected cases.  This corresponds to the R curve in the outbreak: each detected infection is an individual that de facto gets quarantined and removed from the infective process.  We have no other data available.  We don&amp;#039;t have data that tells us when an individual becomes exposed or infectious. However, we are using a compartmental model differently: we are considering the R curve to be those individuals that have recovered from the infection or died.  And the I curve as the number of detected cases minus those that have recovered and died.  The point is, these definitions of our compartments are sound in the sense that they are disjoint (that is, true compartments); and the dynamics of how individuals move from one of our so defined compartment to another can be described with the equations of the SEIR and SIR models.  And so, we have a model of the data which we are able to collect. To make this clear, we present in this section, along with other content outlined below, two models for the outbreak in Italy (for which the data is very good), a &amp;#034;TRUE&amp;#034; model of the outbreak, in which the data is matched to the R curve (removed individuals), and OUR VERSION of the model of the data as we have endeavored to look at it for the most part in this post.  Without further ado:&#xD;
&#xD;
SEIR MODELS:&#xD;
&#xD;
For an explanation of SEIR (and SIR) models see Robert Nachbar&amp;#039;s post: &#xD;
&#xD;
https://community.wolfram.com/groups/-/m/t/1896178&#xD;
&#xD;
The equations of the slightly modified SEIR model are given ahead.  It is possible to model the data by assuming a low enough susceptibility.  I explain in the discussion with Robert Nachbar below why the main effect of containment measures is to lower the effective number of susceptible individuals when it is imposed (relatively speaking, at the beginning). Using this idea, it is also possible to model what could happen if you lift restrictions too early by letting the susceptibility increase (see picture) and you then reintroduced them (this is not a forecast, just a possible scenario). As a CAVEAT, these models are models using the DETECTED number of cases, not the TRUE number of cases, AT THE MOMENT THEY ARE DETECTED, not at the moment they are exposed or become infectious.  Also, our compartments do not correspond to the compartments of a &amp;#034;true&amp;#034; model of the outbreak. We are taking the I compartment to be the number of detected cases minus the number of recovered and fatal cases, the sum of which is the R compartment. Our ASSUMPTION is that we can model the I &#xD;
 compartment moving to the R compartment as individuals moving from being infected to being recovered or dead ... so intuitively we are tacitly assuming that our model gives us a picture of the outbreak with a delay, reflected in the data as it becomes available.&#xD;
&#xD;
&#xD;
Regardless of these considerations, our model allows us to understand how the disease evolves in time as it pertains to the data we have at hand.  At least, we were able, in the Chinese model, to predict an end of outbreak time well in advance (the evidence is in Rimmer&amp;#039;s response to this post where a similar prediction is made based on our model).&#xD;
&#xD;
INCLUDED IN THIS POST:&#xD;
&#xD;
1) SEIR models for data from China. A SIR model for Italy. A &amp;#034;TRUE&amp;#034; SIR model for Italy and for the US. And a daily new cases forecast obtained from the &amp;#034;TRUE&amp;#034; model for the US.  (The Finland model now lives in its own section (3) only, see ahead.  The Spanish model has been replaced and lives in its own section (2).  On the last weekend of May a new notebook will be available in the notebook section (5)).  As of June 22 and until August 17, this section will continue to be maintained on an as frequent as possible basis, daily if possible.  If not, in the updates below, I will indicate if there is to be a pause&#xD;
&#xD;
2) In a response below, various models for Spain, UK, France, Germany, and Austria, see section for details.  This section will be maintained once a week, on Mondays, starting June 22 and until August 17.&#xD;
&#xD;
3) in a separate response below, two models for Finland (SIR and &amp;#034;TRUE&amp;#034;), a model as Norway, and &amp;#034;TRUE&amp;#034; models for Denmark and Sweden.  In a reply to that section, there is detailed information for Sweden (case forecasts and fatality forecasts).  From June 22 to August 17, both these section will be maintained on a daily basis if possible.  Otherwise, you will be notified as to when updates will occur.&#xD;
&#xD;
&#xD;
4) in a separate response, a brief discussion of SIR models (with models for China, Italy, and two more models for Finland) in a separate response.  Also there, a document of cases/tests ratios for various countries in the SIR models section.  This section includes a picture of positivity rates for several countries updated once a week.  The positivity rates picture will be updated last on June 22, and again on August 17, weekly.&#xD;
&#xD;
5)  in a separate response, a notebook, towards the end of the post.  This section includes a pdf document with dialy new cases for many countries updated once a week.  By June 22, this section will contain a notebook which shows how to fit parameters automatically.  From June 22 to August 17, the pdf document will not be updated.  The notebook and pdf document are also posted in a reply to Kaurov, above the Scandinavian countries section.&#xD;
&#xD;
6) Daily new cases forecast trends obtained from optimally fitted &amp;#034;TRUE&amp;#034; models in the latest response (May 10).  Read more in the new section.  Notebook will be provided to make automatic fits.  From June 22 to August 17, this section will not be updated.&#xD;
&#xD;
7) Fatalities per million for USA, UK, Sweden, and Italy.  Details in the section, a reply to the Europe section.  This section will be updated as frequently as possible between June 22 and August 17.&#xD;
&#xD;
SIR MODELS (see SIR section for equations)&#xD;
&#xD;
At the end of the post in a new response I discuss a simpler SIR-like model for the Chinese, Italian, and Finnish data which is practically as good - the equations are there. It has two advantages over the SEIR model: a) the classic SIR model has analytic solutions, so straightforward (somewhat) computational optimization can be carried out to estimate the parameters - although our equations are not the classical ones as they have a delay; b) it yields for the data we are trying to model values of R0 that are congruent to the observed ones, 5.43 for China - compared to 5.7 obtained in the just published study led by Steven Sanche and Lin Yeng-Ting, Los Alamos N. L. (arXiv:2002.03268) in Emerging Infectious Diseases, V26, Num 7 - (a note about this for the SEIR model below) without further ado (more on this ahead); and c) (UPDATE 3) if we look at the susceptibility curves (S in the diagrams), we see that they do not necessarily reach 0.  If they are asymptotic to a positive value, that means there is a herd immunity effect - the value of the asymptote being the number of people who remain susceptible under containment that will not get infected; moreover, we can see that the susceptibility curve is very close to its asymptote near the peak of the infections curve (I in the diagrams), so that targeted testing is warranted as an effective measure of containment at that stage.   That section contains a model of China (final) and a model for Italy (that is not updated), and a two models for Finland, one using the JHU data instead of the Finnish authorities data, and another one using another recovery schedule using an estimate based on the scant recovery data for Finland.&#xD;
&#xD;
A SIR model for Finland and the SEIR model alternate every so often here; the SIR model uses THL (Finnish health authorities) data.  Both models are available in the Finland section, and the model for Germany in its section is, alternatingly, either a SEIR or a SIR model. We have removed, in the Finland, an SIR model that shows what it looks like to reach a plateau or steady state, rather than a peak; the equations for this are necessarily different than the simple SIR equations given in the SIR section, In the SIR section there are also other models for Finland, one using JHU and the other using a different recovery schedule.&#xD;
  &#xD;
&#xD;
The newer models are adjusted quite frequently, especially with respect to the number of susceptible individuals, as they continue to grow.  They tend to stabilize about three weeks after control measures have been in place.  After the I curve peaks, it is possible to begin to get an idea of how long the outbreak will last. &#xD;
&#xD;
EQUATIONS and PARAMETERS OF MODIFIED SEIR MODEL&#xD;
&#xD;
Now the equations (for the SIR model, see the SIR section at the end of the post and after most of the discussions).&#xD;
&#xD;
s&amp;#039;(t) = -Beta * s(t) * i(t) / p,&#xD;
&#xD;
e&amp;#039;(t) = Beta * s(t) * i(t) / p - Sigma * e(t),&#xD;
&#xD;
i&amp;#039;(t) = Sigma * e(t - m) - Gamma * i(t - n),&#xD;
&#xD;
r&amp;#039;(t) = Gamma * i(t - n)&#xD;
&#xD;
The function s(t) is the number of susceptible people (the people that can get exposed to the pathogen) at time t.  e(t) is the number of people that have been exposed to the pathogen and can become infected; i(t) is the number of people who are infected; r(t) is the number of people who have become resistant to the pathogen: they have recovered and developed immunity or died.  Now the parameters.&#xD;
&#xD;
beta is usually considered to be the rate of infection or &amp;#034;force of infection&amp;#034;; sigma is the usually the rate at which an exposed individual becomes infective; gamma is usually the removal rate.  We introduced m and n, shift or delay parameters to line up the model curves with the data.&#xD;
&#xD;
Here, we are operating with a delay.  In our model, an individual is in the I compartment when it gets detected (a case of infection) and we continue to consider it infective until it gets &amp;#034;removed&amp;#034; when it has recovered or passed (not when it gets caught).  In reality (in a true model of the outbreak, as in the second example for Italy in the pictures), individuals become infective before they get caught, and they get removed when they get detected. If we assume some kind of uniform delay in the process, we can try to fit the model to the data as we have compartmentalized it (cases and recovered+deceased).  Thus we get a description of the dynamics of the outbreak as described by the data we can collect.  IN ANY CASE, OUR MODELS ARE MODELS OF THE DATA ... the SEIR (SIR) formalism works well, and they have predictive value. The parameter values are in the titles of the pictures for each country.  In general we assume e(0)=i(0)=1 unless stated otherwise in the model label.  Also, s(0)=p, and r(0)=0.&#xD;
&#xD;
R0 in our SEIR-like and SIR-like MODELS:&#xD;
&#xD;
In the SEIR models, the basic reproduction number (R0) is constant and it depends on the parameters of the equations below.  If we do the usual calculation (roughly beta/gamma in the equations below), R0 in our models is about an order of magnitude larger than the estimated-observed R0. There is an intuitive explanation for that.  If we were to model the DETECTED number of cases using the BELIEVED or TRUE number of susceptible individuals, thought to be an order of magnitude higher than the detected ones, then we would need to scale down beta by an order of magnitude to get our results, among other things.  That would give us the R0 that is being measured (my understanding is that R0 was estimated on DETECTED number of cases - but if this is wrong, then my explanation for the disparity is not correct).  The main effect of lockdown is to lower the number of people that can be exposed to the pathogen when it is imposed, roughly at the beginning of the outbreak (see reply to Rober Nachbar&amp;#039;s response for a thought experiment that explains this).  Recall, the basic reproduction number (R0) is constant.  &#xD;
&#xD;
The R0 numbers obtained in the SIR models discussed in a separate section are congruent with the values that are proposed in the research litereature (more about that in the SIR section).&#xD;
&#xD;
A NOTE ABOUT SOME DATA&#xD;
&#xD;
Some countries do not provide any or most data pertaining to recoveries.  We have estimated this data, sometimes extrapolating from available data, sometimes using an estimating function based on average rates from countries that do provide the data, etc. It would take too long to discuss what we have done in each case where recovery data seems to be missing or partial.  We explain the Finnish case.&#xD;
&#xD;
The THL (Finnish health authorities) data for the Finnish model comes from the Finnish Department of Health and Welfare (THL acronym in Finnish).  There is a delay in the release of the data of 1-2 days.  however, the recovery data comes from Johns Hopkins University and occasional reports from the Finnish authorities.  According to the medical chief of staff of the infections diseases clinic at the Helsinki and Uusimaa hospital district, it was &amp;#034;important to define what people mean when they talk about recovery&amp;#034;, and that &amp;#034;eventually it would be important to compile statistics to better understand the disease&amp;#034; and &amp;#034;was taking the numbers with a grain of salt&amp;#034; noting that &amp;#034;the criteria undrelying the data are not always clear and they are not always the same in each country&amp;#034;.  He also said that &amp;#034;tracking recovered patients was not a top priority&amp;#034;. (quotes source is Yle news, the state run news agency). We have serialized the occasional recovery data according to how cases might have arisen in time to obtain a recovery rate function.  We verify the accuracy of this function every time a new datum becomes available.  We use this function also to estimate Norway recoveries.&#xD;
&#xD;
The US model now uses an alternative recovery schedule based on an average of the recovery schedules of countries which are providing these data, as the US recovery data seems lower than it ought to be.  See my comment in the day&amp;#039;s update (April 15). We also use an estimate for UK data which is not available.  Some countries have changed the way they count in the middle of the process, and we have adjusted for this (or not) as we see fit - again, it would take too long to discuss this.  For the most part, we use the data that is available and take it from there.&#xD;
&#xD;
SOME EXTRAS:&#xD;
&#xD;
In the notebook section, where there is space, I include a pdf document with a smoothened version (14 day moving average) of the daily tallies for several countries in Europe, as well as USA and South Korea.  In the SIR section, where there is space, there is a picture of the current positivity rates (number of cases/number of tetsts conducted so far).  It is a useful diagnostic of where a country stands in the process.&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
August 29 - September 5,12,20,27: updated.  We will update the US daily tally only once every two weeks now, during weekends.  There is now sufficient data for a new model.  We will try to compute it if we have time.  Next update, in two weekends.&#xD;
&#xD;
&#xD;
&#xD;
August 22-28:  updating ... We will stop updating the Italian model ... it has run its course, and Italy is on its way to new growth.  We shall continue updating the US daily pictures and the weekly US and world models.  There is now sufficient data to compute a new model for the US.  Hopefully we have time to do this soon.&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
August 2-21: Updated.  Weekly readjusted today, 16th.  The weekly models for the world and US are updated.  It appears the situation in the US is now stable (no more growth) but there is a long tail ahead.  You can see this from the daily case numbers as well.&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
July 28-August 1: Updated.  We are replacing the TRUE model for US with a TRUE weekly model based on the second rise in the outbreak, which is now starting to stabilize.  We project 11 million detected cases in a stretch of about 60 weeks starting our count on June 7 (but the final number might be less if a vaccines becomes available before that).  We will try to derive a forecast from this model later and combine it with the daily cases counting graph.  We have removed one of the pictures for Italy and put up a new model for the whole world.  More data is needed to get a good estimate on the projected number of cases - our guess, at least twice what this model suggests.&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
June 19-July 27:  Updated.  Our model for the US will have to be recalculated once things stabilize.  Right now there is very substantial growth in the number of cases. Results for Italy will be posted with a delay of one day. This section will continue to be updated daily after June 22, unless a note to the contrary is made, for example, during travel in the wilderness without access to electricity.&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
June 13-19:  Updating.  It seems there is an uptick of cases in the US.  We note there is a fatalities per Million model in a reply to the European section for several countries (Italy, USA; Brazil, Sweden, and the UK).  This modeling, matching the R curve of a SIR model to fatalities per million cumulative provides a forecast of fatalities for those countries.  Our forecast is compared to those of IHME and other institutions.  Details are in that section&#xD;
&#xD;
May 29-June 12:  Updating. I have removed the Finland model in this section, it can still be found in the section for Finland and the Nordics.  And I move up to this section the daily new cases forecast that comes out of the &amp;#034;TRUE&amp;#034; model for the US.  It might illustrative to show what you can get out of this model.  At the very bottom of this post in their own section similar forecasts for Italy and the Nordics can be found.  We also have a new fit for the &amp;#034;TRUE&amp;#034; model for Italy.&#xD;
&#xD;
May 28:  There is a new model fit for Finland.  There is also a new model fit for USA.  At the bottom of the post, in the last section, there are new forecasts for the daily number of cases ... you can compare the old and the new model fits.&#xD;
&#xD;
May 23-28:  Updating. We will wait until the end of May to fit a new &amp;#034;TRUE&amp;#034; model for the US.  A semiautomatic, almost optimal fit for the Finland model has been obtained.  We will try to fit models automatically from now one, slowly but surely.  An automatically fitted, almost optimal SIR model for Italy is now posted.&#xD;
&#xD;
May 19-22: updating.  On May 20 the table of contents above (&amp;#034;INCLUDED IN THIS POST&amp;#034; section) was updated. &#xD;
&#xD;
May 18: there is no data for Finland May 17 yet.&#xD;
&#xD;
May16-17:  The Italy &amp;#034;TRUE&amp;#034; models has been fitted again this weekend; next weekend we do the U.S. &#xD;
&#xD;
May 10-15. Updating.  The US and Italy &amp;#034;TRUE&amp;#034; models are now optimally fitted.  The Italy model is fitted to 4 May when restrictions were lifted.  A notebook to do this will be provided later.  From these models one can derive the daily new cases forecast trends in the new section at the end of the post (for more info, read there, it will be up shortly). It takes about 2-4 hours of compute time to make some of these fits.  These models will not be fitted again as restrictions are slowly lifting ... which changes the forecast, hopefully in a noticeable way (or hopefully not, from the state of things point of view).  The Italy SEIR model has been replaced by a SIR model.  Earlier on May 10 I had posted the wrong file for the US model ... it is now correct. And apologies, had the wrong label on the Italy &amp;#034;TRUE&amp;#034; model, now corrected (hopefully) ... &#xD;
&#xD;
May 8-9:  I will leave the &amp;#034;TRUE&amp;#034; model for the US now. It is perhaps the most reliable picture of what lies ahead.  One of my usual SEIR models forecasts a higher (4.4 million) susceptible population, but that number does not square with the &amp;#034;TRUE&amp;#034; model, although soon I will do an automatic and optimal fit of it, which might push this number up.  Over the weekend, a new model for Italy will be forthcoming and &amp;#034;TRUE&amp;#034; models will start to be produced in a fully automated way (I will later post a notebook with the code that does the optimization; it is written withing the simplicity of built in Mathematica functionality, which means it is somewhat slow and NMinimize needs help.&#xD;
&#xD;
May 6-7: Updating.  Soon we will have to update our standard model for Italy.  The &amp;#034;TRUE&amp;#034; model looks very reliable now, enough to make long term forecasts and provide a picture as to what to expect in the longer run. &#xD;
&#xD;
May 5:  The US SEIR models will now alternate with a &amp;#034;TRUE&amp;#034; SIR model (see first paragraph of text above and subsequently for explanation).  Also, there is an SEIR model for Italy and now a &amp;#034;TRUE&amp;#034; SIR model as well.&#xD;
&#xD;
April 30 - May 4: updating, US model alternating every so often&#xD;
&#xD;
April 29: updating. Today I put back the US model with the actual recovery data that is provided. The two models will alternate.  One of our alternative Finnish models squares with the latest THL recovery estimates, so we are showing that model instead of the model we had yesterday.  This picture will be updated again at 2 PM EEST.&#xD;
&#xD;
April 28: Tomorrow I will start alternating the US model with the model obtained from the recovery data that is provided.  I found a source of daily increments for the Spanish data.  The Italian model has been stable now for weeks, since before the peak of the I curve.  Their official data is quite good comparably speaking.&#xD;
&#xD;
April 27: updating.  I will not update Spain after today until I get hold of the data from local authorities if I can.  The JHU data is inconsistent both in number of cases and in recoveries.  It seems the historical series is being updated retrospectively, but according to the Spanish authorities, it is not yet ready.  The temporary lump sums provided temporarily make for very poor data.  When it becomes ready,  I will continue to update this model.  If I can obtain reliable information from press reports, I will update my data thus by hand.&#xD;
&#xD;
April 25-26: updating.  Today, April 26, the recovery data from Spain is highly anomalous, for the second time (in the past, counting method changed).  Unless this datum is corrected, from now on I will use an estimate based on a recovery rate function that can be computed from the data up to yesterday, or constant adjustment as of today based on today&amp;#039;s estimate.  Using this function, we obtain today&amp;#039;s picture.&#xD;
&#xD;
April 24: updating. It seems the model for Spain might require a steeper rise up again.&#xD;
&#xD;
April 23: updating. I have posted yet a new model for Finland which is probably more accurate.  It is hard to say, as the entire time series changes each day due to delays in testing reports.  The date in the Spanish model is now correct.  I seem to have made, unfortunately, a correct forecast of the consequences of going back to work too soon!&#xD;
&#xD;
April 22: updating.  Spain went back to work ten days ago.  We see new growth and forecast it will continue so ... may we be wrong.&#xD;
&#xD;
April 21: updating.  I changed the text above to improve it and hopefully make it more readable, and highlight important issues.  I changed the standard SEIR Finland model for an SIR model that to me, seems more realistic, given the daily tally trends.  The problem with Finnish data is that the entire time series gets corrected every day, not just the last day.  While this makes for accuracy, it makes modeling difficult.   I will alternate with the usual SEIR model.&#xD;
&#xD;
April 19+20: updating.  There is yet another model for Finland using another estimate for the recovery schedule.  At the end of the SIR section there is a picture of the current positivity rates (number of cases/total number of tests).  This should be a useful diagnostic.  I will start keeping a history of these data from now on (I only have a history for Finland).&#xD;
&#xD;
April 18: updating.  There is an additional model for Finland in the SIR section using JHU data instead of THL data&#xD;
&#xD;
April 17: updating.  This section now has the SIR model for Finland, we believe it is a more accurate model for the time being, and based on a just published estimate of recoveries.  Our extrapolating function seems to be working quite well and we have adjusted it to reflect this last change.&#xD;
&#xD;
April 16: updating.  The German model in its section is now an SIR model.  In the Finland section there is a SIR model in which a plateau, rather than a peak, is reached&#xD;
&#xD;
April 15: updating.  Today I will show an alternative model for the USA that uses an average recovery rate obtained from other countries rather than the reported data, which seem low (understandably so, it is not a priority to test people who have tested positive and are recovering at home).  The daily tally in the US has slowed down somewhat, which would lend credibility to the model, which shows the infection curve getting close to a peak.  Also, in the previous model, the number of susceptible individuals was probably too high.  I will compute an estimated peak date tomorrow based on this model.  I will continue to track the old model, but it doesn&amp;#039;t fit here.  I am thinking of adding another response to the post with a number of models which don&amp;#039;t fit here, but I haven&amp;#039;t made up my mind about it yet.&#xD;
&#xD;
April 13-14: Today is the last day the China model will be updated (April 13).  April 14: I am adding a SIR model of Italy in the response with the SIR model for China.  There is also a SIR model for Finland in the Finland section.  It is possible to compute an effective R that is time dependent (but that won&amp;#039;t be in the post, although I will make a notebook available in that section at a later time with this).  I will add SIR models for other countries as well.  I am working on an optimization program for the SIR model to further automate the determination of parameters - if I ever complete this it will also be in the SIR notebook eventually.  On another note, I plan to add a section with models for other Scandinavian countries as soon as I have time.  &#xD;
&#xD;
April 12: updating.  Today I am adding a response with a section which discusses the simpler SIR-like model (which I managed to make work almost just as well as the SEIR model, although it is somewhat more difficult to get it to work).  The SIR-like model has the advantage that analytical solutions are known for SIR models which might be modified for our specific instance of the model, and in the case of our investigations, it yields an adequate value for R0 without the need for any further explanations.&#xD;
&#xD;
April 11: updating.  The daily tally pdf document in the Finland section is now per million inhabitants.  Again note the disparity between European countries wishing to pursue an exit strategy at the moment, and South Korea, the role model country.  I have added a picture which explores a scenario in which Spain lifts restrictions (as it has announced) today.  We are able to model (with some mathematical ingenuity) the effect of this on the S curve, and subsequent effect on the number of infections.  We hope this does not happen, but it might.&#xD;
&#xD;
April 10; updating.  I added some explanations in the text and a picture that illustrates what could happen when restrictions are lifted too early and then reintroduced - this is not a forecast, just a plausible scenario.  I moved the notebook to a new response at the end of the post.  &#xD;
&#xD;
April 9: updating.  In the Finland section there is a pdf document with the smooth version of the daily tallies for several Euro countries, USA, and South Korea.  The Italy model seems very stable now.&#xD;
&#xD;
April 8. Updating.  Today I added, in the main part of the text above, an &amp;#034;intuitive&amp;#034; note about the basic reproduction number (R0) in these models and why they are about an order of magnitude larger than the measured rates.&#xD;
&#xD;
April 6-7.  Updating throughout the day.  France and UK models temporarily suspended due to missing or inconsistent data, until more data is available&#xD;
&#xD;
April 5: Updating throughout the day. There is a new model for Austria in the Europe section.  It&amp;#039;s I curve has p</description>
    <dc:creator>Enrique Garcia Moreno E.</dc:creator>
    <dc:date>2020-02-26T16:43:12Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2308671">
    <title>Solving computationally the &amp;#034;True Genius: Grecian Computer&amp;#034; puzzle</title>
    <link>https://community.wolfram.com/groups/-/m/t/2308671</link>
    <description>*Disclaimer: I&amp;#039;m not a mathematician. I&amp;#039;m merely a hobbyist that loves programming and puzzles. Professionally, I work in IT management.*&#xD;
&#xD;
For my birthday this year, my young nephew (much aware of my love for puzzles) gifted me a wooden brainteaser called &amp;#034;Grecian Computer&amp;#034; from the brand [True Genius][1].&#xD;
&#xD;
[![enter image description here][2]][3]&#xD;
&#xD;
&#xD;
As described on the box, the goal is to &amp;#034;Turn the dials until all 12 columns add up to 42.&amp;#034; Rather than faffing about with trial and error, I figured it would be much more fun and educational to try my hand at writing a bit of Wolfram Language code to produce the solution.&#xD;
&#xD;
My first step was to disassemble the puzzle to understand its structure: five &amp;#034;dials&amp;#034;, the bottom of which remains fixed in place while the remaining four may rotate through twelve positions. Each dial effectively contains a 4x12 matrix comprised of numbers and &amp;#034;holes&amp;#034; where numbers from lower dials may show through.&#xD;
[![enter image description here][4]][5]&#xD;
&#xD;
[![enter image description here][6]][7]&#xD;
&#xD;
[![enter image description here][8]][9]&#xD;
&#xD;
&#xD;
[![enter image description here][10]][11]&#xD;
&#xD;
&#xD;
[![enter image description here][12]][13]&#xD;
&#xD;
Using the Wolfram Language&amp;#039;s functions for handling lists of lists, the puzzle seems readily represented as a three dimensional array: five layers, each with four rows of twelve columns. Here, I represent &amp;#034;holes&amp;#034; as zeroes:&#xD;
&#xD;
    puzzle = {{{8, 3, 4, 12, 2, 5, 10, 7, 16, 8, 7, 8}, {4, 4, 6, 6, 3, 3,&#xD;
          14, 14, 21, 21, 9, 9}, {4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, &#xD;
         15}, {11, 11, 14, 11, 14, 11, 14, 14, 11, 14, 11, 14}}, {{1, 0, &#xD;
         9, 0, 12, 0, 6, 0, 10, 0, 10, 0}, {3, 26, 6, 0, 2, 13, 9, 0, 17, &#xD;
         19, 3, 12}, {9, 20, 12, 3, 6, 0, 14, 12, 3, 8, 9, 0}, {7, 0, 9, &#xD;
         0, 7, 14, 11, 0, 8, 0, 16, 2}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &#xD;
         0, 0}, {22, 0, 16, 0, 9, 0, 5, 0, 10, 0, 8, 0}, {11, 26, 14, 1, &#xD;
         12, 0, 21, 6, 15, 4, 9, 18}, {17, 4, 5, 0, 7, 8, 9, 13, 9, 7, 13,&#xD;
          21}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, &#xD;
         0, 0, 0, 0, 0, 0}, {14, 0, 9, 0, 12, 0, 4, 0, 7, 15, 0, 0}, {11, &#xD;
         6, 11, 0, 6, 17, 7, 3, 0, 6, 0, 11}}, {{0, 0, 0, 0, 0, 0, 0, 0, &#xD;
         0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, &#xD;
         0, 0, 0, 0, 0, 0, 0, 0}, {7, 0, 15, 0, 8, 0, 3, 0, 6, 0, 10, &#xD;
         0}}};&#xD;
Next, we need to create a table of all of the possible permutations, rotating each of the four moving dials through its twelve possible positions, like a clock. I calculated there should be 20,736 possible permutations: 1x12x12x12x12:&#xD;
&#xD;
    puzzlePermutations = &#xD;
      Flatten[&#xD;
       Table[{puzzle[[1]], RotateRight[puzzle[[2]], {0, a}], &#xD;
         RotateRight[puzzle[[3]], {0, b}], &#xD;
         RotateRight[puzzle[[4]], {0, c}], &#xD;
         RotateRight[puzzle[[5]], {0, d}]}, {a, 0, 11}, {b, 0, 11}, {c, 0,&#xD;
          11}, {d, 0, 11}], 3];&#xD;
&#xD;
    Length[puzzlePermutations]&#xD;
&#xD;
The next step was to &amp;#034;lift&amp;#034; the numbers from the lower dials to fill in the &amp;#034;holes&amp;#034; represented as zeroes:&#xD;
&#xD;
    Do[puzzlePermutations[[x]][[i]] = &#xD;
       ReplacePart[puzzlePermutations[[x]][[i]], &#xD;
        AssociationThread[&#xD;
         Position[puzzlePermutations[[x]][[i]], 0] -&amp;gt; &#xD;
          Extract[puzzlePermutations[[x]][[i - 1]], &#xD;
           Position[puzzlePermutations[[x]][[i]], 0]]]], {x, &#xD;
       Length[puzzlePermutations]}, {i, 2, 5}];&#xD;
&#xD;
From here, we just need to select the permutation(s) for which the columns in the top layer all add up to 42:&#xD;
&#xD;
    solution = Select[puzzlePermutations, ContainsExactly[Total@#[[5]], {42}] &amp;amp;];&#xD;
&#xD;
This produces the sole solution to the puzzle, and we can see how we should turn each dial to solve it:&#xD;
&#xD;
    Array[MatrixForm[solution[[1]][[#]]] &amp;amp;, 5]&#xD;
&#xD;
![Array representing the solution.][14]&#xD;
&#xD;
Finally, thanks to a bit of Wolfram Language code, the solved puzzle:&#xD;
&#xD;
[![enter image description here][16]][15]&#xD;
&#xD;
I had fun working through this. I&amp;#039;m sure there are more efficient or elegant ways to write this code and solve the puzzle, and I&amp;#039;d love to hear your thoughts.&#xD;
&#xD;
Thanks for reading!&#xD;
&#xD;
Christopher&#xD;
&#xD;
&#xD;
  [1]: https://www.projectgeniusinc.com/true-genius-collection&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=15291.jpg&amp;amp;userId=20103&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=IMG_4078.png&amp;amp;userId=241091&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=101442.jpg&amp;amp;userId=20103&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=IMG_4071.png&amp;amp;userId=241091&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=58813.jpg&amp;amp;userId=20103&#xD;
  [7]: https://community.wolfram.com//c/portal/getImageAttachment?filename=IMG_4072.png&amp;amp;userId=241091&#xD;
  [8]: https://community.wolfram.com//c/portal/getImageAttachment?filename=97954.jpg&amp;amp;userId=20103&#xD;
  [9]: https://community.wolfram.com//c/portal/getImageAttachment?filename=IMG_4073.png&amp;amp;userId=241091&#xD;
  [10]: https://community.wolfram.com//c/portal/getImageAttachment?filename=31935.jpg&amp;amp;userId=20103&#xD;
  [11]: https://community.wolfram.com//c/portal/getImageAttachment?filename=IMG_4074.png&amp;amp;userId=241091&#xD;
  [12]: https://community.wolfram.com//c/portal/getImageAttachment?filename=61306.jpg&amp;amp;userId=20103&#xD;
  [13]: https://community.wolfram.com//c/portal/getImageAttachment?filename=IMG_4076.png&amp;amp;userId=241091&#xD;
  [14]: https://community.wolfram.com//c/portal/getImageAttachment?filename=solutionarray.png&amp;amp;userId=241091&#xD;
  [15]: https://community.wolfram.com//c/portal/getImageAttachment?filename=IMG_4069.png&amp;amp;userId=241091&#xD;
  [16]: https://community.wolfram.com//c/portal/getImageAttachment?filename=64797.jpg&amp;amp;userId=20103</description>
    <dc:creator>Christopher Fox</dc:creator>
    <dc:date>2021-07-09T15:02:30Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2825207">
    <title>[WSG23] Daily Study Group: Introduction to Probability</title>
    <link>https://community.wolfram.com/groups/-/m/t/2825207</link>
    <description>A Wolfram U Daily Study Group on Introduction to Probability begins on **February 27th 2023**. &#xD;
&#xD;
Join me and a group of fellow learners to learn about the world of probability and statistics using the Wolfram Language. Our topics for the study group include the characterisation of randomness, random variable design and analysis, important random distributions and their applications, probability-based data science and advanced probability distributions.&#xD;
&#xD;
The idea behind this study group is to rapidly develop an intuitive understanding of probability for a college student, professional or interested hobbyist. A basic working knowledge of the Wolfram Language is recommended but not necessary. We are happy to help beginners get up to speed with Wolfram Language using resources already available on Wolfram U.&#xD;
&#xD;
Please feel free to use this thread to collaborate and share ideas, materials and links to other resources with fellow learners.&#xD;
&#xD;
&amp;gt; [**REGISTER HERE**][1]&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
&#xD;
![Wolfram U Banner][3]&#xD;
&#xD;
&#xD;
  [1]: https://www.bigmarker.com/series/daily-study-group-probability-wsg36/series_details&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=NormalConvergence.gif&amp;amp;userId=11733&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=banner.jpg&amp;amp;userId=2823613</description>
    <dc:creator>Marc Vicuna</dc:creator>
    <dc:date>2023-02-07T01:15:38Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3241186">
    <title>[WSG24]  Daily Study Group: Introduction to Calculus</title>
    <link>https://community.wolfram.com/groups/-/m/t/3241186</link>
    <description>A Wolfram U Daily Study Group on [&amp;#034;Introduction to Calculus&amp;#034;][1] begins on Monday, August 12, 2024.&#xD;
&#xD;
Join a cohort of fellow mathematics enthusiasts to learn about the fundamentals of calculus from the recent [Introduction to Calculus][2] ebook by John Clark and myself. Our topics will include functions and limits, differential and integral calculus, and practical applications of calculus.&#xD;
&#xD;
The study group will be led by expert Wolfram U instructor [Luke Titus][4], and I will stop by occasionally to check in with the group. It should be a lot of fun!&#xD;
&#xD;
No prior Wolfram Language experience is required.&#xD;
&#xD;
Please feel free to use this thread to collaborate and share ideas, materials and links to other resources with fellow learners.&#xD;
&#xD;
**Dates**&#xD;
&#xD;
August 12- September 6, 2024, &#xD;
11am-12pm CT (4-5pm GMT)&#xD;
&#xD;
&amp;gt; **[REGISTER HERE][5]**&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
  [1]: https://www.bigmarker.com/series/introduction-to-calculus-wsg56/series_details?utm_bmcr_source=community&#xD;
  [2]: https://www.wolfram-media.com/products/introduction-to-calculus/&#xD;
  [3]: https://www.wolfram.com/wolfram-u/courses/mathematics/introduction-to-calculus/&#xD;
  [4]: https://community.wolfram.com/web/luket&#xD;
  [5]: https://www.bigmarker.com/series/introduction-to-calculus-wsg56/series_details?utm_bmcr_source=community&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=wolframu-banner.png&amp;amp;userId=26786</description>
    <dc:creator>Devendra Kapadia</dc:creator>
    <dc:date>2024-08-05T20:01:27Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/294122">
    <title>Simulating brain tumor growth with diffusion-growth model</title>
    <link>https://community.wolfram.com/groups/-/m/t/294122</link>
    <description>![enter image description here][5]&#xD;
&#xD;
When playing with Mathematica 10 I constructed this very simple example of an application of the NDSolve command, which I wanted to share. The objective is to model the growth of a special kind of brain tumour which affects mainly glial cells in a highly simplified way. I follow modelling ideas discussed in the excellent book [&amp;#034;Mathematical Biology&amp;#034; (Vol 2) by J.D. Murray][1]. It turns out that Gliomas, which are neoplasms of glial cells, i.e. neural calls capable of division, can be be modelled by a rather simple diffusion-growth model. &#xD;
&#xD;
$$\frac{d c}{dt}=\nabla\left(D(x) \nabla c \right)+ \rho c$$ &#xD;
&#xD;
where c is the concentration of cancer cells and $D(x)$ is the diffusion coefficient, which depends on the coordinates; $\rho$ models the growth rate of the cells. The following boundary condition has to be observe (even though will be ignored in the model I use later on):&#xD;
&#xD;
$${\bf n} \cdot D(x) \nabla c = 0 \qquad \text{for}\; x\;  \text{on}\; \partial B.$$&#xD;
&#xD;
In reality the diffusion coefficient will depend on the tissue type, i.e. gray matter vs white matter. I will use an image from a CT can to describe the different densities of the tissue instead. &#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
In the book by Murray great care is taken to estimate the diffusion coefficient but I just want to show the principle here. I use the attached file &amp;#034;brain-crop.jpg&amp;#034; and import it:&#xD;
&#xD;
    img2=Import[&amp;#034;~/Desktop/brain-crop.jpg&amp;#034;]&#xD;
&#xD;
Then I sharpen it and convert it to gray-scale.&#xD;
&#xD;
img3 = Sharpen[ColorConvert[img2, &amp;#034;Grayscale&amp;#034;]]&#xD;
&#xD;
Then I use that image to determine the diffusion coefficient, locally:&#xD;
&#xD;
    diffcoeff = ListInterpolation[ImageData[img3], InterpolationOrder -&amp;gt; 3]&#xD;
&#xD;
I should now determine the boundaries using something like EdgeDetect. As the background is black and allows no diffusion at all, we can simplify this by just setting a larger (rectangular) boundary box like so:&#xD;
&#xD;
    boundaries = {-y, y - 1, -x, x - 1};&#xD;
    &#xD;
    \[CapitalOmega] = &#xD;
      ImplicitRegion[And @@ (# &amp;lt;= 0 &amp;amp; /@ boundaries), {x, y}];&#xD;
&#xD;
&#xD;
Next we can solve the ODE on the domain:&#xD;
&#xD;
    sols = NDSolveValue[{{Div[1./500.*(diffcoeff[798.*x, 654*y])^4*Grad[u[t, x, y], {x, y}], {x, y}] - D[u[t, x, y], t] + 0.025*u[t, x, y] == NeumannValue[0., x &amp;gt;= 1. || x &amp;lt;= 0. || y &amp;lt;= 0. || y &amp;gt;= 1.]}, {u[0, x, y] == Exp[-1000. ((x - 0.6)^2 + (y - 0.6)^2)]}}, u, {x, y} \[Element] \[CapitalOmega], {t, 0, 20}, Method -&amp;gt; {&amp;#034;FiniteElement&amp;#034;, &amp;#034;MeshOptions&amp;#034; -&amp;gt; {&amp;#034;BoundaryMeshGenerator&amp;#034; -&amp;gt; &amp;#034;Continuation&amp;#034;, MaxCellMeasure -&amp;gt; 0.002}}]&#xD;
&#xD;
Note that we start with an initially Gaussian distributed tumour and describe its growth from there. Also I took the fourth power of the diffcoeff function, which changes the relation between grayscale and diffusion rate. You can change the coefficient to get different patterns for the growth. Interestingly, this integration gives a warning about intersecting boundaries in MMA10, which it did not say in the Prerelease version; if someone can fix that, that would be great. For any time we can now overlay the resulting distribution onto the CT image:&#xD;
&#xD;
    ImageCompose[img3, {ContourPlot[&#xD;
       Max[sols[t, x, y], 0] /. t -&amp;gt; 2, {y, 0, 1}, {x, 0, 1}, &#xD;
       PlotRange -&amp;gt; {{0, 1}, {0, 1}, {0.01, All}}, PlotPoints -&amp;gt; 100, &#xD;
       Contours -&amp;gt; 200, ContourLines -&amp;gt; False, AspectRatio -&amp;gt; 798./654., &#xD;
       ColorFunction -&amp;gt; &amp;#034;Temperature&amp;#034;], 0.6}]&#xD;
&#xD;
This should give something like this:&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
Using &#xD;
&#xD;
    frames = Table[&#xD;
       ImageCompose[&#xD;
        img3, {ContourPlot[&#xD;
          Max[sols[d, x, y], 0] /. d -&amp;gt; t, {y, 0, 1}, {x, 0, 1}, &#xD;
          PlotRange -&amp;gt; {{0, 1}, {0, 1}, {0.01, All}}, PlotPoints -&amp;gt; 100, &#xD;
          Contours -&amp;gt; 200, ContourLines -&amp;gt; False, &#xD;
          AspectRatio -&amp;gt; 798./654., ColorFunction -&amp;gt; &amp;#034;Temperature&amp;#034;], &#xD;
         0.6}], {t, 0, 10, 0.5}];&#xD;
&#xD;
we get a list of images, &#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
which can be animated&#xD;
&#xD;
    ListAnimate[frames, DefaultDuration -&amp;gt; 20]&#xD;
&#xD;
 to give&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
This is only a very elementary demonstration, and certainly still far away from a &amp;#034;real&amp;#034; medical application, but it demonstrates the power of NDSolve and might, in a modified form, be useful as a case study for some introductory courses. &#xD;
&#xD;
Cheers,&#xD;
Marco&#xD;
&#xD;
&#xD;
  [1]: http://www.springer.com/new+&amp;amp;+forthcoming+titles+%28default%29/book/978-0-387-95228-4&#xD;
  [2]: /c/portal/getImageAttachment?filename=brain-crop.jpg&amp;amp;userId=48754&#xD;
  [3]: /c/portal/getImageAttachment?filename=BrainTumor-still.jpg&amp;amp;userId=48754&#xD;
  [4]: /c/portal/getImageAttachment?filename=1473BrainTumor-frames.jpg&amp;amp;userId=48754&#xD;
  [5]: /c/portal/getImageAttachment?filename=BrainTumor.gif&amp;amp;userId=48754</description>
    <dc:creator>Marco Thiel</dc:creator>
    <dc:date>2014-07-14T13:54:54Z</dc:date>
  </item>
</rdf:RDF>

