• ベストアンサー

指数の表示

プログラミングの計算式において指数が出てきたときはどんな演算子を使えばいいんですか? 今やっていたのはM=(M+1/(1+(i+1/2)*h)^2)*hなんですが「^2」のところにエラーが発生します。ビット差演算子^は使えないみたいなことが出るのですが・・・どうしたらいいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • FM-8
  • ベストアンサー率39% (65/164)
回答No.2

Cは,普通にはありそうな演算子が用意されてません. 「^」は,排他的論理和の演算子ですね. 教科書の演算子の優先順位のページを一度見てみませんか? 方法はいくつかありますので,具体的に説明していただければ,いいアドバイスがえられますよ. > M=(M+1/(1+(i+1/2)*h)^2)*h については, X=(1+(i+1/2)*h) M=(M+1/(X*X))*h としますね.私なら. 一般的な,x^yを計算するとすれば,pow(x,y)を使うことになります. 標準関数にあります. 「pow」 で検索してみてください. ちなみに,powerという単語には,「力」という意味が一般的ですが,「べき乗」という意味もあります. double pow(double x,double y) { double A,B; A = y * log(x); B = exp(A); return B; } 上の関数はかなりいい加減ですが,こんなようなことをやってる関数です. z = x^y log(z)=y*log(x) z = exp(y*log(x)) という関係を使ってます.

その他の回答 (1)

回答No.1

C言語において「^」演算子はビットごとの排他的論理和をとる演算子です。 べき乗を求めたいときはpow()関数を使用します。

