裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

折れ線グラフと棒グラフ--どっちが見やすい?

2021年11月26日 | ブログラミング

折れ線グラフと棒グラフ--どっちが見やすい?

この場合なら,私は 棒グラフのほうを選ぶ

# https://covid19.mhlw.go.jp/public/opendata/newly_confirmed_cases_daily.csv
# 以下では,ダウンロードしたデータを参照

using DataFrames, CSV, Dates
df = CSV.read("/Users/foo/Downloads/newly_confirmed_cases_daily.csv", DataFrame);
filter!(row -> row.Prefecture == "ALL", df); # 全国データのみ抽出
df.date = DateTime.(replace.(df[:, 1], "/" => "-")); # 日付フォーマットに変換
using Plots
tmtick = range(DateTime("2020-01-01"), df.date[end], step=Month(3))
tmticks = Dates.format.(tmtick, "yy-mm");
bar(df.date, df[:, 3], xticks=(tmtick, tmticks), label="") # 棒グラフと
plot(df.date, df[:, 3], xticks=(tmtick, tmticks), color=:black, label="") # 折れ線グラフを比較

それにしても,tidy data は無駄が多い

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

SymPy だけでは解けない積分(?)

2021年11月26日 | ブログラミング

SymPy だけでは解けない積分

完全版は https://r-de-r.github.io/jupyterlab/pi.html

2019 の日付のある誰かのツイートで「Wi-fi パスワードを数式にするのが流行っている」とかあって,そこで示されているのが

  だ。

SymPy でやれば簡単じゃないかと思って,やってみるとおやまあという結果だったので記事にしてみる。

  using SymPy
  @syms x
  expression = (x^3 * cos(x/2) + 1/2) * sqrt(4-x^2)
  expression |> println
  sqrt(4 - x^2)*(x^3*cos(x/2) + 0.5)

なにはともあれ,やってみる。

  a = integrate(expression, (x, -2, 2))

随分時間がかかって,出てきた答えが以下のようなもの。2 つの定積分の和という答えを出してもらっても困る。ちなみに,Integral という関数はない。integrate だ。

  a |> println
  1.0*Integral(1.0*x^3*sqrt(4 - x^2)*cos(x/2), (x, -2, 2)) + 1.0*Integral(0.5*sqrt(4 - x^2), (x, -2, 2))

前半部分をもう一度やってみる。

  b = integrate(x^3*sqrt(4 - x^2)*cos(x/2), (x, -2, 2));

なんの進展もない結果が帰ってくる。後で対処する。

  b |> println
  Integral(x^3*sqrt(-(x - 2)*(x + 2))*cos(x/2), (x, -2, 2))

後半部分をやってみる。

  c = integrate(0.5*sqrt(4 - x^2), (x, -2, 2))

こちらはすぐに,(1.0* というのは気に入らないが)きれいな答えが得られた。π だ。

  c |> println
  1.0*pi

さて,b の integrate(x^3 sqrt(-(x - 2) (x + 2)) * cos(x/2), (x, -2, 2)) だが。

  b0 = integrate(x^3 * sqrt(-(x - 2) * (x + 2)) * cos(x/2), (x, 0, 2));

結局何も進展しない。

  b0 |> println
  Integral(x^3*sqrt(2 - x)*sqrt(x + 2)*cos(x/2), (x, 0, 2))

ここで,式をちゃんと見ると,う?奇関数(懐かしい用語)。

  expression2 = x^3 * sqrt(4 - x^2) * cos(x/2)
  expression2 |> println
  x^3*sqrt(4 - x^2)*cos(x/2)
  expression2(x => -x) |> println
  -x^3*sqrt(4 - x^2)*cos(x/2)

奇関数でした。なので,a の第 1 項は 0 なので,a の答えは a の第 2 項の π ということになる。

やれやれ。

#####

R では,数値微分しかできないのでやってみる。

> y = function(x) (x^3 * cos(x/2) + 1/2) * sqrt(4-x^2)
> options(digits=16)
> integrate(y, -2, 2)
3.141592653589796 with absolute error < 2e-09

#####

WolframAlpha でやってみた。数値積分になるが。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村