算額あれこれ

算額問題をコンピュータで解きます

2021-02-01から1ヶ月間の記事一覧

Julia に翻訳--011 2 群のヒストグラム

#==========Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 2 群のヒストグラムhttp://aoki2.si.gunma-u.ac.jp/R/hist2.html ファイル名: hist2.jl 関数名: hist2 翻訳するときに…

Julia に翻訳--010 対数軸でのプロット

#==========Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 対数軸でのプロットhttp://aoki2.si.gunma-u.ac.jp/R/log-plot.html ファイル名: logplot.jl 関数名: logplot 翻訳す…

Julia に翻訳--009 度数分布表を与えて,正規分布へのあてはめを行い,指定によっては図を描く

#==========Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 度数分布表を与えて,正規分布へのあてはめを行い,指定によっては図を描くhttp://aoki2.si.gunma-u.ac.jp/R/fit_norm…

Julia に翻訳--008 測定値をワイブル確率紙にプロットする

#==========Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 測定値をワイブル確率紙にプロットするhttp://aoki2.si.gunma-u.ac.jp/R/weibull.html ファイル名: weibull.jl 関数名…

Julia の小ネタ--005 : は ^ より演算順位が低い

10^-10, 10^-9, ..., 1 の数列を得ようとして 10 .^ -10:0 としても,1.0000000000000006e-10:1.0:-0.9999999999 になるだけ。これは何も含まない。float.(1.0000000000000006e-10:1.0:-0.9999999999) は Float64[] で「空」である。: は ^ より演算順位が低…

Julia に翻訳--007 対数正規確率紙に累積相対度数をプロットする

#==========Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 対数正規確率紙に累積相対度数をプロットするhttp://aoki2.si.gunma-u.ac.jp/R/lnpp.html ファイル名: lnpp.jl 関数名…

Julia に翻訳--006 正規確率紙に累積相対度数をプロットする

#==========Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 正規確率紙に累積相対度数をプロットするhttp://aoki2.si.gunma-u.ac.jp/R/npp2.html npp2 <- function(x) # データベ…

Julia に翻訳--005 機械学習のプログラム

機械学習ということであるが,例のごとく「機械的に」train:test = 8:2 に分割し,1 回だけの分析である。以下の 2 つの結論だけを述べている。「調整済みの決定係数が 0.5777 であった。特別良くもないが悪くもない結果だった。」「テストデータの RMSE を…

Julia に翻訳--004 正規確率紙に累積相対度数をプロットする

#=Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 正規確率紙に累積相対度数をプロットするhttp://aoki2.si.gunma-u.ac.jp/R/npp.htmlnpp <- function(y, # 度数ベクトル x=NULL,…

Julia の小ネタ--004 左マージン leftmargin

using Plots でグラフを描いたのだけど,左マージン leftmargin を増やすために leftmargin=5mm と書いても,"mm not defined" と,エラーになるばかり。px とか mm という単位が使えるということなのだけど... 色々調べて, using Plots.PlotMeasures を付…

漢字出力の不具合解消された R version 4.0.4

R version 4.0.4 Patched (2021-02-17 r80031) で確認 version.string R version 4.0.4 Patched (2021-02-17 r80031)nickname Lost Library Book > print("漢字の出力,問題なし!")[1] "漢字の出力,問題なし!"

Julia に翻訳--003 データの読み込みと前処理と可視化まで

#===============Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 データの読み込みと前処理と可視化まで R/plotlyの忘備録https://qiita.com/yono2844/items/4a27f8b74dd31e20221…

Julia に翻訳--002 塗り分け地図を描く

#=Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 塗り分け地図を描くhttp://aoki2.si.gunma-u.ac.jp/R/color-map.html ファイル名: colormap.jl関数名: colormap, colormap1, co…

Julia の小ネタ--003 ファイルからベクトルに読み込むプログラム

ファイルからベクトルに読み込むプログラム 一行に 2 個の整数をタブで区切って入力しているファイルがある。1 23 45 6 : これを,nx2 の行列に読み込むとき,str へ readline() で読み込んで,なまじ「改行文字は \r」と思っていたので,split(str, "\r") …

Julia の小ネタ--002 変数の書式付き出力

変数の書式付き出力 Julia の println() で,出力文字列中に「$変数名」を記述すれば,その場所に変数の値が出力されるのは,よく知られている。Python では 「{変数名}」 とするやつだ。 x = sqrt(2)println("x = $x") # x = 1.4142135623730951しかし,こ…

Julia の小ネタ--001 ベクトルの中から特定の値を持つ要素を除いたベクトルを得る

ベクトルの中から特定の値を持つ要素を除いたベクトルを得る R でもやる,インプレースではない方法元のベクトルを変えるなら a に代入。別の変数に代入すれば a は元のまま。 a = [2, 1, 4, 3, 4, 5]a = a[a .!= 4]a # [2, 1, 3, 5] 以下は全てインプレース…

Julia に翻訳--001 日本地図を描く(白地図のみ)

