原子動力工学特論 課題2 交通電子機械工学専攻 2003310 齋藤 泰治.

Slides:



Advertisements
Similar presentations
1 線形代数学. 2 履修にあたって 電子情報システム学科 必修 2005 年度1セメスタ開講 担当 草苅良至 (電子情報システム学科) 教官室: G I 511 内線: 2095 質問等は上記のいずれかに行なうこと。 注意計算用のノートを準備すること。
Advertisements

IT 入門 B2 ー 連立一次方程式( 2 ) ー. ガウスの消去法の問題点 – 浮動小数点数の特殊な値 – 数学関数 ピボット選択つきガウスの消去法 演習 授 業 内 容 授 業 内 容.
コンピュータ基礎実験 第1 0回 コンピュータープログラミン グ ( C 言語)(8) 1.乱数(復習) 2.配列とその利用.
数値解析シラバス C言語環境と数値解析の概要(1 回) C言語環境と数値解析の概要(1 回) 方程式の根(1回) 方程式の根(1回) 連立一次方程式(2回) 連立一次方程式(2回) 補間と近似(2回) 補間と近似(2回) 数値積分(1回) 数値積分(1回) 中間試験(1回) 中間試験(1回) 常微分方程式(1回)
数学のかたち 数学解析の様々なツール GRAPSE編 Masashi Sanae.
円線図とは 回路の何らかの特性を複素平面上の円で表したもの 例えば、ZLの変化に応じてZinが変化する様子 Zin ZL
 3 方程式 1章 方程式 §3 方程式の解き方         (3時間).
CGアニメーションの原理 基本技術 対象物体の動きや変形の設定方法 レンダリング技術
情報理論2 第4回 小林 学 湘南工科大学 2011年11月1日 〒 神奈川県藤沢市辻堂西海岸1-1-25
Problem J Tile Puzzle 原案:野田 担当:平野,吉田,泉,松本.
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
3 二次方程式 1章 二次方程式 §2 二次方程式と因数分解         (3時間).
4.3 連立1次方程式   Ax = b   (23) と書くことができる。
数個、数十個のデータ点から その特徴をつかむ
第三回 線形計画法の解法(1) 標準最大値問題 山梨大学.
本時の目標 連立方程式の加減法のしかたを理解し、加減法を用いて連立方程式を解くことができる。
連立一次方程式 a11x1+a12x2+a13x3+...+a1nxn= b1
3 一次関数 1章 一次関数とグラフ §3 一次関数の式を求めること          (3時間).
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
Scilab で学ぶ  わかりやすい数値計算法 舞鶴高専 電子制御工学科 川田 昌克.
原子動力工学特論 課題 3、4 交通電子機械工学専攻   齋藤 泰治.
常微分方程式と偏微分方程式 1.常微分方程式 独立変数が一個のもの 振動の運動方程式 2.偏微分方程式 独立変数が二個以上のもの
工業力学 補足・復習スライド 第13回:偏心衝突,仕事 Industrial Mechanics.
C言語講座 第4回 ポインタ.
IT入門B2 ー 連立一次方程式 ー.
コンピュータープログラミング (C言語)(8) 1.乱数(復習) 2.配列とその利用
第二回 連立1次方程式の解法 内容 目標 連立1次方程式の掃出し法 初期基底を求める 連立1次方程式を掃出し法を用いてExcelで解析する
第3章 重回帰分析 ー 計量経済学 ー.
第3章 重回帰分析 ー 計量経済学 ー.
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
線形代数学 4.行列式 吉村 裕一.
4.2 連立非線形方程式 (1)繰返し法による方法
方程式と不等式 1次方程式 1次不等式.
数値解析シラバス C言語環境と数値解析の概要(1回) 方程式の根(1回) 連立一次方程式(2回) 補間と近似(2回) 数値積分(1回)
二分探索木によるサーチ.
第7回 条件による繰り返し.
数学 ---> 抽象化、一般化 より複雑な関係ー>解析学 一次関数 y=ax+b より多くの要素ー>線形代数 x y f(x) y1 x1
EVENT プログラミングのスタイル 手続き型: ある決められた場所から開始され, その後は純粋に上から下に流れて行く方式. 実行したいことを, 順番に記述してゆく. 逐次処理形式コーディングの方法である。 今までの授業(情報処理2や3)で 行ってきたプログラミングの演習 bcc32やmake 手続き型.
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
プログラミング演習I 行列計算と線形方程式の求解
LU分解を用いた連立一次方程式.
知能情報工学演習I 第12回(後半第6回) 課題の回答
メモリの準備 メモリには、その準備の方法で2種類ある。 静的変数: コンパイル時にすでにメモリのサイズがわかっているもの。 普通の変数宣言
第7回 条件による繰り返し.
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
電気回路学Ⅱ コミュニケーションネットワークコース 5セメ 山田 博仁.
原子動力工学特論 レポート1 交通電子機械工学専攻 齋藤 泰治.
ポリゴンメッシュ (2) - 変形と簡略化- 東京大学 精密工学専攻 大竹豊 資料および授業の情報は :
高度プログラミング演習 (05).
高度プログラミング演習 (05).
ねらい「二次方程式の解き方を理解する。」
二次方程式の解き方 ねらい「二次方程式を、平方根を利用して解くことができる。」 本時の流れ ↓ 前時の復習でax2=bの解き方を確認する。
情報理論2 第3回 小林 学 湘南工科大学 2011年10月25日 〒 神奈川県藤沢市辻堂西海岸1-1-25
補講:アルゴリズムと漸近的評価.
連立一次方程式 a11x1+a12x2+a13x3+...+a1nxn= b1
行列式 方程式の解 Cramerの公式 余因数展開.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
プログラミング基礎演習 第4回.
Cプログラミング演習 ニュートン法による方程式の求解.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
情報数理Ⅱ 第10章 オートマトン 平成28年12月21日.
3 一次関数 1章 一次関数とグラフ §4 方程式とグラフ         (3時間).
プログラミング序論演習.
プログラミング入門2 第5回 配列 変数宣言、初期化について
第1章 文字の表示と計算 printfと演算子をやります.
空間図形の取り扱いについて.
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
Presentation transcript:

