• 締切済み

プログラムの練習問題

プログラムの練習問題が解けなくて困っています。 visual C++ 2010 Express を使用しています。よろしくお願いします。 今、2次元平面上の座標値(x,y)に対し、(x2+y2)0.5を角度(degree) とした場合に、 下記の式によって定義されるポテンシャル値zの分布を考える z=30×(cos((x2+y2)0.5)+cos((3×(x2+y2)0.5)) xとyの範囲を(-200<X<200)、(-200<Y<200)と設定してXとYの値を10ごとに増加させた場合のZの値を 以下のようなfor文を用いて計算し、 for(y=200.0;y>=-200.0;y=y-10.0){ for(x=-200.0;x<=200.0;x=x+10.0){ } } 同一のY座標値におけるZの値がカンマで区切られて並ぶテキストファイルを出力するプログラムを作成しなさい。 そのファイルをエクセルで開き(カンマ区切りで) 3次元グラフを表示させる. ヒント1: #include <math.h> を宣言することにより、数学関数 cos sin pow が使用可能となる。 ヒント2: sin cos の引数はラジアン単位で指定する必要があるため、円周率を用いて degree から radian を求めること。

みんなの回答

回答No.1

それで何が解っていて、何が解らないの? 丸投げでは練習にならないよ。

関連するQ&A

  • プログラム ファイル処理について

    プログラムの問題が解けなくて困っています。 visual C++ 2010 Express を使用しています。 (1)X,Yの範囲がそれぞれ-200から200の範囲で空間内に立体が書かれる ようにエクセルファイルにデータを入れたいのですが、その処理がうまくいきません。 (2)degreeの意味がわかりません。degree*PI(円周率)/180でradianなのですか? よろしくお願いします。 今、2次元平面上の座標値(x,y)に対し、(x2+y2)0.5を角度(degree) とした場合に、 下記の式によって定義されるポテンシャル値zの分布を考える z=30×(cos(√(x2+y2))+cos((3×√(x2+y2))) xとyの範囲を(-200<X<200)、(-200<Y<200)と設定してXとYの値を10ごとに増加させた場合のZの値を 以下のようなfor文を用いて計算し、 for(y=200.0;y>=-200.0;y=y-10.0){  for(x=-200.0;x<=200.0;x=x+10.0){  } } 同一のY座標値におけるZの値がカンマで区切られて並ぶテキストファイルを出力するプログラムを作成しなさい。 そのファイルをエクセルで開き(カンマ区切りで) 3次元グラフを表示させる. ヒント1: #include <math.h> を宣言することにより、数学関数 cos sin pow が使用可能となる。 ヒント2: sin cos の引数はラジアン単位で指定する必要があるため、円周率を用いて degree から radian を求めること

  • 行列の問題

    行列の問題なのですがどなたか分かる方はいますか? どなたか知恵を貸してください。見づらいのですがよろしくお願いします。 (x'',y'',z'',1)=(x,y,z,1) × 1 0 0 0 0 1 0 0 × 0 0 1 0 a b c 1 cosθ -sinθ 0 0 -sinθ cosθ 0 0 0 0 1 0 0 0 0 1 = (x,y,z,1) × cosθ sinθ 0 0 -sinθ cosθ 0 0 0 0 1 0 acosθ-bsinθ asinθ+bcosθ c 1 = xcosθ-ysinθ+acosθ-bsinθ xsinθ+ycosθ+asinθ+bcosθ z+c 1 ここで行った操作(平行移動→回転)を逆にしたときの座標を4次元マトリックスを用いて表すにはどうすればいいのですか? また、両者は一致するのですか?

  • 三重積分の問題です。

    空間の極座標変換を用いて、次の積分の値を計算しなさい。 ∬∫(x^2+y^2+z^2)dxdydz、範囲がx^2+y^2+z^2≦a^2 です。 極座標変換で(r、θ、φ)={0≦r≦a                 0≦θ≦2π                 0≦φ≦2π}と範囲をおき、 x=r sinθ cosφ y=r sinθ sinφ z=r cosθ と変換しました。 ここから積分の仕方が少しわかりませんでした。 一生懸命考えてみたのですが、積分で詰まりました。 もしわかる人がいましたら教えてください

  • 楕円の軌道に傾斜をつける方法を教えてください

    ActionScriptでボールを楕円に動かすスクリプトを作成しています。 x軸、y軸に平行に動くスクリプトはできるのですが、斜め45度に動くやり方がわかりません。 ↓x軸y軸に平行運動する楕円スクリプト。 //-------------------------------------------- //長軸100、短軸50の楕円形にボールを動かす r = 100;//半径 onClipEvent (enterFrame) { ang += 10; //角度を10ずつ追加 radian = Math.PI/180*ang; //ラジアンに変換(1度=pai割る180で計算) X = Math.cos(radian)*r; //コサイン×半径 でx座標を計算 Y = Math.sin(radian)*r; //サイン×半径 でy座標を計算 this._x = X; //Xを座標に反映 this._y = Y/2; //Yの半分を座標に反映 } //-------------------------------------------- なんとか傾斜した動きを作りたくていろんなサイトを見ましたが、どうしても式がわかりません。 ぜひ教えてもらえませんでしょうか。 どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • 体積問題です。

    次の図形の体積を求めなさい。(a,b,c>0) (1) (x/a)^2+(y/b)^2+(z/c)^2≦1 (2) x^2/3+y^2/3+z^2/3≦a^2/3 三重積分で極座標変換を使うのだと思いますが、 どう回答すれば良いのか分かりません。 解き方を教えてください。 極座標変換で(r、θ、φ)とおき、 x=r sinθ cosφ y=r sinθ sinφ z=r cosθ と変換しました。 よろしくお願いします。

  • 回転移動した平面の方程式

    右手系座標での平面 z = 0 を 方位角 φ ( y 軸正方向から見て時計回りを正とする)、 仰角 θ ( x 軸正方向から見て反時計回りを正とする)で 回転させたときの方程式はどのようになりますか。 2つの方法で方程式が一致しないので、 混乱しています。 方位角 φ の座標変換 x' = x cos φ - z sin φ z' = x sin φ + z cos φ 仰角 θ の座標変換 y' = y cos θ + z sin θ z' = - y sin θ + z cos θ 方位角 φ, 仰角 θ の座標変換 (←この辺りから間違っている?) x' = x cos φ - z sin φ y' = x sin φ sin θ + y cos θ + z cos φ sin θ z' = x sin φ cos θ - y sin θ + z cos φ cos θ 方法1 回転後の平面は z' = 0 であるから、平面の方程式は x sin φ cos θ - y sin θ + z cos φ cos θ = 0 方法2 平面 z = 0 の単位法線ベクトル n は (0, 0, 1) である。 座標変換の式にこれを代入すると、回転後の n は ( - sin φ, cos φ sin θ, cos φ cos θ ) であるから、n に垂直で原点を通る平面の方程式は - x sin φ + y cos φ sin θ + z cos φ cos θ = 0 回転放物面 z = ( x^2 + y^2 ) / ( 4 f )についても 方程式を得たいので、よろしくお願い致します。

  • 3次元の回転角度の求め方について教えてください。

    3次元の回転角度の求め方について教えてください。 3軸の加速度センサーがあります。 まず加速度センサーのZ軸を重力方向に置いたときの加速度センサーの値を(x1,y1,z1)=(0,0,1)とします。 加速度センサーのx軸、y軸、z軸をそれぞれ回転させたあとの加速度センサーの値を(x2,y2,z2)とします (このとき加速度センサーは静止しているので、センサーの値は重力の分力になります)。 (x2,y2,z2)が既知のとき(x1,y1,z1)に戻すためのそれぞれの回転角はどのように求めれば良いのか教えてください。 (x2,y2,z2)→(x1,y1,z1)へ移動するときの回転角を φ(z軸の回転角)、ψ(x軸の回転角)、θ(y軸の回転角) とします。 回転行列 (x1) = (cosφ -sinφ 0) (cosθ 0 sinθ) (1 0 0 ) (x2) (y1) = (sinφ cosφ 0) (0 1 0 ) (0 cosψ -sinψ) (y2) (z1) = (0 0 1) (-sinθ 0 cosθ) (0 sinψ cosψ ) (z2) より,3行3列の行列を計算すると 0=cosφcosθx2 + (-sinφcosψ+cosφsinθsinψ)y2+(sinφsinψ+cosφsinθcosψ)z2 0=sinφcosθx2 + (cosφcosψ+sinφsinθsinψ)y2+(-cosφsinψ+sinφsinθcosψ)z2 1=-sinθx2 + cosθsinψy2 + cosθcosψz2 となると思うのですが、この式からφ、ψ、θが導きだせません。 どうすれば求めることができるか教えていただけますか。

  • 座標変換について

    座標系XYZの空間に点A(X1,Y1,Z1)、点B(X2,Y2,Z2)、点C(X3,Y3,Z3)があります。 この3点を通る円の中心をP(X0,Y0,Z0)とし、 円の存在する平面をx'y'平面とします。 さらに原点を点P、x'軸はPAを通る直線とします。 座標系x'y'z'から円周上の点D(X',Y',Z')を求め 座標系XYZに変換した(X4,Y4,Z4)を求めたいのですが、どうすればよいのでしょうか? 以下のようにすれば求まると思うのですが角度α、β、γの求め方が分かりません。 X'' = X' * cosα - Y' * sinα Y'' = X' * sinα + Y' * cosα Z'' = Z' X''' = X'' Y''' = Y'' * cosβ - Z'' * sinβ Z''' = Y'' * sinβ + Z'' * cosβ X4 = X''' * cosγ + Z''' * sinγ Y4 = Y''' Z4 = Z''' * cosγ - X''' * sinγ よろしくお願いします。

  • Fortranで直交座標から極座標変換のプログラム

    Fortranで直交座標から極座標変換のプログラム FDTD法を用いて、散乱電場を求める際、最初Ex(i,j,k), Ey(i,j,k), Ez(i,j,k)を求めましたが、 それから座標をr方向に座標変換したく、プログラムを作ろうと思っているのですが、どのように書いてよいのか悩んでいます。 単位ベクトル r = (x,y,z)=(sinθcosφ,sinθsinφ,cosθ)と定義できるのですが、これを どのように極座標のプログラムとして書いてよいのかわかりません。 どなたかわかる方がいらっしゃたら教えて下さい。よろしくお願いします。

  • 位置座標からx軸となす角度(ラジアンでも可)を求める方法

    簡単な2次元座標系で現在の位置が(x,y)だとします。 この点を三角関数を用いて表したときに x=m+r*cos a y=n+r*sin a となると思うんですが((m,n)は円の中心点,rは半径,aはx軸と半径のなす角とします)任意にa以外の変数に値を与えた場合,aを求めるプログラムの書き方が良く分かりません。 いいかえますと2点を結んだ直線とx軸とのなす角度を求めたいというものです。 もちろん角度ではなくラジアンでもかまいません。 どなたかご教授よろしくお願いします。

専門家に質問してみよう