- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
** 力学とMaxima [#r3c358ce]
*** Maxima とは [#l99e8915]
大変便利な数式処理ソフトです。
-- 参考サイト
--- [[Maxima 普及委員会>http://www.cymric.jp/maxima/top.html]]
*** 導入方法 [#tac52e52]
-- Windows~
--- 参照URL~
http://www.cymric.jp/maxima/maxima-winxp.html ~
この解説にしたがう。ただし、ダウンロードページが分かりにくい。~
http://sourceforge.net/projects/maxima/files/Maxima-Windows/ ~
から、最新( 2012-04-11 (水) 18:57:40 時点では、5.26.0 )のバージョンを選んで ~
http://sourceforge.net/projects/maxima/files/Maxima-Windows/5.26.0-Windows/ ~
からダウンロード。
// -- Windows + VMware + Linux~
// 講義と同じような環境
// --- [[導入方法の解説>../力学2009S/Maxima/導入]](情報が古いです。)
--- Windows7への導入例(ビデオ)~
| ダウンロードまで | インストール | 最初の起動 |
| [[http://robo.mydns.jp/Lecture/VIDEO/Mechanics/MaximaDownload.mp4_thumbnail.jpg>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/MaximaDownload.mp4]] | [[http://robo.mydns.jp/Lecture/VIDEO/Mechanics/MaximaInstall.mp4_thumbnail.jpg>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/MaximaInstall.mp4]] | [[http://robo.mydns.jp/Lecture/VIDEO/Mechanics/MaximaInitial.mp4_thumbnail.jpg>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/MaximaInitial.mp4]] |
//| &ref([[PageTop:Lecture/VIDEO/Mechanics/MaximaDownload.mp4_thumbnail.jpg]]); | | |
* 力学でのMaximaの利用例 [#r3c358ce]
-- [[力学>../]]での[[Maxima>../../Maxima]]の利用例について整理します。~
※ 講義では wxMaxima を利用します。~
※ Maxima の一般的な導入方法と使い方は、[[Maximaのページ>../../Maxima]]を、また、[[講義での使う関数などの一覧>https://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() などの例~
[[https://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_EX01.mp4_thumbnail.jpg>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_EX01.mp4]]~
*** 例2: 等加速度運動の公式 [#m61b166b]
-- 等加速度運動の公式を求める~
[[https://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_EX02.mp4_thumbnail.jpg>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_EX02.mp4]]
*** 例3: 投射の問題 [#q479be98]
-- 投射問題を解く~
&ref(https://robo.mydns.jp/Lecture/PHOTO/Mechanics/Maxima_2D.png,,30%);~
-- 軌道の式を求める(WMV形式)~
[[&ref(https://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_2Dpath.wmv_thumbnail.jpg);>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_2Dpath.wmv]]~
-- 水平到達距離を求める(WMV形式)~
[[&ref(https://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_2Dpeek.wmv_thumbnail.jpg);>http://robo.mydns.jp/Lecture/VIDEO/Mechanics/Maxima_2Dpeek.wmv]]~
-- Mac~
下記のページを参照
--- http://www.math.tsukuba.ac.jp/~hiroyasu/2008/maxima.html
--- http://www.muskmelon.jp/macosx/index.html
*** 使い方(外部サイト) [#u9455c11]
//-- [[導入方法の解説>../力学2009S/Maxima/導入]] (情報が古いです。)
-- [[Maxima 入門ノート(中川氏)>http://www.eonet.ne.jp/~kyo-ju/maxima.pdf]]
-- [[Maxima による数式処理(弘前大学葛西先生)>http://phys.hirosaki-u.ac.jp/wiki.cgi/maxima]]
//-- [[外積を計算するための工夫>../力学2009S/Maxima/外積]]
*** 例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 で得られた答えを指定する。
*** 講義での利用例 [#fe33372b]
- 基本的な技
-- 数式入力後、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])
*** 例7: 1次元の衝突の問題 [#f7afa1ae]
--- 運動量とエネルギーが保存する場合
solve( [ m1*v01 + m2 * v02 = m1*v1+m2*v2, 1/2 * m1 * v01^2 + 1/2 * m2 * v02^2= 1/2 * m1 * v1^2 + 1/2 * m2 * v2^2 ], [v1, v2] );
--- 特に、質量が一致する場合
ratsubst( m1, m2, %);
~
** 教科書章末問題 [#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(https://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]] | | | |