- 締切済み
[C言語]試験問題の復習ができません[穴埋め]
2 次方程式の解を計算する方法に関するつぎの解説をよく読み,その空欄【 あ 】・ 【 え 】~【 こ 】 に適切な語句を埋めて文章を完成せよ。 2次方程式 x2+ax+b=0 を考える。その解の公式は D=a2-4b とおいてx=(-a±√D)/2 となる。 そこで,この2 解を変数 x1, x2 に計算するプログラムはつぎのように書きたくなる。 D= a*a-4.0*b; r= 【 あ 】; x1= (-a+r)/2.0; x2= (-a-r)/2.0; もちろん,このままプログラムとしたのではうまく動作しない。 【 あ 】 は D≧0 の場合に しか動作しないからである。つまり,このプログラムは,判別式が非負の場合にだけ動作する。 さて,この方程式が2 実解α,β をもつとする。このとき,a= -(α+β), b= αβ である。さらに, α≫0(α が大きな数), β≈0 (β が小さな数)であるとする。 上のプログラムでは 【 え 】にα の近似値が得られ,【 お 】にβ の近似値が得られるが,【 か 】は浮動小数点近似の精度に 近い精度の近似値になるものの,他方はそうはならない。桁落ちが生じるからである。これを避 けには,精度良く近似値が得られる【 か 】を使って,他方の解を“【 き 】”から乗除算で求 めることである。 この対策を完全に施して,解の公式で精度良く計算できる解をx1 にまず計算する形に仕上 げたプログラムでは,つぎのように書くことになる。 x1= (a>0.0 ? 【 く 】 : 【 け 】)/2.0; x2= 【 こ 】; __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ベクトルに行列による一次変換を施すプログラム,および,行列の2 乗を計算するプ ログラムに関するつぎの解説をよく読み,その空欄【 あ 】~【 か 】 に適切な語句を埋めて 文章を完成せよ。 ベクトルのデータ型 vector と(正方)行列のデータ型 matrix がつぎの通り宣言されて いるとする。 #define SIZE 3 typedef double vector[SIZE]; typedef double matrix[SIZE][SIZE]; ベクトルx に行列A による一次変換を施して得られるベクトルy = A x を計算するプログラム, および,行列A の2 乗 B= A2 を計算するプログラムを下に示す。ただし,つぎの通りに変数 (配列)が用意されているとする。 vector x; /* x の値が入れてある */ matrix A; /* A の値が入れてある */ vector y; /* ここにy の値を入れる */ matrix B; /* ここにB の値を入れる */ また, int 型の変数i,j,k も宣言してあるとする。 ベクトルに対する一次変換 for(i= 0; i!=SIZE; i++){ double w= 【 あ 】; for(j= 0; j!=SIZE; j++){ w= 【 い 】; } y[i]= 【 う 】; } 行列の2 乗 for(i= 0; i!=SIZE; i++){ for(j= 0; j!=SIZE; j++){ double w= 【 え 】; for(k= 0; k!=SIZE; k++){ w= 【 お 】; } B[i][j]= 【 か 】; } }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ninoue
- ベストアンサー率52% (1288/2437)
何れの問題も基本中の基本なので、自分で復習をして解いて下さい。 二次方程式の解法、 行列とベクトルの積などです。 自分で解説を読み、例題を辿って理解を深め、演習問題を自分で解いていく事を繰り返したりする事により理解して身に付けていって下さい。 それから "D=a2-4b" は数式の書き方が間違っています。 これでは 本来の D=a*a-4*b ではなく、 (a2 という単独の変数 -4*b) としてしか解釈されません。 例えば次等を参考に正しい書き方をして下さい。 http://www.su-gaku.jp/suken_bbs/form.html 数式の書き方 その他、αβγ等は あるふぁ べーた がんま 等と入力して変換操作する事で入力出来ます。 それから数学やC言語に関しては次等が参考になると思われます。 http://okwave.jp/qa/q8043298.html 数学(中学、高校、大学) の参考サイト等 C言語 入門 OR 初歩 等でサーチ ==> http://www5c.biglobe.ne.jp/~ecb/c/c00.html C言語入門 (左側のcontents ....) プログラミング言語C (カーニハン & リッチー) 等
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
で、ご質問は?