• ベストアンサー

CCSCを使ったPICによる平方根(√)を含む計算方法について

PICで平方根を含む計算を行いたいのですが、どうすればよいでしょうか? √2だと2^1/2で行けるだろうとやるとエラーが帰ってきます。 変数はすべてdoubleで宣言しているのですが、そこでエラーが帰ってきます。 ソースはこれです sqrt(1 - (x + dx) * (x + dx)) これをCCSCのコンパイラでコンパイルできるようにしたいです。 どう書けばよいでしょうか? わかる方よろしくお願いします

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

  • ベストアンサー
回答No.1

 この行に該当するエラーメッセージを提示して下さい。  それと、float は使った事有るけど CCS C で double は使えましたか。?  今手元にCCS C マニュアルが無いんでそちらで確認してください。

okinawa10
質問者

補足

回答ありがとうございます。 いま開発環境が手元に無いため確認できませんが、doubleをfloatでかい手も出来ませんでした。 週明けにエラーの文を上げたいと思います。

関連するQ&A

  • 平方根の計算

    はじめまして。 脳トレを兼ねて、久々に数学の計算をしています。 恥ずかしながら平方根の計算を全く忘れてしまいまして、下記の計算ができません。どなたか助けてください。 {r/√(r^2+x^2)}=0.8 上の式で、『r= 』の形にしたいのですが、式を変形できません。 ちなみに、こたえは『r=(4/3)x』です。 よろしくお願いいたします。

  • platexで平方根を用いるとき

    platexで平方根を用いるとき \sqrt{\mathstrut 数式} と書いているのですが、 この時、平方根のなかにある数式によって√記号の高さが変わってしまい、 複数行で書くと、各行の√記号の高さの違いが目立ってしまいます。 すべての√記号の高さを統一する方法を教えていただけないでしょうか。

  • 入力した任意の数の平方根を求める

    C言語を少しずつですが勉強していて、最小値から最小値までの和を求めるのと、入力した数の2乗を求めるプログラムはわりと楽に完成したのですが、平方根を求めるというのができずに困っています。 プログラムの流れを説明すると、 1.どの処理を行うのか、数字+Enterで選択(平方根は、case 3です) 2.その処理を行う 3.結果の出力 です。 平方根の処理は、 scanfで実数を変数に代入→計算を行う関数を実行→結果を出力です。 症状としては、例えば4と入力して処理を実行すると、桁数のすごく大きい数が入力した数として処理され、また平方根も正しく求められていないようです。 (コンパイル時にエラーは出ていません)

  • 平方根の計算

    ある計算問題の途中で式の変換が分かりません。次の式がどのように変化しているか教えていただけませんか。 よろしくお願いします。解答では次のようになっていました。 √( x - 1 ) * √( x - x^2 ) = - √( x) * ( x - 1 ) (具体的に分からないところをのべさせていただきますと....) x-x^2= -x(x-1)として、掛け算を行い、√( (-x) * ( x - 1 )^2 ) となり、(x-1)を平方根の外へだし、 √(-x) * ( x - 1 )となるのかなと考えたのですが、ここからマイナスを取り出す方法がわかりません。

  • java 電卓 平方根

    こんにちは。趣味でプログラミングをしているものです。 さっそくですが質問させていただきます。 Java で文具店で1000円くらいで売っているような電卓を再現 しようとしているのですが 平方根のボタンを押したときの処理でつまづいています。 3 を入力して平方根のボタンを押すと以下のサイトに表示されている限りにおいては 同じ数値になります。 http://ja.wikipedia.org/wiki/3%E3%81%AE%E5%B9%B3%E6%96%B9%E6%A0%B9 ここで質問の内容について説明させていただきます。 Windows に標準で付属している電卓では 0.5 を入力して平方根のボタンを押し続けると 最後には 1 が表示されます。 ですが、以下に示す自分のコードだと 0.99999999998 と表示されてその後 平方根のボタンを押し続けても同じ結果になります。 0.99999999998 で収束しているのだと思いますが、 (自分の作った電卓では小数点以外の数字は12個表示されるようになっています。) 1 に収束するようにするには、 以下に示す メソッドsqrt 内の計算部分の 割り算のスケールの指定とかを変えれば うまくいくのでしょうか? ----------------------------------------------- 平方根のボタンを押したときの処理です。 case CalculatorEvent.TYPE_SQRT : if( negativeflag ) { if( ! display.showBigMinus ) showNumString = showNumString.substring( 1 ); } result = sqrt( new BigDecimal( showNumString ) ); //test statement System.out.println( "from 1446 : " + result.toString() ); result = result.setScale( 32, RoundingMode.HALF_UP ); showNumString = result.toString(); //test statement; System.out.println( "sqrt result : " + showNumString ); // . . . . //以下おもに端数を表示桁数に丸めて、 //負の値の平方根を求めたときは //絶対値の平方根を求めて表示 // エラーであるマークも表示 // 呼び出し元に例外を投げる // 呼び出した側で例外を受け取ると // 電卓のボタンを入力できないようにする ----------------------------------------------- 上記コード test statement は以下の出力結果になると 以後 平方根のボタンを押しても同じ結果が出力されます。 from 1446 : 0.9999999999899999999999499999999994999999999937499999999125000000078125 sqrt result : 0.99999999998999999999995000000000 ------------------------------------------------ 上記コード中のメソッド sqrt です。 private BigDecimal sqrt( BigDecimal value ) { BigDecimal two = new BigDecimal( "2" ); BigDecimal x = value.divide( two ); BigDecimal last_x = BigDecimal.ZERO; BigDecimal gap = x.subtract( last_x ); BigDecimal range = BigDecimal.ONE.movePointLeft( 64 ); BigDecimal t; while( gap.compareTo(range) > 0 ) { last_x = new BigDecimal( x.toString() ); //t = value.divide( x, 64, BigDecimal.ROUND_DOWN ); //test statement t = value.divide( x, 64, RoundingMode.HALF_EVEN ); // x = x.add( t ).divide( two ); gap = x.subtract( last_x ).abs(); } return x; } ----------------------------------------------- 長文になりもうしわけありませんが、 ごぞんじのかた、教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • マイコンSHでSQRT(平方根)が使えません。なぜかしら?

    マイコンSHでSQRT(平方根)が使えません。なぜかしら? 開発環境はルネサスHEWです。 (SuperH RISC engine C/C++ Compiler Package V.9.03 Release 00) プログラムは下記のような簡単なものです。 リンクでエラーになります。 L2310 (E) Undefined external symbol "_sqrt" referenced in "ファイルネーム" 未定義ということのようですが,よくわかりません。 どなたかお助けください。 宜しくお願いします。 ------------- 記 ------------- #include <math.h> { double ret; ret=sqrt(4.0);   ・   ・ }

  • 平方根を求めるアルゴリズムについて・・・

    次の文章の平方根を求めるアルゴリズムの疑似言語での記述の仕方を教えてください。 変数名等は任意に設定して良い。またアルゴリズムは任意の正数の平方根を求められるようにすること。求める精度は10-8とする。 (√のない計算機) T君はある資格試験を受験しに行った。その試験では、電卓を持ち込むことができる。当然に計算問題が出題され、計算した結果、答えは√14とでた。回答しようとしたところ、選択肢は小数で書いてある。ところが平方根を計算しようと思ったら√キーがない電卓だった。 どうしよう・・・ まず4×4=16であるから、とりあえず14を4で割ってみた。 14÷4=3.5 言わずもがなであるが、√14は二乗すると14になる正の数のことである。 √14は4と3.5の間にあることが分かる。 とりあえず、今度は14を4と3.5のあいだの3.75で割ってみる。 14÷3.75=3.7333333333 ということは√14は3.75と3.7333333333のあいだにあるわけだから同じように14を3.741666667で割ってみる。 14÷3.741666667=3.741648107 これで√14が小数点第4位までが求められた。あとはこの作業を繰り返せば、徐々に精度は良くなるはずである。

  • 平方根についてです。

    先日、何気ない問題の中で平方根を利用し、解いていた際、√(25x^2)=10という方程式と解くことになりました。両辺を二乗して解くと、x=±2と落ち着くのですが、ルートの中を(5x)^2と解釈し、ルートの外に出すと、x=2と出てしまいます。これは、正しくは(±5x)^2が25x^2であるから答えにズレができるなどすれば、納得できます。 では、仮に√36を考えるとどうなのでしょうか? 私はこれまで、なんの違和感もなく6、としていたのですが、これも√{(±6)^2}と解釈して、√36=±6と解くのが正しいのでしょうか。なんだか今までの計算をすべて否定された気分です。真相はどうなのでしょうか。数学に詳しい方、どなたか教えてください...! また、この議題が高校レベルの数学で解決することかも加えて教えて頂けると嬉しいです。

  • 平方根の約分について

    平方根の約分の基本がよく分かりません。 どなたか教えていただけると有難いです。 問題は以下です。 3√2-3 ―――――  =  ?   3 分母の3を分子全てに約分してー√2になるのか、 片方だけに約分してー3√2になるのか、 それとも全く違う考え方なのか、わかりません。 また、似たような問題で平方根の無い場合も教えていただけないでしょうか。 3x+6 ―――― = ?  3 この場合も3xと6両方に3で約分するのか、 それとも片方だけなのか、教えていただければと思います。 基本なので応用でよく出てくるのですがいつもつまづいてしまいます。 しっかり抑えておきたいのでどなたか、ご教授お願いいたします。

  •  分数乗の平方根の書き方と開き方

    x^1/y (xの1/y乗)を平方根になおすと、どういう書き方になりますか? そして、平方根にした時の、開き方を教えてください。 問題としては、 x^8=(100÷67.704)-1 x=(100÷67.704)^1/8 -1 x=4.996 2行目まではわかるのですが、その後の計算のしかたと、(多分√になおすのでしょうが)がどうしてもわかりません。 ちなみに、(100÷67.704)の答えを、電卓の√を3回押した後に、1を引くと、4.996と答えが出るのですが、何故3回なのか理由がわからないです。 低レベルな質問で申し訳ありませんが、よろしくお願いいたします。