シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科

Slides:



Advertisements
Similar presentations
シミュレーション演習 G. 総合演習 ( Mathematica 演 習) システム創成情報工学科 テキスト作成: 藤尾 光彦 講義担当: 尾下 真樹.
Advertisements

Absolute Orientation. Absolute Orientation の問題 二つの座標系の間における剛体 (rigid body) 変換を復元す る問題である。 例えば: 2 台のステレオカメラから得られた3次元情報の間の関 係を推定する問題。 2 台のステレオカメラから得られた3次元情報の間の関.
Division of Process Control & Process Systems Engineering Department of Chemical Engineering, Kyoto University
1 第5回 配列. 2 今回の目標 マクロ定義の効果を理解する。 1次元配列を理解する。 2次元配列を理解する。 ☆2 × 2の行列の行列式を求めるプログラ ムを作成する.
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
C言語 配列 2016年 吉田研究室.
プログラミング言語としてのR 情報知能学科 白井 英俊.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
第13回構造体.
第12回構造体.
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
プログラミング基礎I(再) 山元進.
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
このPowerPointファイルは、 情報処理演習用に作った フィクションです。
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
論理式の表現を数学的に取り扱いやすくするために代数学の助けを借りる.
ブロック線図によるシミュレーション ブロック線図の作成と編集 ブロック線図の保存と読込み ブロック線図の印刷 グラフの印刷
Mathematica入門 数学を数式処理システムで 上智大学理工学部 大槻東巳 TA: 吉本行気,清水元気 2012年6月.
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
プログラミング入門2 総合演習課題 2008年 1/7, 1/21 実施 これまでの講義内容についての腕試し
第5回 統計処理(2) 塩浦 昭義 東北大学全学教育科目 情報基礎 A 1セメスター 木曜1,3講時 経済学部・法学部
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
主成分分析 Principal Component Analysis PCA
多変量解析 ~主成分分析~ 1.主成分解析とは 2.適用例と解析の目的 3.解析の流れ 4.変数が2個の場合の主成分分析
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
パターン認識特論 担当:和田 俊和 部屋 A513 主成分分析
情報処理Ⅱ 第2回:2003年10月14日(火).
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
情報科学演習III --- 計算代数とその応用 ---
統計ソフトウエアRの基礎.
コンパイラ 2012年10月1日
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
ガイダンス 電子計算機 電気工学科 山本昌志 1E
プログラミング基礎a 第4回 C言語によるプログラミング入門 条件判断と反復
アルゴリズムとプログラミング (Algorithms and Programming)
アルゴリズムとデータ構造1 2009年6月15日
バネモデルの シミュレータ作成 精密工学科プログラミング基礎 資料.
精密工学科プログラミング基礎 第7回資料 (11/27実施)
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
情報工学Ⅱ (第8回) 月曜4限 担当:北川 晃.
コンパイラ 2012年10月11日
プログラミング 4 文字列.
アルゴリズムとデータ構造 2010年6月17日
知識ベースの試作計画 ●●●研究所 ●●●技術部 稲本□□ 1997年1月.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
情報処理Ⅱ 2005年11月25日(金).
第10回 関数と再帰.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
プログラミング入門2 第5回 配列 変数宣言、初期化について
第4回 配列.
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
逆運動学(Inverse Kinematics) 2007.5.15
1.2 言語処理の諸観点 (1)言語処理の利用分野
第5回 配列.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング 2 静的変数.
Presentation transcript:

シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科 2005/7/8 シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科 テキスト作成: 藤尾 光彦 講義担当: 尾下 真樹

本演習の目的 さまざまな次元のデータ量を計算機で扱うための基本的な考え方を学習する Mathematica の基本的な使い方を学習する 1次元、2次元、3次元 質点系、スカラ場、ベクトル場 連続値、離散値 Mathematica の基本的な使い方を学習する Mathematica とは何か? Mathematica を使ってデータ量を表現する Mathematica を使ってデータ量を可視化する

演習の流れ Mathematica の概要 Mathematica の基本的な使い方 各自、プリントの演習課題を行う 講義+演習 (テキスト G33~G42) テキストのプログラムを入力して実行してみる 各自、プリントの演習課題を行う 時間内に課題を終えて提出

演習の流れ(次回以降) 計算機でのデータ量の表現 Mathematica を使ったデータ表現と可視化 各自、プリントの演習課題を行う 講義 (テキスト G1~G9) Mathematica を使ったデータ表現と可視化 資料を見ながら各自演習 (テキスト G9~G32) 各自、プリントの演習課題を行う 時間内に課題を終えて提出

Mathematicaの概要

Mathematicaの特徴 インタプリタ言語(環境)である 数式処理のための機能が充実している 数値データを図形として描画できる 無理数をそのままで扱える 例: (1 / 3) × 3 = 1 数式を解いたり、記号計算を行ったりできる 例: → 解析解と数値解の両方を計算することができる 数式やデータを混在させて扱うことができる 数値データを図形として描画できる