#=Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。以下のプログラムを Julia に翻訳してみる。 日本地図を描く(白地図のみ)http://aoki2.si.gunma-u.ac.jp/R/map.html draw.map <- function(fn) # 境界線データのあるファ…

逆引き辞書 Python, R, Julia (その 4)

メッシュグリッド # Pythona, b = np.meshgrid([1,2,3], [4, 5, 6, 7])a# array([[1, 2, 3],# [1, 2, 3],# [1, 2, 3],# [1, 2, 3]])b# array([[4, 4, 4],# [5, 5, 5],# [6, 6, 6],# [7, 7, 7]]) # Rx = matrix(0, 4, 3) col(x) # 列番号を要素とする行列# [,…

逆引き辞書 Python, R, Julia (その 3)

次元数の変更 # Pythona = np.reshape(np.arange(9), (3, 3)) # array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])b = np.reshape(np.arange(9), (3, -1))c = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])d = np.reshape(c, (9,)) # array([0, 1, 2, 3, 4, 5, 6, 7…

逆引き辞書 Python, R, Julia (その 2)

初期化した配列(ベクトル,行列) ゼロベクトル # Pythonnp.zeros(3) # Rinteger(3)numeric(3)logical(3) # Juliazeros(3) # [0.0, 0.0, 0.0]zeros(Int, 3) # [0, 0, 0]zeros(Bool, 3) # [0 0 0]falses(3) # [0 0 0] ゼロマトリックス # Pythonnp.zeros( (3…

逆引き辞書 Python, R, Julia (その 1)

in 演算子 # Pythona = range(1, 11)3 in range(1, 11) # True3 in a # Truenot(3 in a) # False20 not in a # True # Ra = 1:103 %in% a # TRUE!(3 %in% a) # FALSE20 %in% a # FALSE # Juliaa = 1:10 # 1:10b = collect(a) # [1, 2, ..., 9, 10]typeof(a) …

数学問題を解きましたということなんだが

曲線 y = x^3 上に,点 A(-1, -1),B(1, 1),P(t, t^3) を置く。ただし,0 < t < 1。直線 AP と x 軸のなす角を α,直線 PB と x 軸のなす角を β とする。tan α,tan β を t を用いて表せ。ただし,0 < α < π/2, 0 < β < π/2 とする。tan∠APB を t を用いて…

Julia でコンソールから入力

コンソールから入力 基本は, readline() で文字列を読む。 複数のフィールドがあるなら,split(文字列)でフィールドを分ける。 分割された文字列を,整数に変換するには parse(Int, 文字列),実数に変換するには parse(Float64, 文字列)。 複数の整数,実…

Julia で GLM

############# R > library(COUNT)> example(affairs)> glmaffp <- glm(naffairs ~ kids + yrsmarr2 + yrsmarr3 + yrsmarr4 + yrsmarr5,+ family = poisson, data = affairs)> summary(glmaffp) Call:glm(formula = naffairs ~ kids + yrsmarr2 + yrsmarr3 +…

R 4.0.4 が出たけど(問題解消)

2021/02/23 に, R version 4.0.4 Patched (2021-02-17 r80031) で 解消されたことが確認された ======================================= 日本語がちゃんと表示できないのは,beta 版のまま直っていないなあ > a = …

プログラムの書き方(Python)

if bmi < 18.5: msg = "underweight" elif 18.5 <= bmi < 25: msg = "normal weight" elif 25 <= bmi < 30: msg = "over weight" elif 30 <= bmi < 35: msg ="obese" else: msg = "clinically obese. Go to the hospital immediately" elif の条件判定が冗長…

Python のリスト内包表記について

リスト内包表記って,速くもなんともないようです。むしろ遅い。「1行で簡単に書ける」なんて言葉にだまされて,計算時間が掛かってしまっては本末転倒です。一重ループ def a1(n): s = 0 for i in range(1, n+1): s += 1/i return s def b1(n): return sum(…

numba が速いってさ(Julia もほぼ同じ)

処理系ごとの計算所要時間(n は 外側の for ループの 10^n の n) n = 0 n = 1 n = 2 n = 3numba 0.783 1.62 16.9 167Julia 0.194 1.833 17.531 174.838Fortran 0.866 8.638 97.865 ---Java 2.298 25.903 249.377 ---R 52.671 555.271 ---Python 229.654 27…

リスト内包表記は,リストしか使えない Python のひがみ

別に Python がリストしか使えない訳ではない 以下の例も,numpy ndarray などを使うとか,しかるべき関数を使えばリスト内包表記など使わなくてもできる話である。 しかしなぜか,「リスト内包表記はすごいんだぜ!」的な上から目線の記事が多いので,そう…

Julia と R で整数演算の違い

using RCall R"x <- -5:8" # -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8x = -5:8 # -5:8x = collect(-5:8) # -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 R"x + 1" # -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 x .+ 1 # -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 R"2*x + 3" # -7 -5 -3 -1 1 3…