PlayOnLinux上のExcel 2010で日本語入力を可能にする

PlayOnLinux上のExcel 2010で日本語入力を可能にする

環境

  • PlayOnLinux 4.2.10 (Wine 1.7.52)
  • fcitx 4.2.9.1 + Mozc

症状

  • PlayOnLinux (Wine) 上で動作している Excel 2010 に日本語入力ができない
    • 候補などは出るが,確定したときに実際に文字が入力されない
  • いろいろなサイトに書いてある以下のようなレジストリ変更を行っても依然として入力できない
[Software\\Wine\\X11 Driver]
"InputStyle"="root"
  • fcitx の XIM Frontend アドオンのオプションを変更しても変化がない
  • XMODIFIERS="@im=fcitx" などを実行時につけても変化がない

解決方法

  • LANG="ja_JP.UTF8" を指定して起動する
    • 私の環境のデフォルトのロケールが en_US.UTF8 なのでそのせいかもしれない

PlayOnLinux では次のように設定を行う.

あわせて,InputStyle レジストリを書き換えておくと便利かもしれない. これでLinux上で快適に事務書類をやっつけることができるようになった.

参考

Share Comments

Symbolic Math Toolboxでは==演算子で恒等式を評価できない場合がある

Symbolic Math Toolboxでは==演算子で恒等式を評価できない場合がある

現象

if 文に cosh(x)^2 == sinh(x)^2 + 1 を入れても TRUE として評価されないという現象が発生しました.

(x はシンボリック変数です)

解決方法

ドキュメンテーションによると,sym/eq (シンボリック変数に対する == 演算子) は方程式の定義を行うものとして扱われているようです. 要するに,通常の変数に対する == 演算子とは違って,{0, 1} の値を返すものではないのですね.

方程式が恒等式であるかどうかを評価するには,isAlways 関数を使用すれば良いようです.

ちなみに simplify 関数でも同様のことができますが,sym/isAlways の中身を見てみると全く別の処理を行っているようです.

追加の検証と所感

試しに syms x y として2つの変数を定義し,x=y として代入を行った後に x==y を評価してみます.

すると,上の画像のように方程式 x==yy==y として評価され,isAlways を使わない if 文による判定にもパスしています. つまりは,if 文中にシンボリック変数の方程式が放り込まれたときには,左辺と右辺がシンボルとして等価かどうかが判定されているのではないかと考えられます.

このような挙動の違いがあるにもかかわらず,何の警告も出ずに if 文中での方程式の使用が許されてしまうのはちょっと微妙なんじゃないかなあと個人的には思います.

いずれにせよ,恒等式を if で評価する場合は isAlways ということで解決できます. ドキュメントをちゃんと読みましょうということですねー.

Symbolic Math Toolbox について

Symbolic Math Toolbox は MATLAB 上でシンボル計算を可能にするツールボックスで,要するに Mathematica みたいなことができます. このツールボックスの便利なポイントは,MATLAB の強力な数値計算エンジン・関数群とシンボル計算を組み合わせることで,数式による理論から数値によるシミュレーションや実験までの流れがスムーズに構築できるようになっている点です. これを使いはじめるまでは,数理モデリングを Mathematica で行ってから導出した状態方程式を MATLAB に写経してシミュレーションを回す,という非常に面倒な流れを踏んでいました. また,処理した後のシンボリック変数は matファイル に保存できるので,再利用も楽ちんです(Mathematicaはこの辺が弱いような気がします).

Share Comments

MATLABでn角柱を3次元プロットする

MATLABでn角柱を3次元プロットする

概要

MATLAB で \(n\) 角柱をプロットする方法が意外と出てこなかったので書きます.

Read More

Share Comments

マイクロマウスと制御理論 (2)自由度と非ホロノミック拘束

マイクロマウスと制御理論 (2)自由度と非ホロノミック拘束

概要

マイクロマウスと制御理論 の第2回めの記事です. 第1回では,マイクロマウスの典型的な構造である2輪台車の数学モデルの紹介と,壁トレース制御に関する考察を行いました.

マイクロマウスと制御理論 (1)壁トレース制御

2部にわけるということにしていましたが,今回書いてみたところ予想以上に内容が盛り沢山になってしまったため,3部に再編することにします. 今回の記事は,自由度と制御できる変数の数,劣駆動性と非ホロノミック拘束についてを主な内容として書いていきます. 次回,第3回の記事では,絶対運動と相対運動のどちらを制御するか(どの座標系に注目するか)による違いを書きたいと思います.

Read More

Share Comments

[rogy Advent Calendar 2015] マイクロマウスと制御理論 (1)壁トレース制御

[rogy Advent Calendar 2015] マイクロマウスと制御理論 (1)壁トレース制御

まえがき

rogy Advent Calendar 2015,20日目は ざくろくんの Dynamorphism 〜 Haskellでも動的計画法がしたい! 〜 でした. DPなのに再帰的な手法によって計算されるって,よくあるメモ化再帰の計算オーダ改善としてDPが出てくる話の流れに馴染みがある私からすれば「あれ,話が逆なんじゃないかな」と最初思ったのですが,後で詳しく読んでみます. 今回は毛色が変わってロボットの制御に関する話です.

概要

マイクロマウスは,小型ロボットが迷路を走行するスピードを競う競技で,35年以上前から続く長寿大会の一つです.

マイクロマウスで多く用いられるのは,2輪や4輪の台車型の構造をした車両ロボットで,自動車と同様に真横に動くことができないような数学的に特殊な構造を有しています. 真横に動けないという構造的な制約によって多くの困難が生じるのですが,ほとんどの競技者はこの困難を経験的に獲得した手法によって解決していることが多いように見受けられます. 一方で,このような構造を持つ系に対する制御理論は80年代ごろから盛んに研究されていますが,数学的側面から考察されているものが多数であり,実用面について弱いという指摘がよくなされます.

その中で,今回はマイクロマウスという題材に絞って,どのように制御理論が活用できるかについて実用上の観点から考察したいと思います. 分量が多くなりそうなので,今回は前半をAdvent Calendarの一環として書き,後半を12/26に公開する予定です.

目標

第1回(12/21)

  • 2輪台車の数学モデルについて紹介する
  • 迷路の区画の真ん中を走るための「壁(トレース)制御」について解析する

第2回(12/29)

  • 自由度と制御できる変数の数,劣駆動性と非ホロノミック拘束について解説する
  • 絶対運動と相対運動のどちらを制御するかによる違いを説明する

結論を先に示すと

  • 壁との距離を制御するという考え方では原理的に安定化できない
  • 相対運動のつなぎ合わせで走行軌跡を考えるオーソドックスな手法は,制御理論の観点からもある意味で合理的である

Read More

Share Comments