「二項演算子」を含む日記 RSS

はてなキーワード: 二項演算子とは

2023-01-22

方程式を解く最中自分が何をしているのか分からないということになっている。

数学においてはなんとなく生きてなんとなく死ぬという酔生夢死で終わるのではなかろうかという心地だ。

たとえば速度に関する関係式としてx(t+Δt)-x(t)≒v(t)Δtというのがあるわけだ。

ここから変位xを求めようという解法のテクニックとしてΔτ=t/nとおくとかΔτk=kΔτとおくとか、極め付けにはt=τkとおくことで区分求積法に帰着させる解法が載ってたりするわけだ。

しかしこうした変換式の設定が無意味ではないとどうして分かるのかと思ってしまうというわけだ。

上記の変換式には2つの式にtが登場している。

もしそれぞれのtが出てる式についてt=と変形したとき、各式の左辺を等式で結ぶと恒偽式になるような状態だったら無意味な置き方だということぐらいは私にも分かる。

たとえばa=x+yと置く一方でa^2=x^2+2xy+y^2+1と置いたのではこれは1=0を導く関係式を導くのでこの置き方は無意味だと分かる。

他にも自明な例だけどもx=1と置きながらx=2と置いたり、x+y=2と置きながら2(x+y)=2と置くのも無意味だろう。

しかしこれらは経験的に自明なだけでなく各式をxy平面にグラフとして表したときに交わらないということでも視覚的に自明と分かる。

a+b=tとおくと同時に(a+b)^2=t+1と置いたらどうだろう。これは経験的には自明無意味な置き方に思われるが実際にtだけの式に直すとt^2+t-1=0となる。少なくとも恒偽式ではない式が出てくるわけだ。

となれば経験的にそれとなく直感されない置き方についてはそれが無意味な置き方であるかどうかどうやって検討すればいいのかという話になる。

物理の式なんてものは多変数で高次式なわけだから恒偽式かどうか到底視覚化して判断できるものじゃない。もちろん経験的な勘が働くほど単純な式というのも多くはない。2aF/(M(a+b)+4ab)-gと(F+Mg)ab/(2ab+Ma+Mb)が常に等しいか常に等しくないのかなんて判断きっこないのだ。ある式で置くということにこうした複雑な式を出されたらその置き方が論理的妥当かという検証などもうあきらめてとりあえず従っておくしかないわけである

思えばなんで連立方程式は加減法や代入法で解けるのか、それをその方法で解くということの意味について深く教わった覚えがない。二元二次方程式までならグラフなり平行移動なりの考えで方程式を解くことの図形的な意味合いの考察を垂らされた覚えがなくもないのだが、それは一般方程式について解くことの意味説明にはなっていない。

かくして応用が利かない中途半端説明しか教授されてない結果として自分が何をしているのかも分から形式的方程式を解くだけかあるいはその連立方程式妥当性が検証できないような悲しい人間が出来上がってしまっているわけである

とはいえ任意の個数だけそれぞれが任意関数であるもの同士が任意の個数の任意演算子で結びついている表現されている何ものかについて、それを解くことの意味解説されても分かる気がしないわけだけども(たとえば∫a+bはaという関数に一項演算子積分演算子作用した後、二項演算子+によってbと結び付けられ何がしかの値を示している、みたいなことをものすごく抽象化した話を言っている)。

この問題の難しさは、ある変数が変化すればそれ以外の全ての変数が変化する一方である変数以外の変数が変化した場合もある変数を含む全ての変数が変化するというそ挙動の掌握することの難しさにあるのだろう。これが変化したらあれもこれも変化するという条件の中で論理的整合性を考えるというのは変数の数だけ変数挙動を追跡する考える余力がないといけないというわけで凡人なら簡単に頭がパンクしてしまうわけだ。

効率重視の学習生涯学習において足をひっぱってくるとは思いもよらなかった。

今日も煮え切らない理解方程式を解く式を追っている悲しさよ。

2021-07-14

いい加減、物理教科書は「∫S F・dS」←この表記をやめろ

大学物理教科書では、ベクトル場を曲線lあるいは曲面Sに沿って積分する際に、「∫l F・dl」とか「∫S F・dS」といった表記が使われる。これは教育的に何のメリットも無いので、本当にやめて欲しい。

何が問題

何が問題かと言えば、多くの教科書でこの表記が使われるにも関わらずその定義が書かれていないことだ。これは喩えるなら、実数a, bに対して「a ☆ b」という操作が行われているが、肝心の二項演算子「☆」の定義が無い、というようなものだ。

定義が書いていないなら、例題などからその計算方法を推測するしかない。しかし、よりにもよってその例題が、「Sが球面で、Fの大きさはSの中心から距離にの依存する」といった積分必要ないものしか載っていないのである

このような教科書では、この計算が出てくる概念を正確に学ぶことはできない。

どうすれば良いのか

そもそも、この計算はこんな意味不明表記を使わずとも書ける。

x, y, zを変数とする直交座標で、F = (Fx, Fy, Fz)とすれば、

  • ∫l F・dFは、∫l Fx dx + Fy dy + Fz dz
  • ∫S F・dSは、∫S Fx dy∧dx + Fy dz∧dx + Fz dz∧dy

である。ただし、lやSを適切な「向き」でパラメータ表示しないと符号が逆になることに注意。この表記は、同時期に数学で学ぶであろう微分積分教科書に必ず書いてある。

微分形式を使うメリット

上記のように微分形式を使うことには、単に曖昧さがなくなるというだけでなく、大きなメリットがある。

ふつう物理を学ぶ学生は、

∫S rot(F)・dS = ∫l F・dl

∫V div(F)dV = ∫S F・dS

みたいなベクトル解析の定理を3つほど覚えている。微分形式を使うと、これらの定理を覚える必要がなくなる。

Dを境界がなめらかであるなどの十分によい性質を持った領域とする(2次元でも3次元でもいい)。∂DをDの境界とする。ωはDの内部および境界定義された微分形式とする。このとき、上の一連の定理はすべて

∫D dω = ∫∂D ω

と表される。dωはωの外微分であり、簡単規則さえ覚えれば誰でも機械的計算できる。

2020-04-10

より大きい値なら変数更新する処理

を簡潔に書きたい。

例: newScoreがhighScoreより大きいならhighScoreの値を設定する

普通の書き方:

if (highScore < newScore){
  highScore = newScore;
}

ちょっとうまぶった書き方:

highScore = max(highScore, newScore);

これでもhighScoreが二回出てくるのが気になる。

欲しい構文:

highScore `max`= newScore;

こんな感じで書きたい。

x `div` y みたいに``で囲えば二項演算子として関数適用できる言語もあるから、慣れれば違和感は少ないはず。

2019-11-07

anond:20191107160021

他の演算子は、二項演算子とか単項演算子とか言わないのに、なんで三項演算子だけこう言われるんだろうね。

 
ログイン ユーザー登録
ようこそ ゲスト さん