<?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 any discussions tagged with Control Systems sorted by most replies.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2411604" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2527035" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1976589" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1796306" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2828811" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1969880" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/197510" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/382709" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/552181" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/533151" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2190514" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1821155" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/867020" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1153218" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2828826" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2010592" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/491285" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1340126" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1984320" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1511197" />
      </rdf:Seq>
    </items>
  </channel>
  <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/2527035">
    <title>[WSG22] Daily Study Group: Signals, Systems and Signal Processing</title>
    <link>https://community.wolfram.com/groups/-/m/t/2527035</link>
    <description>A Wolfram U daily study group on &amp;#034;Signals, Systems and Signal Processing&amp;#034; begins on May 16, 2022.&#xD;
&#xD;
Join instructors [@Leila Fuladi][at0]  and [@Mariusz Jankowski][at1] and a cohort of fellow learners to study the concepts, mathematics, principles and techniques of signal processing. We&amp;#039;ll cover methods of analysis for both continuous-time and discrete-time signals and systems, sampling and introductory filter design. The concepts and methods of signals and systems play an important role in many areas of science and engineering and many everyday signal processing examples are included. A basic working knowledge of the Wolfram Language is recommended.&#xD;
&#xD;
**[REGISTER HERE][1]**&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
&#xD;
  [1]: https://www.bigmarker.com/series/daily-study-group-signals-systems-and-signal-processing/series_details?utm_bmcr_source=community&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WolframUBanner.jpeg&amp;amp;userId=130003&#xD;
&#xD;
 [at0]: https://community.wolfram.com/web/leilaf&#xD;
&#xD;
 [at1]: https://community.wolfram.com/web/mariuszj</description>
    <dc:creator>Abrita Chakravarty</dc:creator>
    <dc:date>2022-05-06T22:26:34Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1976589">
    <title>Solver for COVID-19 epidemic model with the Caputo fractional derivatives</title>
    <link>https://community.wolfram.com/groups/-/m/t/1976589</link>
    <description>*MODERATOR NOTE: coronavirus resources &amp;amp; updates:* https://wolfr.am/coronavirus&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
