一道c++问题
.利用幂级数展开式求cosx的值,精度达到0.00001cos(x)=1-x2/2!+x4/4!-x6/6!+(-1)n*x2n/(2n)!其中通项使用递归函数float...
.利用幂级数展开式求cosx的值,精度达到0.00001
cos(x)=1-x2/2!+x4/4!-x6/6!+(-1)n*x2n/(2n)!
其中通项使用递归函数 float f(float x,int n)计算
我的程序是这样的:
#include<iostream.h>
#include<math.h>
float x;
float f(int n,float x)
{
if(n>=1) return f(n-1,x)*(-1)*x*x/((2*n)*(2*n-1))+f(n-1,x);
if(n==0) return (1);
}
void main(void)
{
float x;
cin>>x;
for(int n=0;f(n,x)-f(n-1,x)>0.000001;n++)
{
cout<<f(n,x)<<endl;
}
}
不知道哪有问题
但是 展开
cos(x)=1-x2/2!+x4/4!-x6/6!+(-1)n*x2n/(2n)!
其中通项使用递归函数 float f(float x,int n)计算
我的程序是这样的:
#include<iostream.h>
#include<math.h>
float x;
float f(int n,float x)
{
if(n>=1) return f(n-1,x)*(-1)*x*x/((2*n)*(2*n-1))+f(n-1,x);
if(n==0) return (1);
}
void main(void)
{
float x;
cin>>x;
for(int n=0;f(n,x)-f(n-1,x)>0.000001;n++)
{
cout<<f(n,x)<<endl;
}
}
不知道哪有问题
但是 展开
展开全部
//你的程序f函数写的不对,模块化也不太好,你看下我写的这个,对比下
#include <iostream>
#include <cmath>
#include <windows.h>
using namespace std;
/*
*求n的阶乘
*/
int Factorial(int n)
{
if( n == 0 || n == 1)
return 1;
else
return (n * Factorial(n - 1));
}
float f(float f, int n)
{
float x = 1.0;
for(int i = 1; i <= n; i++)
{
x += pow(-1, i) * pow(f, 2 * i) / Factorial(2 * i);
}
return x;
}
int main()
{
float Result;
int i = 0;
float x;
cin >> x;
for(i = 1; f(x, i + 1) - f(x, i) > 0.000001; i++);
Result = f(x, i);
cout << Result << endl;
system("pause");
return 0;
}
#include <iostream>
#include <cmath>
#include <windows.h>
using namespace std;
/*
*求n的阶乘
*/
int Factorial(int n)
{
if( n == 0 || n == 1)
return 1;
else
return (n * Factorial(n - 1));
}
float f(float f, int n)
{
float x = 1.0;
for(int i = 1; i <= n; i++)
{
x += pow(-1, i) * pow(f, 2 * i) / Factorial(2 * i);
}
return x;
}
int main()
{
float Result;
int i = 0;
float x;
cin >> x;
for(i = 1; f(x, i + 1) - f(x, i) > 0.000001; i++);
Result = f(x, i);
cout << Result << endl;
system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询