January 19, 2005

Maxima で材料力学(第2弾)

数式処理システム Maxima で材料力学(第2弾)である。冬休みの宿題でたくさん問題を出したうちの一つであり、学生さんから質問があったものである。本質的に前回の数式処理システム Maxima で材料力学と変わらないが例題はたくさんある方がためになる。同じといっても2次不静定で分布荷重が1次式で与えられているので少し面倒である。beam

今回は、以下のバッチファイル(エディタで作成し例えばbeam011905.txtという名前で保存する)で処理する。(なおsave("hogehoge.lsp", ALL); や load("hogehoge.lsp")で入出力されるのはLISPファイルであり、これとは異なる。)

RATFAC:true$
define(p(x), q_0/l*x);
define(F(x), integrate(-p(x),x)+X_1);
define(M(x),integrate(F(x),x)+X_2);
define(F(x), integrate(-p(x),x)+X_1);
define(M(x),integrate(F(x),x)+X_2);
eq1:integrate(M(x)*diff(M(x),X_1)/(E*I),x,0,l)=0;
eq2:integrate(M(x)*diff(M(x),X_2)/(E*I),x,0,l)=0;
AnsX:solve([eq1,eq2],[X_1,X_2]);
define(F(x), subst(AnsX,F(x))); RAT(F(x));
define(M(x), subst(AnsX,M(x))); RAT(M(x));
define(i(x),integrate(-M(x)/(E*I),x));  RAT(i(x));
define(v(x),integrate(i(x),x)); RAT(v(x));
plot2d(subst([l=1,E=1,I=1, q_0=1], F(x)),[x,0,1]);
plot2d(subst([l=1,E=1,I=1, q_0=1], M(x)),[x,0,1]);
plot2d(subst([l=1,E=1,I=1, q_0=1], i(x)),[x,0,1]);
plot2d(-subst([l=1,E=1,I=1, q_0=1], v(x)),[x,0,1]);

sfd bmd
せん断力図(SFD)曲げモーメント図(BMD)
これを batch("beam011905.txt"); で実行する。なお、 前回書いておくのを忘れたが、MAXIMA が途中でおかしくなってMAXIMA》みたいなプロンプトが出たら「:Q」を入力する。それと最後は、quit(); だ。


投稿者 Akihiro Nakatani : January 19, 2005 2:14 PM