Mathematicaの応用 何に使えるのか? 数式や記号をそのまま扱えるというメリット 因数分解や微積分など、式や記号を含む計算を解かせることができる 数値データを対象とする数学モデル・統計処理・データ解析・分析などの用途で役に立つ 将来、研究や仕事で、数値データ(モデル)を対象とするようなときに使えるかもしれない

プログラミング言語・環境の選択 一般にはさまざまな言語・環境が存在 それぞれ向き不向きがあるので、状況に応じて適切なものを使う必要がある 一般に高機能な言語・環境は、想定されている用途以外のことをやろうとすると大変 柔軟性の高い言語・環境は、あらゆることができるが、全て自分でやる必要がある 適切な言語・環境は、使用者の習熟度によっても異なる なるべく多くの言語・環境を体験しておくことが望ましい

プログラミング言語・環境の選択 言語・環境の比較 高機能 (特定用途向け) CAD Mathematica MATLAB (一般的なソフトウェア開発向け) Java C++ 柔軟性

インタプリタ言語 コンパイラ言語 インタプリタ言語(環境) C/C++, Java(微妙), LaTeX など ソースファイルを最初に実行可能な形式に変換 以降は変換後のファイルを処理するので高速 インタプリタ言語(環境) BASIC など 利用者が対話的に処理をする 入力を逐次解釈しながら実行する 入力を対話的に与えることができる反面、処理速度が遅くなるという問題もある

Mathematicaの基本操作 Mathematica の実行環境を試してみる シフト+リターン でプログラムを一行入力 すぐに結果が表示される ; をつけると結果を表示しないこともできる % で前の出力結果を参照することができる 前に実行した結果はずっと保持されるので注意 詳しくは後述

数式処理のための機能 Java などの一般のプログラミング言語とは異なり、Mathematica では数式や記号をうまく扱うための機能が充実している 無理数をそのままで扱える 通常は無理数も有限精度にまとめられてしまう 記号計算ができる 解析解と数値解の両方を計算することができる 通常は数値解のみしか計算できない 数式やデータを混在させて扱うことができる

解析解と数値解 全ての数値は、近似化されずに扱われる 有限精度での近似値を表示する場合は、 N[ ] コマンドを使用する 複素数 無理数 π(Pi), e 有限精度での近似値を表示する場合は、 N[ ] コマンドを使用する 式の解も、解析解と数値解の両方を求めることができる Solve[] と NSolve[]

Mathematicaのコマンド Solve[ 式, 変数 ], NSolve[ 式, 変数 ] N[ 式 or 変数 ] 与えられた式を指定された変数について解く N[ 式 or 変数 ] 式 or 変数の有限精度の数値解を表示 Sum[ 式, { 変数, 開始値, 終了値 } ] Σ計算 変数の値を開始値~終了値まで変化させながら、与えられた式の値の和を計算

記号計算 記号計算 注意 x などの記号(変数)をそのまま扱うことができる 記号を使った計算ができる 例: 式をある変数について解く 例: 式を素因数分解 注意 x などの変数に実際に値を代入すると、以降、式は自動的に値を計算する 記号の状態にもどすときは、変数をクリアする

関数定義 関数を定義できる f[ x_ ] := x ^ 2 仮引数には _ をつける f[ 10 ], f[ y ] などと使える

リスト表現 Mathematica では、多次元のデータを全てリスト表現により表す リストの宣言方法 データへのアクセス方 q = {0, 1, 4, 9, 16} データへのアクセス方 q [[ 3 ]] リストを入れ子にすることで、2次元以上のリストを表現 ベクトルや行列も全てリストにより表現することができる

Mathematicaのコマンド Table[ 式, { 変数, 開始値, 終了値 } ] Sum[ … ] と同様 変数の値を変化させながら、各変数値から計算された式の値を要素とするリストを作成 入れ子にすることもできる Table[ i^j, {i, 0, 4}, {j, 1, 4 } ] 以下のような Java プログラムに相当 for ( i=0; i=4; i++) for( j=1; j<=4; j++ ) table[ i ][ j ] = i ^ j;

リスト同士の演算 リスト同士の演算は、リストの各要素同士に対して適用される そのままではベクトルや行列同士のかけ算ができない ベクトル同士の内積には .(ピリオド) ベクトル同士の外積には Cross[] 関数 行列同士の積・行列とベクトルの積にも .(ピリオド)

リスト操作 RotateRight[ リスト ] Position[ リスト, 値 ] リストの要素を1つずつ右に移動 リストの一番右の要素は、一番左の要素にする 例: {2, 4, 8, 16} → {16, 2, 4, 8} Position[ リスト, 値 ] リストの中で、値のある位置を出力する Position[ {2, 4, 8, 16}, 4 ] → 2

演習