No.4ベストアンサー
- 回答日時:
あくまで一例です。
XXXXの部分が再帰呼び出しをする箇所です。考えてみて下さい。
/* 第n項まで展開して sin(x) を求める */
dboule sin(double x, int n) {
if ( n == 1 ) {
return x;
if (n%2 == 1) {
return XXXX;
} else {
/* n%2 == 0 */
return XXXX;
}
}
この回答への補足
最後のXXXXは0ですよね?
最初のXXXXは、
(pow(x,n)/(n * sin(n-1)))
ですか??
n=1から、4項おきに-になると思うんですが、それがうまく表現できません(>_<)
No.5
- 回答日時:
残念ですが、2つとも不正解ですね。
main関数の最後が、、
printf("sin_10=%10.9f\n", sin(x,10));
だとしたら、これでは正しい答えは出力されませんよね?
この sin 関数はそういう使い方を想定しています。
1つですることはどうしても出来なかったので、2つにしてみました!
double f(int n, int i, double x)
{
if (n<=1){
return (1);}
else{
return (1 - x * x / i / (i+1) * f(n-1, i+2, x));}
}
double sinx(int n, double x)
{
return f(n, 2, x) * x;
}
printf("sin_10=%10.9f\n", sin(x,10));
も
printf("sin_10=%10.9f\n", sin(n,x));
ですねっ(>_<)
ありがとうございました!!
No.3
- 回答日時:
再帰呼び出し、マクローリン展開以前に・・・
提示されたプログラムにはおかしなところがたくさんあります。
コンパイル通ったのでしょうか?
1.main 内の変数 i が初期化されていません。
2.main 内の変数 n を初期化されていますが、以後使われていません。
3.main 内からsin関数を呼び出していますが、この結果が使われていません。
4.sin関数の中からsin関数を呼び出していますが、引数の数が不一致です。
ただわからない、わからない、といわれてもどのへんがどうのようにわからないのか説明しないと、他の方も答えられないと思いますよ。
この回答への補足
#include<stdio.h>
main()
{
int i,n;
double xb,x,sinx=0,hu;
xb=1.0;
hu=1.0;
n=10;
printf("x(rad)=");scanf("%lf",&x);
for(i=1;i<n;i++){
xb=xb*(x/i);
if(i%2!=0){
sinx=sinx+(hu*xb); hu=hu*(-1.0);
}}
if(i%2==0){
printf("sin_10=%10.9f\n",sinx); }
return 0;
}
失礼しました(>_<)
これが、再帰を使わない表現ですよね?
『階乗』を求めるようなものを再帰で表現するのは理解できるのですが、
上のようなものはどこをどう再帰にすれば良いのか良く分からないんです。。
No.2
- 回答日時:
とか
http://okwave.jp/kotaeru.php3?qid=1035726
あたりが参考になるんじゃないでしょうか
この回答への補足
ありがとうございます!
しかし、やはり再帰となると良くわかりません。
もう、めちゃくちゃです…
#include<stdio.h>
double sin(double xb, double x, int i);
main()
{
int i,n;
double xb,x,sinx=0,hu;
xb=1.0;
hu=1.0;
n=10;
printf("x(rad)=");scanf("%lf",&x);
sin(xb,x,i)
if(i%2!=0){
sinx=sinx+(hu*xb); hu=hu*(-1.0);
}
if(i%2==0){
printf("sin_10=%10.9f\n",sinx); }
return 0;
}
double sin(double xb, double x, int i)
{
xb=1.0;
return (xb * sin(xb));
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 画像においてtan x=sin x/cos xでありますが、 x=0の時は分母が0になり式が成立しな 3 2022/06/15 21:31
- 数学 「f(z)=1/(z^2-1)に関して ローラン展開を使う場合、マクローリン展開を使う場合、テイラー 3 2022/08/27 19:56
- 数学 θ=π/2 のまわりでの f(θ)=sinθ/cosθのローラン展開に関して 以外の「」の解答を頂き 13 2022/11/11 09:45
- 工学 tanθは分母が0になることがある為、テイラーとマクローリン展開は出来ないと聞いたことがあるのですが 1 2022/06/15 20:24
- 数学 tanθは分母が0になることがある為、テイラーとマクローリン展開は出来ないと聞いたことがあるのですが 8 2022/06/15 18:23
- 数学 nが実数のとき、(1+x)^nのマクローリン展開は (1+x)^n=1+nx+n(n-1)/2!x^ 3 2022/12/10 11:51
- C言語・C++・C# C言語のマクローリン展開ローラン展開のコードについて 3 2022/12/15 14:45
- 数学 マクローリン展開のn次の係数を求める問題です。 考えてみたのですが、分からず困っています。 x/(1 5 2022/07/31 20:51
- 数学 マクローリン展開のn次の係数を求めよと言う問題です。 (x^2+2)e^x, n=5 どのようにして 1 2022/07/31 20:31
- 工学 画像はテイラー展開の公式です。 <マクローリン展開> f(z)=Σ_{n=-∞~∞}a(n)(z-a 1 2022/09/01 22:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルから文字列を...
-
【速いブラインドタッチ】手を...
-
C++ vectorに配列をプッシュしたい
-
電子書籍を見るためにはどうし...
-
【C言語】配列の中に配列を入れ...
-
ファイルの読み込みとメモリ確...
-
C言語で特定列だけを抽出して配...
-
配列を使わずに、変数名を動的...
-
C言語 配列の長さの上限
-
複数のボタンを配列で扱う方法...
-
64ビット コマンドライン Cプ...
-
市販のビンゴカードについて
-
if文の判定条件に配列
-
自販機での金銭収受を想定した...
-
c言語の配列の先頭アドレスが偶...
-
配列について
-
sinのマクローリン展開
-
C言語の配列のサイズ
-
配列で格納したものをmsgboxで...
-
C言語でcharの足し算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
先頭アドレスとは何ですか?
-
配列で格納したものをmsgboxで...
-
C# Listを使わずに2次元配列の...
-
C# 配列の変数宣言について。
-
テキストファイルから文字列を...
-
配列の参照渡しで型が一致しま...
-
ExcelVBAで質問です。離れた二...
-
unsigned char配列への入力の仕方
-
VBで構造体の配列を関数に渡す...
-
C++ vectorに配列をプッシュしたい
-
C言語で特定列だけを抽出して配...
-
複数の選択範囲の行番号を個別...
-
Excel、VBAのユーザーフォーム...
-
配列をEraseしてもメモリが開放...
-
配列を含む構造体の初期値について
-
【速いブラインドタッチ】手を...
-
Redimした動的配列はEraseする...
-
C言語 配列の再初期化
おすすめ情報