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));
}
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.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));
ですねっ(>_<)
ありがとうございました!!
お探しの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言語 配列の長さの上限
-
defineを使った配列
-
先頭アドレスとは何ですか?
-
テキストファイルから文字列を...
-
【速いブラインドタッチ】手を...
-
配列で格納したものをmsgboxで...
-
C言語 メモリ?
-
C言語で巨大配列を作るにはどう...
-
パイソンの
-
unsigned char配列への入力の仕方
-
配列をEraseしてもメモリが開放...
-
MFC、ダイアログベースでのモー...
-
配列を使わずに、変数名を動的...
-
Redimした動的配列はEraseする...
-
パスカルの三角形
-
【Mathematica】 Protectされて...
-
新型コロナウィルスのオミクロ...
-
ポインタの配列のコンマについて
-
C++ vectorに配列をプッシュしたい
-
C言語で特定列だけを抽出して配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
配列で格納したものをmsgboxで...
-
配列の参照渡しで型が一致しま...
-
C# Listを使わずに2次元配列の...
-
VBで構造体の配列を関数に渡す...
-
複数の選択範囲の行番号を個別...
-
パイソンの
-
先頭アドレスとは何ですか?
-
【速いブラインドタッチ】手を...
-
C# 配列の変数宣言について。
-
C言語初心者 ポインタについて...
-
unsigned char配列への入力の仕方
-
テキストファイルから文字列を...
-
ExcelVBAで質問です。離れた二...
-
Redimした動的配列はEraseする...
-
C言語で特定列だけを抽出して配...
-
擬似コード 長さがmの配列でな...
-
メモリの初期値
-
C言語初心者 構造体 課題について
おすすめ情報