| 1 | == 数値計算法 第3週 == |
| 2 | |
| 3 | === 有限桁の数値 === |
| 4 | |
| 5 | === Index === |
| 6 | * コンピュータによる数値の表現 |
| 7 | * 浮動小数点 |
| 8 | |
| 9 | 倍精度実数 |
| 10 | ||=符号部=||=指数部=||=仮数部=|| |
| 11 | ||-/+|| 10^23^|| 6.0224|| |
| 12 | ||1ビット|| 11ビット|| 52ビット|| |
| 13 | |
| 14 | 2進数の小数 |
| 15 | |
| 16 | 0.5 = 1/2 = 0.1,,binary,, \\ |
| 17 | 0.625 = 1/2 + (1/2)^3^ = 0.101,,binary,, |
| 18 | |
| 19 | 2^1023^ より大きな数はオーバーフローを起こすので表現できない。 |
| 20 | |
| 21 | 同様に、2^-1023^よりも小さな数もアンダーフローを起こして0になる。 |
| 22 | |
| 23 | 仮数部も52ビットと有限なので、これより長い桁数は表現できず、丸め誤差(0捨1入)が生じる。 |
| 24 | |
| 25 | 2進数では0.1,,decimal,,は循環小数になるので、丸め誤差が生じる。 |
| 26 | |
| 27 | 相対誤差:: |
| 28 | |α-ξ|/|ξ| |
| 29 | |
| 30 | 大きな数同士ほど、いわゆる「誤差の範囲」は拡大する[要出典] |
| 31 | |
| 32 | === MATLABでの多項式 === |
| 33 | * 係数の与え方 |
| 34 | p = [2 5 3] …… p(x) = 2x^2^ + 5x + 3 を得る |
| 35 | |
| 36 | * 関数値の計算 |
| 37 | y = polyval(p,x) …… xは単一の数値でもベクトルでもよい |
| 38 | |
| 39 | * ゼロ点 |
| 40 | z = roots(p) |