1 / 15

情報基礎 II ( 第 5 回)

情報基礎 II ( 第 5 回). 月曜4限 担当 :北川 晃. プログラミング演習. ニュートン法により,方程式 根を計算し表示するプログラムを作れ.. ニュートン法. 接線と   軸の交点を 求め,次の接線を引く.. ニュートン法:考え方. を通る接線:. 軸との交点 :. この操作を一定の 精度まで繰り返す.. ニュートン法:アルゴリズム.             を定義する 以下の操作を繰り返し行う      を代入

kostya
Télécharger la présentation

情報基礎 II ( 第 5 回)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 情報基礎II(第5回) 月曜4限 担当:北川 晃

  2. プログラミング演習 ニュートン法により,方程式 根を計算し表示するプログラムを作れ. • ニュートン法 接線と   軸の交点を 求め,次の接線を引く.

  3. ニュートン法:考え方 • を通る接線: • 軸との交点 : この操作を一定の 精度まで繰り返す.

  4. ニュートン法:アルゴリズム •             を定義する • 以下の操作を繰り返し行う •      を代入 •             により,次の座標を計算 •       の値を書き出す •         となるまで繰り返す • 最終的な  を書き出す • 関数プロシージャで,         を定義する

  5. ニュートン法:出力例 二分法よりも 収束が速い

  6. ニュートン法:プログラム例 Sub Main() Console.Title= "ニュートン法による求根" Dim x As Single = 1, x0 As Single Dim eps As Single = 10 ^ -6 Do x0 = x x = x0 - f(x0) / df(x0) Console.WriteLine("{0,10}, {1,10}", x, f(x)) Loop Until Math.Abs((x - x0) / x0) < eps Console.WriteLine("解はx={0}", x) End Sub 条件を満たす まで繰り返し

  7. ニュートン法:プログラム例 Function f(x) Dim y As Single y = x - Math.Cos(x) Return y End Function Function df(x) Dim dy As Single dy = 1 + Math.Sin(x) Return dy End Function 導関数の定義 (手で計算して与える)

  8. 配列とは? 表を一つの変数のように扱う ベクトル • 一次元の配列: → a(i) • 二次元の配列: → b(i,j) 行列

  9. 配列の表記法 配列内の個々のデータ(配列要素)は, 配列名に添え字を付けて表す. • alpha(16) • n(5,1) • p(i,j) • b(i+1) • x(2*n-1) • k(l(m)) 配列の引数には,整数型の式,関数なども許される 配列の宣言 一次元, 単精度整数型 の配列の宣言 a(0)~a(10) Dim a(10) As Single Dim b(8,8) As Integer Dim c(3,5) As String 二次元,整数型の配列の宣言 b(0,0)~b(0,8) b(1,0)~b(1,8) … b(8,0)~b(8,8) • 配列の番号は0から始まる • 使わない要素は0と見なされるだけなので, • 少し余裕を見て大きめに宣言するとよい

  10. 配列の操作 • 配列Aの内容をBにコピーする(下限1,上限N). For i As Integer = 1 To n b(i)=a(i) Next • 行列A,Bの和を作ってCに代入する(M行N列とする). For i as Integer = 1 To m For j As Integer = 1 To n c(i,j) = a(i,j) + b(i,j) Next j Next i

  11. 例題:九九の表 九九の表を書き出すプログラムを作れ.

  12. 九九の表:プログラム例 行ごとに改行する

  13. 行列の積:プログラム例 Console.Title = "九九の表" Dim i, j, kuku(9, 9) As Integer For j = 1 To 9 For i = 1 To 9 kuku(i, j) = i * j If i <> 9 Then Console.Write("{0,4}", kuku(i, j)) Else Console.WriteLine("{0,4}", kuku(i, j)) End If Next Next 表の右端で改行する

  14. ベクトルの内積 • ベクトルAとベクトルBの内積を計算する(下限1,上限N). s = 0.0 For i As Integer = 1 To n s = s + a(i) * b(i) Next

  15. 行列の積の成分計算 • 行列Aと行列Bの積を計算する(下限1,上限N). 第(i,j)成分は・・・ s = 0.0 For k As Integer = 1 To N s = s+a(i,k)*b(k,j) Next k

More Related