#topicpath * 力学とMaxima [#r3c358ce] [[力学>../]]での[[Maxima>../../Maxima]]の利用について整理します。 ** Maxima の使い方 [#fe33372b] ※ 講義では wxMaxima を利用します。~ ※ [[Maximaのページ>../../Maxima]]の講義での[[使い方のまとめ>http://robo.mydns.jp/Lecture/PDF/Mechanics/Maxima.pdf]]を参照してください。~ // - 基本的な技 // -- 数式入力後、Shift キーを押しながら Enter キーを押すと数式処理される。 // -- % は前回の計算結果を意味する。 // -- %pi は円周率を意味する。 // -- 四則演算など // --- 足し算・引き算 : + - // --- かけ算・割り算 : * / // --- べき乗 : ^ // - 講義で利用した関数 // -- 数学的な関数 // --- sqrt()~ // 平方根 // --- sin(), cos(), tan()~ // 引数はラジアンであることに注意。 // sin(%pi/2) // --- atan2(y,x)~ // tan() の逆関数。引数が二つあるのは、y/x が無限大であったりする場合でも入力できるように。~ // 結果がラジアン表示されることに注意。 // atan2(sqrt(3),1) // -- 数式処理の関数 // --- float()~ // 分数や $ \pi $ を小数で表す。 // float(%) // --- diff()~ // 微分する // diff(sin(x), x) // --- eliminate()~ // 数式からある変数を消去する。~ // 複数の数式を [ ] で囲み、消去したい変数も [ ] で囲む。 // eliminate( [x+y=3, x-y=2], [x]) // --- ode2( 微分方程式, 解きたい変数, 独立変数)~ // 微分方程式を解析的に解く。~ // 注1) 微分を表す diff の前にアポストロフィ ' をつけるのは、この微分を実行しないで式として渡すことを意味している。~ // (実行すると v は定数と見なされてゼロになってしまう。)~ // 注2)微分法定式を解く際、パラメタの正負によって解が変わることがあるので、Maxima から質問されることがある。~ // positive; とか negative; とか zero とか適切に答える。~ // 注3)時々、解は 解きたい変数=…という形ではなく表示される。~ // solve() を使って表示しなおす。~ // ~ ** 静止画・動画による利用例 [#p63751a0] *** 例1: 基本的な関数 [#sd92b10b] -- %, %pi, float(), sin(), atan2(), diff(), eliminate() などの例~ [[http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_EX01.mp4_thumbnail.jpg>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_EX01.mp4]]~ *** 例2: 等加速度運動の公式 [#m61b166b] -- 等加速度運動の公式を求める~ [[http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_EX02.mp4_thumbnail.jpg>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_EX02.mp4]] *** 例3: 投射の問題 [#q479be98] -- 投射問題を解く~ &ref(http://robo.mydns.jp/Lecture/PHOTO/Mechanics/Maxima_2D.png,,30%);~ -- 軌道の式を求める(WMV形式)~ [[&ref(http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_2Dpath.wmv_thumbnail.jpg);>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_2Dpath.wmv]]~ -- 水平到達距離を求める(WMV形式)~ [[&ref(http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_2Dpeek.wmv_thumbnail.jpg);>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_2Dpeek.wmv]]~ *** 例4: 速さに比例した抵抗力(微分方程式の解析解) [#kd89ca97] --- 速度 $ v $ を $ t $ の関数として、微分方程式 $ m\frac{dv}{dt} = - mg - bv $ を解く。 ode2( m * 'diff(v,t) = - m * g - b * v, v, t); --- パラメタに数値を入れてグラフにする。 g : 9.8; m : 0.1; b : 0.01; %c: g*m/k; plot2d( rhs(%o1), [t, 0, 10]); パラメタ g, m , b, %c に数値を入れて t が 0 から 10 の間についてグラフに描く。 *** 例5: 速さに比例した抵抗力(微分方程式の数値計算) [#mf8b4eb2] --- 速度 $ v $ を $ t $ の関数として、微分方程式 $ m\frac{dv}{dt} = - mg - bv $ を数値的に解く。 m : 0.1; g : 9.8; b : 0.01; data : rk( -g -k/m*v, v, 0, [t, 0, 10, 0.1]); plot2d( [discrete, data] ); remvalue(m, g, b, %c); ~ *** 例6: 速さの2乗に比例した抵抗力(微分方程式の解析解) [#kda46c07] --- 速度 $ v $ を $ t $ の関数として、微分方程式 $ m\frac{dv}{dt} = - mg + kv^2 $ を数値的に解く。 ode2( m * 'diff(v,t) = -m*g + k*v^2, v, t); solve(%, v); ratsubst(-1, exp(2*%c*sqrt(g*k*m)/m), %); m : 0.1; g : 9.8; k : 0.01; plot2d( rhs( %o999999[1]), [t, 0, 10]); ※ %o999999 のところには、実際に微分方程式を解いて solve で得られた答えを指定する。 ** 教科書章末問題 [#v8845f67] --- 教科書~ &amazon(4873610745,image); &amazon(4873610745,title); &amazon(4873610753,image); &amazon(4873610753,title);~ の例題や章末問題を、(一部) Maxima を使って解く。~ ※ 間違っているかもしれないので気をつけて使ってください。間違っていたら教えて下さい。~ | 章 | 1 | 2|3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | | 例題/文中の計算(Maxima)| | [[2章・3章>../../力学2009S/Maxima/例題]] | | | | | | | | [[10章>../../力学2009S/Maxima/慣性モーメント]]&ref(http://robo.mydns.jp/Lecture/PDF/Mechanics2009/Examples_In_Text/EXT10.11.pdf,,例題11); | | | | | |章末問題(Maxima)| | [[02章>../../力学2009S/Maxima/章末02]] | [[03章>../../力学2009S/Maxima/章末03]] | [[04章>../../力学2009S/Maxima/章末04]] | [[05章>../../力学2009S/Maxima/章末05]] | [[06章>../../力学2009S/Maxima/章末06]] | [[07章>../../力学2009S/Maxima/章末07]] | [[08章>../../力学2009S/Maxima/章末08]] | [[09章>../../力学2009S/Maxima/章末09]] | [[10章>../../力学2009S/Maxima/章末10]] | [[11章>../../力学2009S/Maxima/章末11]] | | | |