原子動力工学特論 課題2 交通電子機械工学専攻 2003310 齋藤 泰治

目次 ・ガウスの消去法 ・プログラム ・実行結果 ・水平投射 ・VisualC++6.0のプログラム開発環境 ・プログラムの実行

ガウスの消去法 連立一次方程式の係数と、定数項から作られる行列(拡大係数行列)に対して、 1、行の順番を並べ替える 2、ひとつの行にある数をかけて、他の行に加える 3、ひとつの行に0でない数をかける という操作(基本変形)を施し、繰り返してゆくことで、 0成分の多い簡単な行列としてゆく方法。

ある行(1行目)を変形するときに、プログラムでは適当な数を選択することはできないので、単純に1列目の数で割る。 すると、1列目の数は、1となるので、他の行(2行目)の1列目の数倍してその行(2行目)から引けば、その行の1列目は確実に0となる。 1行目割る 2行目ー1行目

課題2 次の連立1次方程式を解く 拡大係数行列

プログラム int i,j,k,n; float a[nn][nn]; //係数の行列を作る float b[nn]; //右辺の定数項 main() { int i,j,k,n; float a[nn][nn]; //係数の行列を作る float b[nn]; //右辺の定数項 float x[nn]; //解を入れる行列   float p,q,s,data; printf("式の数を入力 n="); scanf("%d",&n); for(i=1;i<=n;++i){ //行列式の入力 for(j=1;j<=n;++j){ printf("a(%d,%d)=",i,j); scanf("%f",&data); a[i][j]=data; } printf("b(%d)=",i); scanf( "%f", &data); b[i]=data;

for(j=k+1;j<=n;++j){ a[k][j]/=p; } b[k]/=p; for(i=k+1;i<=n;++i){ for(k=1;k<n;++k){ //消去法の計算 p=a[k][k]; for(j=k+1;j<=n;++j){ a[k][j]/=p; } b[k]/=p; for(i=k+1;i<=n;++i){ q=a[i][k]; a[i][j]-=q*a[k][j]; b[i]-=q*b[k]; x[n]=b[n]/a[n][n]; for(k=n-1;k>=1;--k){ s=0.0; s+=a[k][j]*x[j]; x[k]=b[k]-s;   printf("\n Answer\n"); for(i=1;i<=n;++i){ printf("x(%d)= %f\n",i,x[i]);

実行結果 式の数を入力 n=3 a(1,1)=3 a(1,2)=2 a(1,3)=-1 b(1)=12 a(2,1)=5 a(2,2)=-3 Answer x(1)= 3.000000 x(2)= 2.000000 x(3)= 1.000000

課題1 水平投射       高さ2mから水平方向に2m/sで投げ出し、地面と       反発係数0.9で跳ね返るときの、ボールの軌道を描く

水平投射において、 x方向の位置は y方向の位置は y=0ではねかえり、速度が逆向きとなって、0.9倍となる。 このとき時間tが のときに跳ね返るとする。

VisualC++6.0の開発環境 VisualC++6.0では、アプリケーションの制作を簡略化するために、骨組みとなるフレームがすでに用意されている。 今回は、ダイアログベースによる開発環境を利用した。 ダイアログベースでは設定したダイアログ内に、ボタンやエディットを配置しすると、それらが自動的に関数として加えられるので、それらの処理を記述するだけでよい。 VisualC++では、クラスや関数の定義に独自の記述法を持っているので、それに即した記述をする。 例;  MoveTo(x,y) // (x,y)点まで移動 LineTo(x,y) // (x,y)点まで直線を引く

プログラム for(i=0;i<=10;i+=1){ for(t=0;t<=30;t+=0.01){ x=u0*t+x0; y=-1.0/2*g*t*t+v0*t+h; X=x*50-245; Y=-100*y+yw; v=-g*t+v0; if((v0+pow((v0*v0+2*g*h),(1.0/2)))/g-t<=0.001){ h=0; x0=x; v0=v*(-e); break; } if(x>=xw-5){ break;} dc.LineTo((int)(50*x-245),(int)(-100*y+yw)); dc.Ellipse(50*x-245-3,-100*y+yw-3,50*x-245+3,-100*y+yw+3);   for(k=0;k<=100000;k+=1){ z=sin(k);