First version of this code been published on https://mathematica.stackexchange.com/questions/221609/solver-for-covid-19-epidemic-model-with-the-caputo-fractional-derivatives&#xD;
&#xD;
As it is known in biological system with memory it would be suitable to use fractional derivatives to describe evolution of the system. &#xD;
In a current version of Mathematica 12.1 there is no special solver for integrodifferential equations. &#xD;
Here we show solver with using Haar wavelets for dynamic system  (3) presented in a paper&#xD;
M.A. Khan, A. Atangana, [Modeling the dynamics of novel coronavirus (2019-nCov) with fractional derivative](https://doi.org/10.1016/j.aej.2020.02.033), Alexandria Eng. J.&#xD;
(2020)  &#xD;
[![Figure 1][1]][1]&#xD;
&#xD;
with differential operator replaced with the Caputo definition for fractional derivative  as follows &#xD;
$$\frac {d f}{dt}\rightarrow \frac {1}{\Gamma (1-q)}\int_0^t{\frac{f&amp;#039;(x)dx}{(t-x)^{q}}}$$&#xD;
The code below allows us to reproduce Figure 7 from the paper linked above. Let define functions&#xD;
&#xD;
    h[x_, k_, m_] := WaveletPsi[HaarWavelet[], m x - k];&#xD;
    h1[x_] := WaveletPhi[HaarWavelet[], x];&#xD;
Then we can calculate integrals &#xD;
&#xD;
    Integrate[h[t, k, m], {t, 0, x}, Assumptions -&amp;gt; {k &amp;gt;= 0, m &amp;gt; 0, x &amp;gt; 0}]&#xD;
    &#xD;
    Integrate[h1[t], {t, 0, x}, Assumptions -&amp;gt; {x &amp;gt; 0}]&#xD;
    &#xD;
    Integrate[h[x, k, m]/(t - x)^q, {x, 0, t}, &#xD;
     Assumptions -&amp;gt; {t &amp;gt; 0, k &amp;gt;= 0, m &amp;gt; 0, q &amp;lt; 1}]&#xD;
    &#xD;
    Integrate[h1[x]/(t - x)^q, {x, 0, t}, Assumptions -&amp;gt; {t &amp;gt; 0, q &amp;lt; 1}]&#xD;
With these integrals let define functions&#xD;
&#xD;
    p[x_, k_, m_] := Piecewise[{{(1 + k - m*x)/m, k &amp;gt;= 0 &amp;amp;&amp;amp; 1/m + (2*k)/m - 2*x &amp;lt; 0 &amp;amp;&amp;amp; &#xD;
          1/m + k/m - x &amp;gt;= 0 &amp;amp;&amp;amp; m &amp;gt; 0}, {(-k + m*x)/m, k &amp;gt;= 0 &amp;amp;&amp;amp; 1/m + (2*k)/m - 2*x &amp;gt;= 0 &amp;amp;&amp;amp; &#xD;
          k/m - x &amp;lt; 0 &amp;amp;&amp;amp; 1/m + k/m - x &amp;gt;= 0 &amp;amp;&amp;amp; m &amp;gt; 0}}, 0]&#xD;
    &#xD;
    p1[x_] := Piecewise[{{1, x &amp;gt; 1}}, x]&#xD;
    &#xD;
    pc[t_, k_, m_, q_] := &#xD;
    Piecewise[{{-(t^(1 - q)/(-1 + q)), k == 0 &amp;amp;&amp;amp; 1/m - 2*t &amp;gt;= 0 &amp;amp;&amp;amp; &#xD;
    m &amp;gt; 0 &amp;amp;&amp;amp; t &amp;gt; 0 &amp;amp;&amp;amp; 1/m - t &amp;gt;= 0}, &#xD;
    {-((m^(-1 + q)*(1/(-k + m*t))^(-1 + q))/(-1 + q)), &#xD;
    k &amp;gt; 0 &amp;amp;&amp;amp; 1/m + (2*k)/m - 2*t &amp;gt; 0 &amp;amp;&amp;amp; k/m - t &amp;lt; 0 &amp;amp;&amp;amp; m &amp;gt; 0 &amp;amp;&amp;amp; &#xD;
    1/m + k/m - t &amp;gt; 0}, &#xD;
    {(-t^q + 2*m*t^(1 + q) - m*t*(-(1/(2*m)) + t)^q)/&#xD;
    (t^q*(-(1/(2*m)) + t)^q*(m*(-1 + q))), &#xD;
    k == 0 &amp;amp;&amp;amp; m &amp;gt; 0 &amp;amp;&amp;amp; 1/m - 2*t &amp;lt; 0 &amp;amp;&amp;amp; 1/m - t &amp;gt;= 0}, &#xD;
    {(1/(-1 + q))*((2^(-1 + q)*m^(-1 + 2*q)*(-(-(k/m) + t)^q - &#xD;
    2*k*(-(k/m) + t)^q + 2*m*t*(-(k/m) + t)^q + &#xD;
    2*k*(-((1/2 + k)/m) + t)^q - &#xD;
    2*m*t*(-((1/2 + k)/m) + t)^&#xD;
    q))/((1 + 2*k - 2*m*t)*(k - m*t))^q), &#xD;
    k &amp;gt; 0 &amp;amp;&amp;amp; 1/m + (2*k)/m - 2*t == 0 &amp;amp;&amp;amp; m &amp;gt; 0 &amp;amp;&amp;amp; &#xD;
    1/m + k/m - t &amp;gt; 0}, &#xD;
    {-((1/(-1 + q))*((2^(-1 + q)*m^(-1 + 2*q)*&#xD;
    (-2*(-((1/2 + k)/m) + t)^&#xD;
    q*((1 + 2*k - 2*m*t)*(k - m*t))^&#xD;
    q - 2*k*(-((1/2 + k)/m) + t)^q*&#xD;
    ((1 + 2*k - 2*m*t)*(k - m*t))^q + &#xD;
    2*m*t*(-((1/2 + k)/m) + t)^q*((1 + 2*k - 2*m*t)*&#xD;
    (k - m*t))^q + (-((1 + k)/m) + t)^q*&#xD;
    ((1 + 2*k - 2*m*t)*(k - m*t))^q + &#xD;
                          &#xD;
                 2*k*(-((1 + k)/m) + t)^q*((1 + 2*k - 2*m*t)*(k - m*t))^&#xD;
                              q - 2*m*t*(-((1 + k)/m) + t)^q*&#xD;
                            ((1 + 2*k - 2*m*t)*(k - m*t))^&#xD;
                   q + (-(k/m) + t)^q*&#xD;
                            ((1 + 2*k - 2*m*t)*(1 + k - m*t))^q + &#xD;
                          &#xD;
                 2*k*(-(k/m) + t)^q*((1 + 2*k - 2*m*t)*(1 + k - m*t))^q - &#xD;
                          &#xD;
                 2*m*t*(-(k/m) + t)^q*((1 + 2*k - 2*m*t)*(1 + k - m*t))^&#xD;
                              q - 2*k*(-((1/2 + k)/m) + t)^q*&#xD;
                            ((1 + 2*k - 2*m*t)*(1 + k - m*t))^q + &#xD;
                          2*m*t*(-((1/2 + k)/m) + t)^q*((1 + 2*k - 2*m*t)*&#xD;
                                 (1 + k - m*t))^&#xD;
                   q))/(((1 + 2*k - 2*m*t)*(k - m*t))^q*&#xD;
                       ((1 + 2*k - 2*m*t)*(1 + k - m*t))^q))), &#xD;
            k &amp;gt; 0 &amp;amp;&amp;amp; m &amp;gt; 0 &amp;amp;&amp;amp; 1/m + (2*k)/m - 2*t &amp;lt;= 0 &amp;amp;&amp;amp; &#xD;
              1/m + k/m - t &amp;lt;= 0}, &#xD;
          {-((1/(2*m*(-1 + q)))*((2^q*m^(2*q)*t^q*(-(1/m) + t)^q*&#xD;
                         (-(1/(2*m)) + t)^q - &#xD;
               2^(1 + q)*m^(1 + 2*q)*t^(1 + q)*&#xD;
                         (-(1/m) + t)^q*(-(1/(2*m)) + t)^q - &#xD;
               2^(1 + q)*m^(2*q)*&#xD;
                         t^q*(-(1/(2*m)) + t)^(2*q) + &#xD;
               2^(1 + q)*m^(1 + 2*q)*&#xD;
                         t^(1 + q)*(-(1/(2*m)) + t)^(2*q) + &#xD;
                       t^q*((-1 + m*t)*(-1 + 2*m*t))^q - 2*m*t^(1 + q)*&#xD;
                         ((-1 + m*t)*(-1 + 2*m*t))^q + &#xD;
               2*m*t*(-(1/(2*m)) + t)^q*&#xD;
                         ((-1 + m*t)*(-1 + 2*m*t))^q)/(t^&#xD;
                q*(-(1/(2*m)) + t)^q*&#xD;
                       ((-1 + m*t)*(-1 + 2*m*t))^q))), &#xD;
            k == 0 &amp;amp;&amp;amp; 1/m - 2*t &amp;lt; 0 &amp;amp;&amp;amp; 1/m - t &amp;lt; 0 &amp;amp;&amp;amp; m &amp;gt; 0}, &#xD;
          {(1/(-1 + q))*((2^(-1 + q)*m^(-1 + q)*((-m^q)*(-(k/m) + t)^q - &#xD;
                       2*k*m^q*(-(k/m) + t)^q + &#xD;
               2*m^(1 + q)*t*(-(k/m) + t)^q + &#xD;
                       2*k*m^q*(-((1/2 + k)/m) + t)^q - 2*m^(1 + q)*t*&#xD;
                         (-((1/2 + k)/m) + t)^&#xD;
                 q - ((1 + 2*k - 2*m*t)*(k - m*t))^q*&#xD;
                         (1/(-1 - 2*k + 2*m*t))^q - &#xD;
                       2*k*((1 + 2*k - 2*m*t)*(k - m*t))^q*&#xD;
                         (1/(-1 - 2*k + 2*m*t))^q + &#xD;
                       2*m*t*((1 + 2*k - 2*m*t)*(k - m*t))^q*&#xD;
                         (1/(-1 - 2*k + 2*m*t))^q))/((1 + 2*k - &#xD;
                2*m*t)*(k - m*t))^&#xD;
                   q), 1/m + (2*k)/m - 2*t &amp;lt; 0 &amp;amp;&amp;amp; k &amp;gt; 0 &amp;amp;&amp;amp; m &amp;gt; 0 &amp;amp;&amp;amp; &#xD;
              1/m + k/m - t &amp;gt; 0}}, 0]&#xD;
    &#xD;
    pc1[t_, q_] := Piecewise[{{-(t^(1 - q)/(-1 + q)), t &amp;lt;= 1}}, &#xD;
        -(((-1 + t)^q*t + t^q - t^(1 + q))/((-1 + t)^q*t^q*(-1 + q)))]  &#xD;
&#xD;
Now we have all functions to solve a problem with the given parametres&#xD;
&#xD;
   &#xD;
     Np0 = 8266000; &#xD;
      μp (*Natural mortality rate*)= &#xD;
      1/(76.79 365); Πp (*Birth rate*)= μp Np0 ; ηp \&#xD;
    (*Contact rate*)= 0.05; ψ (*Transmissibility multiple*) = &#xD;
      0.02; ηw (*Disease transmission coeﬃcient*)= &#xD;
      0.000001231; θp (*The proportion of asymptomatic \&#xD;
    infection*)= 0.1243; ωp (*Incubation period*)= &#xD;
      0.00047876;  ρp (*Incubation period*)= &#xD;
      0.005;  τp (*Removal or recovery rate of Ip*)= &#xD;
      0.09871;  τap (*Removal or recovery rate of Ap *)= &#xD;
      0.854302; ϱp (*Contribution of the virus to M by Ip*)= &#xD;
      0.000398; ϖp (*Contribution of the virus to M by Ap*) = &#xD;
      0.001; πp(*Removing rate of virus from M*) = 0.01;&#xD;
&#xD;
Let define variables     &#xD;
&#xD;
    var1 = {Sp1, Ep1, Ip1, Ap1, Rp1, Mp1}; &#xD;
    var = {Sp, Ep, Ip, Ap, Rp, Mp}; aco = {aS, aE, aI, aA, aR, aM}; &#xD;
    aco1 = {aS1, aE1, aI1, aA1, aR1, aM1}; &#xD;
    aco0 = {aS0, aE0, aI0, aA0, aR0, aM0};&#xD;
&#xD;
The problem can be solved on the unit interval, hence we calculate the collocation points as follows&#xD;
  &#xD;
     J = 4; M = 2^J; dx = 1/(2*M);  A = 0; xl = Table[A + l dx, {l, 0, 2 M}]; &#xD;
     xcol = Table[(xl[[l - 1]] + xl[[l]])/2, {l, 2, 2 M + 1}];&#xD;
&#xD;
We can represent our solution with functions defined above as &#xD;
&#xD;
    Sp1[x_, q_] := &#xD;
    Sum[aS[i, j] pc[x, i, 2^j, q], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aS1 pc1[x, q]; &#xD;
    Sp[x_] := &#xD;
    Sum[aS[i, j] p[x, i, 2^j], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aS1 p1[x] + aS0; &#xD;
    Ep1[x_, q_] := &#xD;
    Sum[aE[i, j] pc[x, i, 2^j, q], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aE1 pc1[x, q]; &#xD;
    Ep[x_] := &#xD;
    Sum[aE[i, j] p[x, i, 2^j], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aE1 p1[x] + aE0; &#xD;
    Ip1[x_, q_] := &#xD;
    Sum[aI[i, j] pc[x, i, 2^j, q], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aI1 pc1[x, q]; &#xD;
    Ip[x_] := &#xD;
    Sum[aI[i, j] p[x, i, 2^j], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aI1 p1[x] + aI0; &#xD;
    Ap1[x_, q_] := &#xD;
    Sum[aA[i, j] pc[x, i, 2^j, q], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aA1 pc1[x, q]; &#xD;
    Ap[x_] := &#xD;
    Sum[aA[i, j] p[x, i, 2^j], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aA1 p1[x] + aA0; &#xD;
    Rp1[x_, q_] := &#xD;
    Sum[aR[i, j] pc[x, i, 2^j, q], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aR1 pc1[x, q]; &#xD;
    Rp[x_] := &#xD;
    Sum[aR[i, j] p[x, i, 2^j], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aR1 p1[x] + aR0; &#xD;
    Mp1[x_, q_] := &#xD;
    Sum[aM[i, j] pc[x, i, 2^j, q], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aM1 pc1[x, q]; &#xD;
    Mp[x_] := &#xD;
    Sum[aM[i, j] p[x, i, 2^j], {j, 0, J, 1}, {i, 0, 2^j - 1, 1}] + &#xD;
    aM1 p1[x] + aM0;  &#xD;
&#xD;
 &#xD;
All unknown variables should be joined together in one list &#xD;
   &#xD;
     varM = Join[aco0, aco1, &#xD;
       Flatten[Table[{aS[i, j], aE[i, j], aI[i, j], aA[i, j], aR[i, j], &#xD;
          aM[i, j]}, {j, 0, J, 1}, {i, 0, 2^j - 1, 1}]]];&#xD;
&#xD;
Now we are ready to solve the problem. Since we solve system of equations on the unit interval we define scaling  function (120 is the length of interval time in days)&#xD;
&#xD;
      tn[q_]:= (1/120)^q;&#xD;
     eq1[t_, q_] := -tn[q]/Gamma[1 - q] Sp1[t, q] + Πp/&#xD;
        Np0 - μp Sp[t] - ηp Sp[&#xD;
         t] (Ip[t] + ψ Ap[t])/(Sp[t] + Ep[t] + Ip[t] + Ap[t] + &#xD;
           Rp[t]) - Np0 ηw Sp[t] Mp[t]; &#xD;
     eq2[t_, q_] := -tn[q]/Gamma[1 - q] Ep1[t, q] + ηp  Sp[&#xD;
         t] (Ip[t] + ψ Ap[t])/(Sp[t] + Ep[t] + Ip[t] + Ap[t] + &#xD;
           Rp[t]) + &#xD;
       Np0 ηw Sp[t] Mp[t] - (1 - θp) ωp Ep[&#xD;
         t] - θp ρp Ep[t] - μp Ep[t];&#xD;
     eq3[t_, q_] := -tn[q]/Gamma[1 - q] Ip1[&#xD;
         t, q] + (1 - θp) ωp Ep[t] - (τp + μp) Ip[t]; &#xD;
     eq4[t_, q_] := -tn[q]/Gamma[1 - q] Ap1[t, q] + θp ρp Ep[&#xD;
         t] - (τap + μp) Ap[t]; &#xD;
     eq5[t_, q_] := -tn[q]/Gamma[1 - q] Rp1[t, q] + τp Ip[&#xD;
         t] + τap Ap[t] - μp Rp[t]; &#xD;
     eq6[t_, q_] := -tn[q]/Gamma[1 - q] Mp1[t, q] + ϱp Ip[&#xD;
         t] + ϖp Ap[t] - πp Mp[t];&#xD;
     &#xD;
&#xD;
With these equations we can calculate Figure 6 from the paper above with the next piece of code &#xD;
&#xD;
    &#xD;
     eq[q_] := &#xD;
      Flatten[ParallelTable[{eq1[t, q] == 0, eq2[t, q] == 0, &#xD;
         eq3[t, q] == 0, eq4[t, q] == 0, eq5[t, q] == 0, &#xD;
         eq6[t, q] == 0}, {t, xcol}]];&#xD;
     Do[icv[i] = {Sp[0] == 8065518/Np0, Ep[0] == 200000/Np0, &#xD;
        Ip[0] == 282/Np0, Ap[0] == 200/Np0, Rp[0] == 0, &#xD;
        Mp[0] == 50000/Np0};&#xD;
      eqM[i] = Join[eq[i], icv[i]];&#xD;
      solv[i] = &#xD;
       FindRoot[eqM[i], Table[{varM[[j]], .1}, {j, Length[varM]}], &#xD;
        MaxIterations -&amp;gt; 1000];&#xD;
      lstSv[i] = &#xD;
       Table[{x 120 , Np0 Evaluate[Sp[x] /. solv[i]]}, {x, 0, 1, .01}]; &#xD;
      lstEv[i] = &#xD;
       Table[{x 120, Np0 Evaluate[Ep[x] /. solv[i]]}, {x, 0, 1, .01}]; &#xD;
      lstIv[i] = &#xD;
       Table[{x 120, Np0 Evaluate[Ip[x] /. solv[i]]}, {x, 0, 1, .01}]; &#xD;
      lstAv[i] = &#xD;
       Table[{x 120, Np0 Evaluate[Ap[x] /. solv[i]]}, {x, 0, 1, .01}]; &#xD;
      lstRv[i] = &#xD;
       Table[{x 120, Np0 Evaluate[Rp[x] /. solv[i]]}, {x, 0, 1, .01}]; &#xD;
      lstMv[i] = &#xD;
       Table[{x 120, Np0 Evaluate[Mp[x] /. solv[i]]}, {x, 0, &#xD;
         1, .01}];, {i, {99/100, 9/10, 8/10, 7/10, 6/10}}];] &#xD;
&#xD;
Visualization of solution:&#xD;
 &#xD;
&#xD;
    {ListLinePlot[Table[lstSv[i], {i, {99/100, 9/10, 8/10, 7/10, 6/10}}], &#xD;
      Frame -&amp;gt; True, &#xD;
         FrameLabel -&amp;gt; {&amp;#034;t, days&amp;#034;, &amp;#034;\!\(\*SubscriptBox[\(S\), \(p\)]\)&amp;#034;}, &#xD;
      PlotRange -&amp;gt; All], &#xD;
       ListLinePlot[&#xD;
      Table[lstEv[i], {i, {99/100, 9/10, 8/10, 7/10, 6/10}}], &#xD;
      Frame -&amp;gt; True, &#xD;
         FrameLabel -&amp;gt; {&amp;#034;t, days&amp;#034;, &amp;#034;\!\(\*SubscriptBox[\(E\), \(p\)]\)&amp;#034;}, &#xD;
      PlotRange -&amp;gt; All], &#xD;
       ListLinePlot[&#xD;
      Table[lstIv[i], {i, {99/100, 9/10, 8/10, 7/10, 6/10}}], &#xD;
      Frame -&amp;gt; True, &#xD;
         FrameLabel -&amp;gt; {&amp;#034;t, days&amp;#034;, &amp;#034;\!\(\*SubscriptBox[\(I\), \(p\)]\)&amp;#034;}, &#xD;
      PlotRange -&amp;gt; All], &#xD;
       ListLinePlot[&#xD;
      Table[lstAv[i], {i, {99/100, 9/10, 8/10, 7/10, 6/10}}], &#xD;
      Frame -&amp;gt; True, &#xD;
         FrameLabel -&amp;gt; {&amp;#034;t, days&amp;#034;, &amp;#034;\!\(\*SubscriptBox[\(A\), \(p\)]\)&amp;#034;}, &#xD;
      PlotRange -&amp;gt; All], &#xD;
       ListLinePlot[&#xD;
      Table[lstRv[i], {i, {99/100, 9/10, 8/10, 7/10, 6/10}}], &#xD;
      Frame -&amp;gt; True, &#xD;
         FrameLabel -&amp;gt; {&amp;#034;t, days&amp;#034;, &amp;#034;\!\(\*SubscriptBox[\(R\), \(p\)]\)&amp;#034;}, &#xD;
      PlotRange -&amp;gt; All], &#xD;
       ListLinePlot[&#xD;
      Table[lstMv[i], {i, {99/100, 9/10, 8/10, 7/10, 6/10}}], &#xD;
      Frame -&amp;gt; True, FrameLabel -&amp;gt; {&amp;#034;t, days&amp;#034;, &amp;#034;M&amp;#034;}, &#xD;
         PlotRange -&amp;gt; All, PlotLegends -&amp;gt; Automatic]}  &#xD;
&#xD;
 [![Figure 2][3]][3]&#xD;
&#xD;
&#xD;
  [1]: https://i.stack.imgur.com/mwuYC.png&#xD;
  [2]: https://i.stack.imgur.com/j05bg.png&#xD;
  [3]: https://i.stack.imgur.com/3NjrP.png</description>
    <dc:creator>Alexander Trounev</dc:creator>
    <dc:date>2020-05-16T17:30:58Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1796306">
    <title>Use InterpolatingPolynomial with a lot of data?</title>
    <link>https://community.wolfram.com/groups/-/m/t/1796306</link>
    <description>I have a matrix of size 681*441, that is 300321 points; the elements are satellite measurements of temperature in a geographical area; the observations are equally spaced&#xD;
&#xD;
I also have a vector of size 681 and another of size 441with the values of latitude and longitude associated to each one of the previous measurements. I want to construct an interpollation polynomial using [This function][1]. However, there are two issues with this. The first is that I am unnable to write by hand the X(longitude), Y(latitude) and T(f(x,y)) values as in this example: &#xD;
&#xD;
    InterpolatingPolynomial[{{{0, 0}, 1}, {{1, 0}, 7}, {{0, 1}, &#xD;
       10}, {{2, 1}, 40}, {{3, 3}, 151}, {{1, 2}, 47}}, {x, y}] &#xD;
&#xD;
Also, I am worried on the fact that since there are so may points, the resulting expression will be too complicated for me to implement in an optimization software.&#xD;
&#xD;
Can someone please advice me on how to proceed?&#xD;
Thanks.&#xD;
&#xD;
&#xD;
  [1]: https://reference.wolfram.com/language/ref/InterpolatingPolynomial.html</description>
    <dc:creator>Jaime de la Mota</dc:creator>
    <dc:date>2019-09-26T07:57:20Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2828811">
    <title>Export data (graphs) in excel/txt/csv format?</title>
    <link>https://community.wolfram.com/groups/-/m/t/2828811</link>
    <description>Hello,&#xD;
&#xD;
I want to export the 2 bode plot graphs either in a .txt file (so that I can then import the .txt file in excel and redo the graph in excel as it looks like the two graphs in Mathematica), or export directly the two graphs from Mathematica in excel format (.xlsx or .csv) and then to be able to plot the graphs in excel.&#xD;
&#xD;
    H = TransferFunctionModel[1/s, s]&#xD;
    Result = &#xD;
     BodePlot[H[I*2*\[Pi]*freq], {freq, 10^-3, 10^6}, &#xD;
      PlotRange -&amp;gt; {{-90, 60}, {-180, 0}}]&#xD;
    Export[&amp;#034;C:\\Desktop\\test.xlsx&amp;#034;, Result]&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
&#xD;
I already tried a variant with that Export above, but when I open Excel I don&amp;#039;t really know how I could plot the 2 graphs in Excel considering how the data are exported, so that I can redo the 2 graphs from Mathematics in excel.&#xD;
&#xD;
The path where the txt/excel/CSV file is exported from my example (C:\\ Desktop \\ test.xlsx) can be different, it doesn&amp;#039;t matter.&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=4061Capture.JPG&amp;amp;userId=2803344&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=9443Capture2.JPG&amp;amp;userId=2803344&#xD;
&#xD;
Attached are Mathematica 13.2 Notebook file and the exported excel file (test.xlsx).  &#xD;
Thank you.</description>
    <dc:creator>Cornel B.</dc:creator>
    <dc:date>2023-02-11T17:37:11Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1969880">
    <title>Wave Equation resolution with control</title>
    <link>https://community.wolfram.com/groups/-/m/t/1969880</link>
    <description>Please help me,&#xD;
Hi, I’m really stuck with this program, this is the resolution of a wave equation with a control function.&#xD;
&#xD;
    t1 = 2;&#xD;
    indicator[x_] := Piecewise[{{1, 0 &amp;lt; x &amp;lt; 0.5}}, 0];&#xD;
    (* problème du controle*)&#xD;
    E1 = D[u[x, t], {x, 2}] - D[u[x, t], {t, 2}] ==  indicator[x] * (Cos[\[Pi] t1] + Sin[\[Pi] t1] + 2 Cos[\[Pi] x] Sin[2 \[Pi] t1]) Sin[\[Pi] x];&#xD;
    (*données initiales propres *)&#xD;
    ic = {u[x, 0] == Sin[\[Pi] x], Derivative[0, 1][u][x, 0] ==   \[Pi] Sin[\[Pi] x]};&#xD;
    (* Condition aux bord de Dirichlet*)&#xD;
    bc = {u[0, t] == 0, u[1, t] == 0};&#xD;
    (*résolution analytique de l&amp;#039;équation *)&#xD;
    sol = DSolve[{E1, ic, bc}, u, {x, t}]&#xD;
    &#xD;
   If I try to solve this problem there, like that, it&amp;#039;s not working, but if I delete the function indicator[x]  it works. I don&amp;#039;t know where the problem is? &#xD;
Have I not well-defined indicator function?</description>
    <dc:creator>Lina Lili</dc:creator>
    <dc:date>2020-05-10T01:27:35Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/197510">
    <title>Amount of liquid in a tank that isn&amp;#039;t level</title>
    <link>https://community.wolfram.com/groups/-/m/t/197510</link>
    <description>Hello,

This is my the first time here.

How can I calulate the amount of liquid in a fuel oil tank if the tank is not level?

Looking down from the top of the tank there is an x and y axis. The x axis is running the length of the tank and the y is front to back. At one end I have a sensor measuring  the height of the liquid. If the tank is off on the y axis I wiil get a false reading. The same holds true for the x axis.
If both are off the same, a false reading. 

I was never good at math. So if someone has a formula I would very much appreciate it. Or point me in the right direction.

Thank you for any and all help,

Ken</description>
    <dc:creator>Ken McGrath</dc:creator>
    <dc:date>2014-02-07T20:18:12Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/382709">
    <title>Plot pole and zero of transfer function in version 10.0</title>
    <link>https://community.wolfram.com/groups/-/m/t/382709</link>
    <description>How to display pole and zero locations of transfer function without parameters, in version 8 there is RootLocusPlot command to Achieve this, but in version 10.0  it doesn&amp;#039;t work without parameters and  we should determine k parameter between kmin &amp;amp; kmax. Help me in version 10.0.</description>
    <dc:creator>Mehdi Rezai</dc:creator>
    <dc:date>2014-11-02T21:53:55Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/552181">
    <title>Using Petri Net logic in control via Arduino - discrete event/hybrid system</title>
    <link>https://community.wolfram.com/groups/-/m/t/552181</link>
    <description>Hello,&#xD;
I would like to make a bigger university project with Arduino. You can see the scheme here:&#xD;
&#xD;
![Logic][1]&#xD;
&#xD;
&#xD;
I would like to control the system using Petri Net logic. Petri Nets should be vizualized on the PC. PC is connected to Arduino and controlled system is connected to Arduino of course. Controlled system would be of discrete event or hybrid character.&#xD;
&#xD;
This is good example:&#xD;
![Scheme][2]&#xD;
&#xD;
You can see that the places of Petri net are connected to actuator. So when the token is in the place - the actuator turn on. So in our case - when the token is in the place - the specific pin on Arduino or function is executed.&#xD;
&#xD;
I think that this is possile to do with ModelPlug library. (Or do you have better idea?)&#xD;
&#xD;
The problem is that SystemModeler does not have Petri net Library. There is PNlib library for Dymola and OpenModelica - https://github.com/lochel/PNlib&#xD;
&#xD;
But in SystemModeler it produces for example this error:&#xD;
&#xD;
    Building &amp;#034;PNlib.Examples.ConTest.Speed&amp;#034; as experiment &amp;#034;Speed 1&amp;#034; started at 14:29:23&#xD;
    Error: [:0:0-0:0]Error occurred while flattening model PNlib.Examples.ConTest.Speed&#xD;
    Error: [C:/Users/erikn_000/Documents/PNlib-1.1/PNlib/Blocks/enablingOutCon.mo:59:9-59:71]Failed to elaborate expression: enablingProb[remTAout[1:nremTAout]].&#xD;
    Warning: [:0:0-0:0]In component P2.enableOut, in relation arcWeightSum == 0.0,  ==  on Real numbers is only allowed inside functions.&#xD;
    Warning: [:0:0-0:0]In component P2.enableIn, in relation arcWeight[i] == 0.0,  ==  on Real numbers is only allowed inside functions.&#xD;
    Warning: [:0:0-0:0]In component P2.enableIn, in relation arcWeightSum == 0.0,  ==  on Real numbers is only allowed inside functions.&#xD;
    Warning: [:0:0-0:0]In component P1.enableOut, in relation arcWeight[i] == 0.0,  ==  on Real numbers is only allowed inside functions.&#xD;
    Warning: [:0:0-0:0]In component P1.enableOut, in relation arcWeightSum == 0.0,  ==  on Real numbers is only allowed inside functions.&#xD;
    Warning: [:0:0-0:0]In component P1.enableIn, in relation arcWeight[i] == 0.0,  ==  on Real numbers is only allowed inside functions.&#xD;
    Warning: [:0:0-0:0]In component P1.enableIn, in relation arcWeightSum == 0.0,  ==  on Real numbers is only allowed inside functions.&#xD;
    Error: No executable generated C:/Users/ERIKN_~1/AppData/Local/Temp/sme.4.0.1_1440332963_41.exe&#xD;
    Error: No settings file generated C:/Users/ERIKN_~1/AppData/Local/Temp/sme.4.0.1_1440332963_41_init.sim&#xD;
&#xD;
Do you have any ideas how to complete my project? Do you think that it is possible to relative simply fix this PNlib library?&#xD;
Thank you very much!&#xD;
&#xD;
  [1]: /c/portal/getImageAttachment?filename=otazka_a_schema.png&amp;amp;userId=552166&#xD;
  [2]: /c/portal/getImageAttachment?filename=otazka_a_schema_vytah.png&amp;amp;userId=552166</description>
    <dc:creator>Tibor Doma</dc:creator>
    <dc:date>2015-08-23T12:47:05Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/533151">
    <title>Need serious help with lists!</title>
    <link>https://community.wolfram.com/groups/-/m/t/533151</link>
    <description>Here is my code:&#xD;
&#xD;
(* Take inputs for ECEF *) x = Input[&amp;#034;What is the x coordinate?&amp;#034;]; y = Input[&amp;#034;What is the y coordinate?&amp;#034;]; z = Input[&amp;#034;What is the z coordinate?&amp;#034;];&#xD;
&#xD;
(* Put in Coordinate Form *) GeoPositionXYZ[{x, y, z}, &amp;#034;ITRF00&amp;#034;];&#xD;
&#xD;
(* Convert to LLA *) GeoPosition[%]&#xD;
&#xD;
(* Display Map *) GeoGraphics[GeoMarker[GeoPosition[%]],GeoRange -&amp;gt; &amp;#034;World&amp;#034;, GeoProjection -&amp;gt; &amp;#034;Robinson&amp;#034;]&#xD;
&#xD;
It lets me input coordinates for one point in ECEF, then converts it to latitude/longitude/height and shows it on a map.&#xD;
&#xD;
I want to keep showing the 2d map... but I also want to show a 3d globe that locates the coordinates on the 3d cartesian plane also.&#xD;
I need to be able to put in more than one coordinate. It needs to keep asking for more x&amp;#039;s, more y&amp;#039;s, more z&amp;#039;s... until I stop inputting them. Eventually it&amp;#039;s going to be modified to pull them out of a text file, but for now these two changes need to be made. Any ideas/hints/help/guidance is appreciated. Thanks.</description>
    <dc:creator>Nathan Lundholm</dc:creator>
    <dc:date>2015-07-20T07:16:28Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2190514">
    <title>FMU generated by SM does not run in  Simulation Center</title>
    <link>https://community.wolfram.com/groups/-/m/t/2190514</link>
    <description>I exported a model to FMU that depends on external files to work, but when I run it&#xD;
the simulation center does not compute variables, it just show parameters.  If I  run&#xD;
normally the modelica file it runs fine, but when I load the FMU generated  by the same&#xD;
System Modeler the problem occurs. I&amp;#039;ve put the external files in  system modeler working directory.&#xD;
&#xD;
The model represents a  Hybrid Electric Vehicle and it comes inside a package with a library.&#xD;
The Package comes with many other models. I simulated and exported the &amp;#034;SHEVpowerFiltSocOO&amp;#034; model. I modified it a little bit so that it have a real output now (outputs battery SOC variable).&#xD;
The picture below shows the expected result (run normally):&#xD;
![SOC variable expected behavior][1]&#xD;
&#xD;
But when I load the FMU version and run it shows:&#xD;
![SOC variable wrong behavior][2]&#xD;
&#xD;
The SOC variable was just for example, but other variables have the same issue.&#xD;
&#xD;
The FMU is the 2.0 version for Co-Simulation.&#xD;
I&amp;#039;ve attached the package, lib and external files (.txt).&#xD;
&#xD;
The original package is here:&#xD;
http://omwebbook.openmodelica.org/SMEHV&#xD;
&#xD;
The only modification was the SOC_Output variable, which is just a Real Output interface with causality as output.&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Model_working.png&amp;amp;userId=2190488&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=model_not_working.png&amp;amp;userId=2190488</description>
    <dc:creator>Michel Oliveira</dc:creator>
    <dc:date>2021-02-10T18:52:42Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1821155">
    <title>MicrocontrollerKit support for AT Mega 2560</title>
    <link>https://community.wolfram.com/groups/-/m/t/1821155</link>
    <description>I am trying to use Mathematica&amp;#039;s `MicrocontrollerKit`, which was introduced with the release of 12.0 and was featured in a video during the WTC2019 in a video last week. The very first example of the **Microcontroller Kit Tutorial** works with a regular **Arduino Uno**, but it fails with an **Arduino Mega 2560**. However, both Arduinos work with the **Arduino IDE**, which is also used by Mathematica&amp;#039;s `MicrocontrollerKit`! For very good reasons, we rely on the **Arduino Mega 2560**, which is one of the most versatile Arduino.&#xD;
&#xD;
![This error message appears when clicking the **Red Button**:][1]&#xD;
&#xD;
The error message obviously refers to a communication issue. The RX/TX lights blink erratically while `MicrocontrollerEmbedCode` fails. Mathematica&amp;#039;s `MicrocontrollerKit` provides 149 `Target` entities, but there is none that fits **Arduino Mega 2560**. Did I miss a target name? Is there a way to specify the communication properties?&#xD;
&#xD;
Mathematica&amp;#039;s `MicrocontrollerKit` is really nice, since it provides a simple link between the huge **Control Systems** section and **real life**.&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=MicrocontrollerKitErrorMsg.png&amp;amp;userId=23829</description>
    <dc:creator>Ernst H.K. Stelzer</dc:creator>
    <dc:date>2019-11-07T21:03:27Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/867020">
    <title>Solve an optimal control problem with the Wolfram Language?</title>
    <link>https://community.wolfram.com/groups/-/m/t/867020</link>
    <description>I have Mathematica version 8, but will gladly get the latest version if it is necessary to accomplish the following goal: find two control functions that maximize a certain functional in the control functions and 2 other functions subject to inequality constraints on the control functions and also non-linear differential equation constraints involving all 4 functions. If this is not possible, I will settle for solving for only one control function. Can someone please give me an idea of what must be done?</description>
    <dc:creator>Iuval Clejan</dc:creator>
    <dc:date>2016-06-03T01:27:25Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1153218">
    <title>Controlling a Meccano G15 KS robot with the EZ-Robot system</title>
    <link>https://community.wolfram.com/groups/-/m/t/1153218</link>
    <description>![Controlling a Meccano G15 KS robot with the EZ-Robot system][1]&#xD;
&#xD;
Hi there, (Sharing an idea)&#xD;
&#xD;
I am a hobbyist user of Mathematica.  I am using it to control my three robot systems. Firstly there is Jeeves. It is a modified Meccano G15 KS. The Meccano control system has been removed and replaced with another control system (EZ-Robot). This new controller and its PC based control software is capable of starting an external program. In my case that external program is Mathematica. The sensors on the robot read in data and pass these data onto the PC based control software which then fires up Mathematica which in turn carries out some computation and passes a result back to the PC based control software. Data is stored in files. Using this set up means there can be latency. Sometimes quite a bit. For me this is not a problem as the robot is mainly used to test algorithms. Waiting a minute for a result is not an issue.&#xD;
![Modified Meccano G15 KS][2]&#xD;
&#xD;
&#xD;
This robot can read text from a sheet of paper or screen and then repeat what it has seen. It can also read text and evaluate it. For example given the question, &amp;#034;What is the capital of England&amp;#034; the robot will reply &amp;#034;London&amp;#034;.  It can recognise objects in an image(potentially thousands).  By reading in text similar to the following &amp;#034;AABBCCD&amp;#034;, it will play sounds relating to the musical notes.  All this is made possible because of Mathematica. As stated above I use this robot for algorithm testing.  In this case Mathematica is used indirectly.&#xD;
&#xD;
My second robot is a small 16 DOF humanoid robot. This robot is controlled by a 24 channel Pololu Maestro servo controller.  &#xD;
![Modified EZ-Robot][3]&#xD;
![Rear of modified EZ][4]&#xD;
&#xD;
Now this robot is controlled directly by Mathematica.  All code is contained in a notebook and uses all the features of connected devices contained within Mathematica.  Data can be read from and sent to the robot. Just by using the Manipulate function every servo in the robot can be controlled by Mathematica.  I have not done so at the moment but to create a robot animation system with Mathematica would only be a few dozen lines of code.  That is one of my first tasks. This robot is a modified EZ-Robot now totally under the control of Mathematica.&#xD;
&#xD;
My third robot is a robot workbench.  Built by me to test more complex algorithms.  This is controlled by a 24 channel Pololu Maestro servo controller.  In turn controlled completely by, you guessed Mathematica.&#xD;
&#xD;
![Robot Workbench 1][5]&#xD;
&#xD;
![Robot Workbench 2][6]&#xD;
&#xD;
![Robot Workbench 3][7]&#xD;
&#xD;
![Robot Workbench 4][8]&#xD;
&#xD;
![Robot Workbench 5][9]&#xD;
&#xD;
&#xD;
The robot workbench only has a servo control program written at the moment.  This control program makes use of the Manipulate function. I have some great plans for this workbench in the future. Under the control of Mathematica it will perform tasks using all the power of the neural networks and machine learning.  Image and text processing. To name but a few.&#xD;
&#xD;
My big goal is to create a Robot Operating System that will contain all the code required for the robots to carry out complex tasks. This would include features such as inverse and forward kinematics. I want to achieve this using only Mathematica.&#xD;
&#xD;
My reason for putting my robots on the forum is simply to see if anyone is doing anything similar. With only a few lines of Mathematica code I have been able to get the robots to read text and interpret it. I am sure that my Robot Operating System will be thousands of lines of code. I plan to write it in two parts. A front end to carry out general robot tasks, such as movement and manipulation, data processing from sensors and the solving of problems using neural nets and machine learning. A back end that can be made to match up to a specific controller or micro controller. That is my plan. Any code I produce will be made available to this forum.&#xD;
&#xD;
Well I had better get back to coding.&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
# CODE&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
The code for the G15 KS simply performs a task and returns a result to the control software of the robot. There is no direct control. The humanoid robot and the workbench code have direct control.&#xD;
&#xD;
The following is the code that allows the modified G15 KS to read text and repeat what it has seen.&#xD;
&#xD;
    str = TextRecognize[Import[&amp;#034;C:\\mathscripts\\images\\img3.jpg&amp;#034;],  Language -&amp;gt; &amp;#034;English&amp;#034;];&#xD;
    &#xD;
    str = StringReplace[str, Whitespace -&amp;gt; &amp;#034; &amp;#034;];&#xD;
    &#xD;
    str&#xD;
    &#xD;
    s = OpenWrite[File[&amp;#034;C:\\mathscripts\\jeeves\\output.txt&amp;#034;]]&#xD;
    &#xD;
    WriteLine[s, str];&#xD;
    &#xD;
    Close[s];&#xD;
&#xD;
Here the image taken by the robots camera is picked up by mathematica and the TextRecognize function gets the text from the image and stores it in a file ready to be used by the robots control system.  Pretty simple coding to get a robot to read text.&#xD;
&#xD;
The following code allows the G15 KS to read text, evaluate it.&#xD;
&#xD;
    str = TextRecognize[Import[&amp;#034;C:\\mathscripts\\images\\img3.jpg&amp;#034;], Language -&amp;gt; &amp;#034;English&amp;#034;];&#xD;
    &#xD;
    str = StringReplace[str, Whitespace -&amp;gt; &amp;#034; &amp;#034;];&#xD;
    &#xD;
    str&#xD;
    &#xD;
    s = OpenWrite[File[&amp;#034;C:\\mathscripts\\jeeves\\output2.txt&amp;#034;]]&#xD;
    &#xD;
    res = Interpreter[&amp;#034;SemanticExpression&amp;#034;][str];&#xD;
    &#xD;
    If[NumericQ[res], res = N[res], res]&#xD;
    &#xD;
    WriteLine[s, ToString[res]];&#xD;
    &#xD;
    Close[s];&#xD;
&#xD;
The following code allows the G15 KS to identify an object within an image. Actually thousands of objects&amp;#039;&#xD;
&#xD;
    txt = ImageIdentify[Import[&amp;#034;C:\\mathscripts\\images\\img3.jpg&amp;#034;]]&#xD;
    &#xD;
    s = OpenWrite[File[&amp;#034;C:\\mathscripts\\jeeves\\output3.txt&amp;#034;]]&#xD;
    &#xD;
    WriteLine[s, ToString[CommonName[txt]]];&#xD;
    &#xD;
    Close[s];&#xD;
&#xD;
The following code allows the G15 KS to read text relating to geographic location. This was used by the robot to read the text generated by a mobile phone app and speak the result.&#xD;
&#xD;
    str = TextRecognize[Import[&amp;#034;C:\\mathscripts\\images\\img3.jpg&amp;#034;], Language -&amp;gt; &amp;#034;English&amp;#034;];&#xD;
    str = StringReplace[str, Whitespace -&amp;gt; &amp;#034; &amp;#034;];&#xD;
    str = StringSplit[str];&#xD;
    If[NumberQ[ToExpression[str[[1]]]] &amp;amp;&amp;amp; NumberQ[ToExpression[str[[2]]]],&#xD;
      $GeoLocation = &#xD;
       GeoPosition[{ToExpression[str[[1]]], ToExpression[str[[2]]]}];&#xD;
      country = CountryData[$GeoLocationCountry, &amp;#034;Name&amp;#034;];&#xD;
      citytown = CityData[$GeoLocationCity, &amp;#034;Name&amp;#034;];&#xD;
      s = OpenWrite[File[&amp;#034;C:\\mathscripts\\jeeves\\output4.txt&amp;#034;]];&#xD;
      WriteLine[s, country &amp;lt;&amp;gt;  &amp;#034; is the country I am in and the nearest town or city is called &amp;#034; \&amp;lt;&amp;gt;  citytown];&#xD;
      Close[s];,&#xD;
      s = OpenWrite[File[&amp;#034;C:\\mathscripts\\jeeves\\output4.txt&amp;#034;]];&#xD;
      WriteLine[s, &amp;#034;Invalid input Please try again &amp;#034; ];&#xD;
      Close[s];];&#xD;
&#xD;
The following code allows the robot to play a tune.  The text the robot must read is as follows: AABBCCD&#xD;
&#xD;
    str = TextRecognize[Import[&amp;#034;C:\\mathscripts\\images\\img3.jpg&amp;#034;], Language -&amp;gt; &amp;#034;English&amp;#034;];&#xD;
    &#xD;
    str = StringReplace[str, Whitespace -&amp;gt; &amp;#034;&amp;#034;];&#xD;
    &#xD;
    str&#xD;
    &#xD;
    s = OpenWrite[File[&amp;#034;C:\\mathscripts\\jeeves\\output5.txt&amp;#034;]]&#xD;
    &#xD;
    WriteLine[s, str];&#xD;
    &#xD;
    Close[s];&#xD;
&#xD;
It can be seen from the code that most of the work is passing data in files.  The code to carry text and image analysis is simply one line of code.  It can not get better than that.&#xD;
&#xD;
The code that follows is the code the is used to control all of the humanoid and workbench servo.  Firstly the workbench.&#xD;
&#xD;
    Button[&amp;#034;Open connection to Maestro&amp;#034;, dev = DeviceOpen[&amp;#034;Serial&amp;#034;, &amp;#034;COM5&amp;#034;]]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 1, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1224, &amp;#034;Right Base&amp;#034;}, &#xD;
      496, 2016, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 0, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1224, &amp;#034;Left Base&amp;#034;}, &#xD;
      496, 2016, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 3, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1216, &amp;#034;Right Pivot&amp;#034;},&#xD;
       1008, 2000, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 2, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1216, &amp;#034;Left Pivot&amp;#034;}, &#xD;
      1008, 2000, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 4, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1216, &amp;#034;Right Elbow&amp;#034;},&#xD;
       1024, 2144, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 5, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1270, &amp;#034;Left Elbow&amp;#034;}, &#xD;
      1024, 2144, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 14, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1240, &amp;#034;Right Wrist&amp;#034;},&#xD;
       496, 2000, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 15, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1182, &amp;#034;Left Wrist&amp;#034;}, &#xD;
      496, 2000, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 7, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1200, &#xD;
       &amp;#034;Right Gripper&amp;#034;}, 1024, 1296, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 6, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1200, &#xD;
       &amp;#034;Left Gripper&amp;#034;}, 1024, 1296, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 8, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1480, &amp;#034;Turn Table&amp;#034;}, &#xD;
      992, 2000, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 10, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1240, &#xD;
       &amp;#034;Move Vertical&amp;#034;}, 496, 2000, 1}]&#xD;
    &#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 11, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}], {{a, 1200, &#xD;
       &amp;#034;Move Horizontal&amp;#034;}, 800, 1600, 1}]&#xD;
    &#xD;
    CloseDevice[dev];&#xD;
&#xD;
Now the code to move the humanoid servos using Manipulate.&#xD;
&#xD;
    dev = DeviceOpen[&amp;#034;Serial&amp;#034;, &amp;#034;COM5&amp;#034;]&#xD;
    Manipulate[&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 0, BitAnd[a*4, 127], &#xD;
       BitAnd[BitShiftRight[(a*4), 7] , 127]}]; &#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 1, BitAnd[b*4, 127], &#xD;
       BitAnd[BitShiftRight[(b*4), 7] , 127]}]; &#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 2, BitAnd[c*4, 127], &#xD;
       BitAnd[BitShiftRight[(c*4), 7] , 127]}]; &#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 3, BitAnd[d*4, 127], &#xD;
       BitAnd[BitShiftRight[(d*4), 7] , 127]}]; &#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 5, BitAnd[e*4, 127], &#xD;
       BitAnd[BitShiftRight[(e*4), 7] , 127]}]; &#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 4, BitAnd[f*4, 127], &#xD;
       BitAnd[BitShiftRight[(f*4), 7] , 127]}]; &#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 6, BitAnd[g*4, 127], &#xD;
       BitAnd[BitShiftRight[(g*4), 7] , 127]}];&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 7, BitAnd[h*4, 127], &#xD;
       BitAnd[BitShiftRight[(h*4), 7] , 127]}];&#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 15, BitAnd[l*4, 127], &#xD;
       BitAnd[BitShiftRight[(l*4), 7] , 127]}]; &#xD;
     DeviceWriteBuffer[&#xD;
      dev, {132, 14, BitAnd[k*4, 127], &#xD;
       BitAnd[BitShiftRight[(k*4), 7] , 127]}], {{a, 1224, &amp;#034;Left Base&amp;#034;}, &#xD;
      496, 2016, 1}, {{b, 1224, &amp;#034;Right Base&amp;#034;}, 496, 2016, &#xD;
      1}, {{c, 1216, &amp;#034;Left Pivot&amp;#034;}, 1008, 2000, &#xD;
      1}, {{d, 1216, &amp;#034;Right Pivot&amp;#034;}, 1008, 2000, &#xD;
      1}, {{e, 1270, &amp;#034;Left Elbow&amp;#034;}, 1024, 2144, &#xD;
      1}, {{f, 1270, &amp;#034;Right Elbow&amp;#034;}, 1024, 2144, &#xD;
      1}, {{k, 1024, &amp;#034;Right Wrist&amp;#034;}, 496, 2000, &#xD;
      1}, {{l, 1024, &amp;#034;Left Wrist&amp;#034;}, 496, 2000, &#xD;
      1}, {{g, 1200, &amp;#034;Left Gripper&amp;#034;}, 1024, 1296, &#xD;
      1}, {{h, 1200, &amp;#034;Right Gripper&amp;#034;}, 1024, 1296, 1}]&#xD;
&#xD;
That&amp;#039;s all for now at a later date there will be a lot more to come.  It can be seen from above that very little code is required to get a great deal of functionality.&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Main111120224.png&amp;amp;userId=20103&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=20170722_204150%282%29.jpg&amp;amp;userId=1152078&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=20170722_210215%282%29.jpg&amp;amp;userId=1152078&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=20170722_210324%283%29.jpg&amp;amp;userId=1152078&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=20170722_205616%282%29.jpg&amp;amp;userId=1152078&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=20170722_205908%282%29.jpg&amp;amp;userId=1152078&#xD;
  [7]: http://community.wolfram.com//c/portal/getImageAttachment?filename=20170722_210128%283%29.jpg&amp;amp;userId=1152078&#xD;
  [8]: http://community.wolfram.com//c/portal/getImageAttachment?filename=20170722_204931%282%29.jpg&amp;amp;userId=1152078&#xD;
  [9]: http://community.wolfram.com//c/portal/getImageAttachment?filename=20170722_205445%282%29.jpg&amp;amp;userId=1152078</description>
    <dc:creator>Terence Smith</dc:creator>
    <dc:date>2017-07-26T17:11:41Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2828826">
    <title>Why &amp;#034;Log10&amp;#034; (ScalingFunctions) is not working?</title>
    <link>https://community.wolfram.com/groups/-/m/t/2828826</link>
    <description>Hello,&#xD;
&#xD;
[https://reference.wolfram.com/language/ref/ScalingFunctions.html][1]&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
**Why does the frequency axis not show as described in the documentation by using &amp;#034;Log10&amp;#034;? (ie 10^-3, 10^-2, 10^-1, 10^0, 10^1, 10^2, 10^3,...,10^6)**&#xD;
&#xD;
    H = TransferFunctionModel[1/s, s]&#xD;
    Result1 = &#xD;
     BodePlot[H[I*2*\[Pi]*freq], {freq, 10^-3, 10^6}, &#xD;
      PlotRange -&amp;gt; {{-90, 60}}, PlotLayout -&amp;gt; &amp;#034;Magnitude&amp;#034;, &#xD;
      ScalingFunctions -&amp;gt; {&amp;#034;Log10&amp;#034;, &amp;#034;dB&amp;#034;}, &#xD;
      FrameLabel -&amp;gt; {HoldForm[Text[Frequency[Hz]]], &#xD;
        HoldForm[Text[Magnitude[dB]]]}, GridLines -&amp;gt; Automatic, &#xD;
      PlotStyle -&amp;gt; Thickness[0.005]]&#xD;
![enter image description here][3]&#xD;
&#xD;
&#xD;
    Result2 = &#xD;
     BodePlot[H[I*2*\[Pi]*freq], {freq, 10^-3, 10^6}, &#xD;
      PlotRange -&amp;gt; {{-180, 0}}, PlotLayout -&amp;gt; &amp;#034;Phase&amp;#034;, &#xD;
      ScalingFunctions -&amp;gt; {&amp;#034;Log10&amp;#034;, &amp;#034;Degree&amp;#034;}, &#xD;
      FrameLabel -&amp;gt; {HoldForm[Text[Frequency[Hz]]], &#xD;
        HoldForm[Text[Phase[Degree]]]}, GridLines -&amp;gt; Automatic, &#xD;
      PlotStyle -&amp;gt; Thickness[0.005]]&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
&#xD;
    Result3 = &#xD;
     BodePlot[H[I*2*\[Pi]*freq], {freq, 10^-3, 10^6}, &#xD;
      PlotRange -&amp;gt; {{-90, 60}, {-180, 0}}, &#xD;
      ScalingFunctions -&amp;gt; {{&amp;#034;Log10&amp;#034;, &amp;#034;dB&amp;#034;}, {&amp;#034;Log10&amp;#034;, &amp;#034;Degree&amp;#034;}}, &#xD;
      FrameLabel -&amp;gt; {{HoldForm[Text[Frequency[Hz]]], &#xD;
         HoldForm[Text[Magnitude[dB]]]}, {HoldForm[Text[Frequency[Hz]]], &#xD;
         HoldForm[Text[Phase[Degree]]]}}, GridLines -&amp;gt; Automatic, &#xD;
      PlotStyle -&amp;gt; Thickness[0.005]]&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
&#xD;
  [1]: https://reference.wolfram.com/language/ref/ScalingFunctions.html&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=1460Capture4.JPG&amp;amp;userId=2803344&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=2930Capture1.JPG&amp;amp;userId=2803344&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=8330Capture2.JPG&amp;amp;userId=2803344&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=7659Capture3.JPG&amp;amp;userId=2803344&#xD;
&#xD;
Mathematica 13.2 Notebook file attached.&#xD;
&#xD;
Thank you.</description>
    <dc:creator>Cornel B.</dc:creator>
    <dc:date>2023-02-11T19:37:23Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2010592">
    <title>Help!! I can&amp;#039;t find the error in this program? (InverseFunction)</title>
    <link>https://community.wolfram.com/groups/-/m/t/2010592</link>
    <description>Hello, please I &amp;#039;m really stuck in this program, I can&amp;#039;t find the error, I really need to solve this problem&#xD;
If anyone can help me, please&#xD;
&#xD;
    T = 2 \[Pi];&#xD;
    l = \[Pi];&#xD;
    a = 1/2;&#xD;
    w1 = 2 \[Pi];&#xD;
    (*Définit la fonction indicatrice*)&#xD;
    indicator[x_] := Piecewise[{{1, 0 &amp;lt; x &amp;lt; \[Pi]/2}}, 0];&#xD;
    S[x_, t_] := Sum[ Exp[- t  n^2] Integrate[x Sin[s n^2], {s, 0, \[Pi]}]  Sin[x n^2], {n, 5}]&#xD;
    (*controllability map*)&#xD;
    G[x_, t_] := indicator[x] S[x, T - t]&#xD;
    (*Grammian operator Q*)&#xD;
    Q[x_, t_] := (indicator[x])^2  Integrate[(S[x, T - s])^2, {s, T - l, T}]&#xD;
    (*inverse function*)&#xD;
    v[x_, t_] := InverseFunction[a + Q][x, t];&#xD;
    (*Test*)&#xD;
    v[w1 - S[1, T],T]</description>
    <dc:creator>Lina Lili</dc:creator>
    <dc:date>2020-06-22T23:35:36Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/491285">
    <title>How to get the result of a multiplication between a matrix and a vector?</title>
    <link>https://community.wolfram.com/groups/-/m/t/491285</link>
    <description>I want to get the result of a multiplication between a matrix and a vector, basically I want to do a change of reference frame of a vector, so I cannot perform this operation in mathematica.&#xD;
&#xD;
    A = {{2, 4}, {2, 1}} // MatrixForm&#xD;
    C2 = {{6}, {5}} // MatrixForm&#xD;
    A.C2 (*This does not work*)&#xD;
&#xD;
I want to get something like this:&#xD;
&#xD;
    {{2, 4}, {2, 1}}.{{6}, {5}} // MatrixForm&#xD;
&#xD;
Actually I have something more complex, but this is enough to show my problem.&#xD;
&#xD;
Do you have any suggestion?</description>
    <dc:creator>Alberto de la Torre</dc:creator>
    <dc:date>2015-05-04T18:17:40Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1340126">
    <title>Phase unwrapping</title>
    <link>https://community.wolfram.com/groups/-/m/t/1340126</link>
    <description>A common function to &amp;#039;unwrap&amp;#039; a list of data which has had a modulus operation working on it is still absent from the Wolfram Language. This also quite commonly happens when you measure something in the lab which is for example an angle that jumps back to &amp;#039;0&amp;#039; after every rotation. To solve this, I wrote my own function, hopefully this is helpful for you. Here it is:&#xD;
&#xD;
    ClearAll[Unwrap]&#xD;
    Unwrap[lst_List]:=Unwrap[lst,2Pi] (* phase jumps of 2Pi is the default because of trigonometric funtions *)&#xD;
    Unwrap[lst_List,\[CapitalDelta]_]:=Unwrap[lst,\[CapitalDelta],Scaled[0.5]] (* default tolerance is half the phase jump \[CapitalDelta] *)&#xD;
    Unwrap[lst_List,\[CapitalDelta]_,tolerance_]:=Module[{tol,jumps},&#xD;
        tol=If[Head[tolerance]===Scaled,&#xD;
            \[CapitalDelta] tolerance[[1]]&#xD;
        ,&#xD;
            tolerance&#xD;
        ];&#xD;
        jumps=Differences[lst];&#xD;
        jumps=-Sign[jumps]Unitize[Chop[Abs[jumps],tol]];&#xD;
        jumps=\[CapitalDelta] Prepend[Accumulate[jumps],0];&#xD;
        jumps+lst&#xD;
    ]&#xD;
&#xD;
When a list is given, the default period is assumed to be 2Pi, and the tolerance Pi. But one can specify any one likes with the second and third arguments.&#xD;
&#xD;
So let&amp;#039;s create some data and plot it:&#xD;
&#xD;
    dat=Table[Sin[0.2x]+4Sin[0.05x],{x,0,200}];&#xD;
    ListPlot[dat,AspectRatio-&amp;gt;1/4,ImageSize-&amp;gt;600,PlotMarkers-&amp;gt;Automatic]&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
Now, let&amp;#039;s take the modulus of the data and plot it:&#xD;
&#xD;
    mod=Mod[dat,4,-2];&#xD;
    ListPlot[mod,AspectRatio-&amp;gt;1/4,ImageSize-&amp;gt;600,PlotMarkers-&amp;gt;Automatic]&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
Now we indeed have many sharp jumps, but with the above function we can undo this:&#xD;
&#xD;
    unmod=Unwrap[mod,4];&#xD;
    ListPlot[unmod,AspectRatio-&amp;gt;1/4,ImageSize-&amp;gt;600,PlotMarkers-&amp;gt;Automatic]&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
So we return now to our original data; great!&#xD;
&#xD;
With some tricks we can also do it with 2D-data, here i create some data, plot it, mod it (what a mess!), plot it, unmod it, plot it:&#xD;
&#xD;
    dat=Table[Sin[0.2x]+4Sin[0.05x+0.05y]+Sin[0.1y],{x,0,200},{y,0,200}];&#xD;
    ListPlot3D[dat]&#xD;
    mod=Mod[dat,3];&#xD;
    ListPlot3D[mod]&#xD;
    unmod=Unwrap[#,3]&amp;amp;/@mod;&#xD;
    tmp=Unwrap[#,3]-#&amp;amp;[unmod[[All,1]]];&#xD;
    unmod=unmod+tmp;&#xD;
    ListPlot3D[unmod]&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
Hope you enjoy it and find it useful!&#xD;
&#xD;
&#xD;
  [1]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2018-05-15at18.56.11.png&amp;amp;userId=73716&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2018-05-15at18.56.15.png&amp;amp;userId=73716&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2018-05-15at18.56.18.png&amp;amp;userId=73716&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2018-05-15at18.59.33.png&amp;amp;userId=73716</description>
    <dc:creator>Sander Huisman</dc:creator>
    <dc:date>2018-05-15T17:04:40Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1984320">
    <title>COVID19: Italian SIRD estimates and prediction</title>
    <link>https://community.wolfram.com/groups/-/m/t/1984320</link>
    <description>*MODERATOR NOTE: coronavirus resources &amp;amp; updates:* https://wolfr.am/coronavirus&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
In this document I apply the standard SIRD model , using Italian COVID19 data. Up to date, May 23, there are 89 daily observations, starting from February 24. The model is adjusted and does not cover all possible people to be infected, but only those who been tested and were found positive until May 23. In Italy more than 3.3 million tests were curried so far and the accumulated number of infected people is 228,658 (almost 7%). The infected/tested ratio over the recent days is very low, at most 1% (about 650 new infected per day), compared to more than 30% two months ago. Today is the 89th day and I will solve the problem to predict the key variables until the middle of June  (t = 115). Assuming the current number of new infected is around 600 per day, the susceptible population is therefore set equal to about 245,000 over the period under investigation.&#xD;
&#xD;
After I have retrieved the data, I use 79 out of 89 observations to estimate the key SIRD parameters. Thereafter, using these estimates I solve the system of ODE equations and plot their paths together with the current observations.&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/6c6598b1-6832-4720-b72a-1cc6be059ca0</description>
    <dc:creator>Christos Papahristodoulou</dc:creator>
    <dc:date>2020-05-24T16:10:26Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1511197">
    <title>Solve a second order ODE  modeling a mass-spring system?</title>
    <link>https://community.wolfram.com/groups/-/m/t/1511197</link>
    <description>I am new to Mathematica and still learning the language. I have question involving a mass -spring system and need to solve a second order ODE for multiple points at multiple times but can&amp;#039;t write it properly. Please help the question and code written is attached.&#xD;
&#xD;
    g = 10&#xD;
    &#xD;
    x = Range[-.5, .5, 1/13]&#xD;
    &#xD;
    DSolve[p&amp;#039;&amp;#039;[x,y[t]] == -100 (Norm[{p[x, y[t]]} - {p[x - 1, &#xD;
             y[t]]}])*(UnitVector[{p[x, y[t]]} - {p[x - 1, y[t]]}]) - &#xD;
       100 (Norm[{p[x, y[t]]} - {p[x + 1, y[t]]}])*(UnitVector[{p[x, &#xD;
             y[t]]} - {p[x + 1, y[t]]}]) - &#xD;
       10 (p&amp;#039;[x, y[t]] - p&amp;#039;[x - 1, y[t]]) - &#xD;
       10 (p&amp;#039;[x, y[t]] - p&amp;#039;[x + 1, y[t]]), p[x, y[t]], y[t]]</description>
    <dc:creator>Areeb Qureshi</dc:creator>
    <dc:date>2018-10-14T14:37:36Z</dc:date>
  </item>
</rdf:RDF>