関連するQ&A

  • mathematicaでの計算

    mathematicaで微分演算子を含むハミルトニアンを独立に扱いたのですが,できるのでしょうか? 例えば,一次元調和振動子のハミルトニアンでしたら H=-d^2/dx^2+x^2 ですが,これを独立に扱って (H-E)^2*ψ などの計算をmathematicaで簡便に行いたいのですが(ここでψは簡単な指数関数,ψ=exp(-a*x^2) など),このような計算のプログラミングはどのようにすればできるのでしょうか?

  • デカルト座標表示から極座標表示への変換について

    質問させていただきます 現在flashプログラミングに活かす為、ベクトル演算について勉強しております デカルト座標表示のベクトルB=3i^+4j^を極座標表示に しなさいという問題で Bの大きさをピタゴラスの定理を使い5と求める ところまでは理解できたのですが、 向きを求める計算で θ=tan-1(-1は指数です)(b2/b2)=tan-1(4/3)およそ 53.1°となっていたのですが 私の計算では、まず4/3=1.33333333を求め tan(1.33333)=0.023275....をもとめ 1.33333333../0.023275....=およそ57 となってしまいます どなたかお解りになられる方、 わかりやすくご教授頂けないでしょうか (中学生程度の数学知識の自分でも理解できるように) すみませんがよろしくお願いいたします

  • 浮動小数点表示の情報落ちについて

    浮動小数点表示の仮数部が23ビットである コンピュータで計算した場合、情報落ちが発生する 計算式は、どれか。ここで、()2内の数は2進法で表示されている。 正解 「(1.01)2×2^18+(1.01)2×2^-5」 指数部の差が大きい方が情報落ちするのは分かるのですが、 仮数部の23ビットで表現した場合、なぜ指数部を18に揃えるのですか。 計算をし易くする為ですか。理由を教えて下さい。  1.0100000000000000000000   ×2^18 +0.0000000000000000000000101 ×2^18 ← (1.01)2×2^-5 =1.0100000000000000000000   ×2^18                    101が情報落ちしている。 あと、「(1.01)2×2^-5」が 「0.0000000000000000000000101」になる意味も分かりません。 出来ましたら、こちらも理由を教えて下さい。 ご丁寧に解説して頂ける方おられましたら、ご教授お願いします。 以上、よろしくお願い致します。

  • マイナス1の指数法則について

    指数法則の計算について、どこが間違っているか指摘してください 使う指数法則は  a^nm = (a^n)^m    ・・・・・(1) a^(n+m) = a^n * a^m ・・・・・(2) あと a^0 = 1です まず1は(-1)^0と変形できます(ゼロ乗の性質) 次に、(-1)^0は(-1)^(1/2-1/2)と変形できます(0の書き換え) 指数法則(2)より、 (-1)^(1/2-1/2) = (-1)^(1/2) * (-1)^(-1/2) (-1)^(-1/2)の部分で、指数法則(1)を使うと、 (-1)^(-1/2) = ((-1)^(-1))^(1/2)となります(-1/2を分割) ここで、(-1)^(-1)は-1を分母にひっくり返すだけなので、値は-1となります なので、((-1)^(-1))^(1/2) = (-1)^(1/2)となります (-1)^(-1/2)は(-1)^(1/2)となったので(1/2のマイナスが無くなった) (-1)^(1/2) * (-1)^(-1/2) = (-1)^(1/2) * (-1)^(1/2) = (-1)^(1/2+1/2) = (-1)^1 = -1 と計算されますが、 元の数は1なので、 -1 = 1 になってしまいます。 これはどう考えてもおかしいですよね 計算ミスをしているのは分かりますが、どの部分がおかしいのでしょうか? 個人的には-1の-1乗が-1としたところだと思うのですが、何で違うのでしょうか? 初歩的な計算で申し訳わけないのですが、数学が得意な方 どこが間違っているか指摘してください よろしくお願いします

  • maxima複素数の指数表示の加算

    maximaで複素数を指数表示して加算を行いたいのですが、 exp[%i*(1/4)*%pi] + exp[%i*(3/4)*%pi]; と入力しても、そのままの式が出てくるだけで計算してくれません。 どうすればexp一つにできるでしょうか?

  • Σの計算について

    Σの計算についてつぎのようなプログラミングをしてみたんですけど、これって正しいですかね?mのそれぞれの値の時のΣの値が出ますかね?大学でしか実行が出来なくて、今できないので誰か正しいか確認して下さい。 #include <stdio.h> #include <math.h> int main() { int m,i; double h,M; M=0; for(m=1;m<=5;m++){ h=2/m; while(i<=m){ M=M+h; } printf("M%d=%lf",m,M); } return 0; } プログラミングを実行できるフリーのソフトがあれば教えて下さい。

  • 電気回路における複素指数関数表示と三角関数表示

    電気回路の式を計算しています。 複素指数関数で計算したものと、 三角関数で計算したものが一致しません。 どこが問題かが分かりません。 以下に示します。 ●三角関数での計算:仮定 I(t)=I0cos(ωt) R(t)=R0{1+αΔT(ω)cos(ωt)} (I0,R0の0は添字です) ●三角関数での計算 V1(t)=I(t)R(t) =I0R0cos(ωt)+(1/2)I0R0αΔT(ω)cos(ωt)    +(1/2)I0R0αΔT(ω)cos(3ωt) ●複素指数関数での計算:仮定 I(t)=I0exp(iωt) R(t)=R0{1+αΔT(ω)exp(i2ωt)} ●複素指数関数での計算 V2(t)=I(t)R(t) =I0exp(iωt)R0{1+αΔT(ω)exp(i2ωt)} =I0R0exp(iωt)+I0R0αΔT(ω)exp(i3ωt) Re(V2(t))=I0R0cos(ωt)+I0R0αΔT(ω)cos(3ωt) (Reはカッコでくくった所の実部をとるという記号です) V1とRe(V2(t))が一致しません。 なぜなのか、分かりません。 どなたか分かる方いらっしゃいましたら、 お教えいただけるとうれしいです。

  • VBかエクセルでの指数近似のやり方について教えてください.

    VBかエクセルでの指数近似のやり方について教えてください. あるサンプルデータの指数近似をやろうと思っています.指数近似曲線y=a*exp(bx)の定数aとbを求めようと思っておりますが,同時にサンプルデータの点数も変更しながら計算しようと思っております.指数近似の場合,例えば定数bを算出するときエクセルでは =INDEX(LINEST(LN(H2:H23),G2:G23),1) と書いています.つまり近似する対象となるサンプルデータの点数が変わると指定範囲(H2:H23)に空白セルや0の部分が出来てしまいます.VBだとfor文でそれらを回避することが出来るのですが,今度はVBでの指数近似のやり方(プログラム)がわかりません. どなたか教えていただけないでしょうか?

  • 「数値^指数」の指数は右上でなく右下でもよいのか?

    添付の数式をご覧ください。 これは、「MM=a x I^b」というソフトウェア開発の工数を計算する数式です。 aとbは定数です。 bはIの累乗(指数)です。 開発するソフトウェアによってこのaとbの値が変化します。 添付の数式を見て、不思議に思うことがあります。 bはIの「右下」に置かれています。 累乗なのでIの「右上」に置かれるべきではないでしょうか?

  • アドバイスお願いします。

    三日前くらいからプログラミング言語を勉強しだした初心者です。m( __ __ )m 『明解C言語入門編』を使って勉強してるのですが、なかなか解けない演習問題があり、投稿させていただきました。 問題 二つの整数値を読み込んで、それらの値の差が10以下であれば、「それらの差は10以下です」と、そうでなければ、「それらの差は11以上です」と、表示するプログラムを作成せよ。(論理or演算子を使うこと) とあるのですが、論理and演算子を使えばできたのですが、or演算子の場合どのように作ってよいのかわかりません。 アドバイスお願いします。 m( __ __ )m

専門家に質問してみよう