‘壹’ c语言,如何用泰勒公式求sinx
//希望我的回答对你的学习有帮助
#include<math.h>
#include<stdio.h>
intmain(){
intn=1,count=1;
floatx;
doublesum,term;
printf("inputx:");
scanf("%f",&x);
sum=x;
term=x;
do{
term=-term*x*x/((n+1)*(n+2));
sum=sum+term;
n=n+2;
count++;
}while(fabs(term)>=1e-5);//这里可以改精度,我给你的是10的-5次方的精度
printf("sin(x)=%g,count=%d ",sum,count);
return0;
}
‘贰’ c语言编程求sinx的近似值(泰勒展开)
您好,是这样的:泰勒展开是这个:sinx=x-x^3/3!+x^5/5!-..
下面给出算20项的程序。
#include"math.h"
#include"stdio.h"
void main()
{
double x=0,y=0,z=1,s=1,mynum=0;
int i=1 ,j=0, k=1;
scanf("x=%f",&x);
for(i=1;i<20;i++)
z=1;k=1;
for(j=1;j<=2*i-1;j++)
{
z=x*z;//算j次方
k=k*j;//算阶乘}
s=-j*pow(-1,i);//pow(a,b)是a的b次方
z=z*s/k;
mymun=mynum+z;
}
printf("sinx=x-x^3/3!+x^5/5!-..");
printf("sinx=%f",mynum);
getch();
}
‘叁’ C语言求sinx
修改了一下。 用 前后项的递推: c=c*x*x/(float)i/(float)(i-1);
#include <stdio.h>
#include <math.h>
int main(){
double x,a,b=1,c=1,sum;
int i,count=1;
scanf("%lf",&x);
sum=x;
for (i=3; fabs(c)>1e-05;i=i+2){
c=c*x*x/(float)i/(float)(i-1);
b= -b;
sum=sum + c*b;
count++;
}
printf("%.3lf %d\n",sum,count);
return 0;
}
‘肆’ 用C语言求sinx的值,望高人指点
你的factorial是一个函数,好象不可以直接乘以一个整数的吧,还有double
factorial(int
n)是不是需要一个返回值呢。if(n==0)
return
1;只是在n=0的时候有返回值,n!=0就没有了
‘伍’ c语言利用泰勒级数求sinx,并统计多少项不知道哪里出错,求大神
#include<stdio.h>
#include<math.h>
intmain()
{floatjc(intn);//有改动
floatx,sin=0,b=0;//有改动
intm=1,i=1,c=2;
printf("请输入sinx中x的值:");
scanf("%f",&x);
do
{ b=pow(-1,c)*pow(x,m)/jc(m);
sin+=b;
m+=2;
c+=1;
i++;
}while(fabs(b)>=pow(10,-5));
printf("sinx=%f
",sin);
printf("总共累加了%d项。
",i);
}
floatjc(intn)//有改动
{floatr;
if(n==1){
r=1;}
else{
r=n*jc(n-1);}
returnr;
}
‘陆’ 用c语言求sinx的极限值
具体代码如下:思路是:Sin
x
≈x/1
-
x3/3!
+
x5/5!-x7/7!+…….+(-1)n-1x2n-1
/(2n-1)!#include
<stdio.h>double
factorial(double
n){//求n!
double
result=1;
for(int
i=1;i<=n;i++)
{
result*=i;
}
return
result;}double
sinx(double
x,int
n){//求sin(x),精度为n
double
result=0;
bool
bAdd=true;//是加还是减
for(int
i=1;i<=n;i++)
{
if(bAdd)
{
result+=((double)x*(2*i-1)/factorial(2*i-1));
}
else
{
result-=((double)x*(2*i-1)/factorial(2*i-1));
}
bAdd=!bAdd;
}
return
result;}void
main(){
printf("%f\r\n",sinx(0.4,10));}
‘柒’ 怎样C语言利用sin幂级数展开求值
C语言利用幂级数展开式求sinx,参考代码如下:
#include<stdio.h>
#include<math.h>
#define Pi 3.14159265359
int main()
{
double deg[6],x,sum,t,f;
int i,n;
for(i=0;i<6;++i){
f=-1;
n=1;
scanf("%lf",°[i]);
x=deg[i]*Pi/180;
t=sum=x;
while(t>0.00001){
t*=x*x/(2*n)/(2*n+1);
sum+=f*t;
n++;
f=-f;
}
printf("sin%g≈%f\n",deg[i],sum);
printf("sin%g=%f\n",deg[i],sin(x));
}
return 0;
}
‘捌’ c语言求sinx的近似值
#include<stdio.h>
voidmain()
{
floatx,a=0,b,t,n=1,s=1,c=1;
printf("请输入x的值:");
scanf("%f",&x);
do
{
t=x;
b=1;
a=a+s*t;
s=-s;
t=t*x*x;
b=b*(n+1)*(n+2);
n=n+2;
t=a/b;
c=c+1;
}while(t>1e-5);
printf("%f%f",a,c);
}
逻辑应该是错了
网页链接