当前位置:首页 » 编程语言 » c语言级数求sinx
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言级数求sinx

发布时间: 2022-01-24 22:27:38

‘壹’ 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);
}

逻辑应该是错了

网页链接