当前位置:首页 » 编程语言 » c语言sinx近似值算法

c语言sinx近似值算法

发布时间: 2022-05-26 10:24:51

‘壹’ 用c语言求多项式求sinx的近似值。

#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语言问题 编写程序,计算sinx的近似值,精确到10的负六次方

#include<stdio.h>
#include<math.h>
main()
{
float a,b=1;
float i,sinx,x;
scanf("%f",&x);
a=x;
sinx=0;
for(i=1;fabs(a/b)>=1e-6;i++)
{
sinx+=a/b;
a=-a*x*x;
b=b*2*i*(2*i+1); }
printf("%f",sinx);
}

‘叁’ C语言计算sinx的近似值

/*sinx=x-x^3/3!+x^5/5-x^7/7!...*/
#include<stdio.h>
#include<math.h>
#define ACCURARY 0.00000001

main()
{
int i=1,j=1,k,n=1,x;
printf("sinx=x-x^3/3!+x^5/5-x^7/7!...\n请输入一个x\n");
scanf("%d",&x);
double sinx=0;
for(i=1;fabs(t)>=ACCURARY;i+=2)
{
for(k=1;k<=i;k++)
{n=n*i;}
j++;
t=pow(-1,j)*pow(x,i)/n;
sinx=sinx+t;
}
printf("sin%d=%.8f\n",x,sinx);
}
编译一下,看看行不,我好久没弄了。

‘肆’ C语言编程计算sinx的近似值

#include"stdio.h"
intmain(intargc,char*argv[]){
doublex,s,t,eps;
inti;
printf("Pleaseenterx&eps(R:0<eps<1)... ");
if(scanf("%lf%lf",&x,&eps)!=2||eps<=0||eps>=1){
printf("Inputerror,exit... ");
return0;
}
printf("sin(%g)≈",x);
for(s=t=x,x*=x,i=1;t>=eps;i++){
(t*=x)/=((i*i<<2)+i+i);
s+=i&1?-t:t;
}
printf("%f ",s);
return0;
}

运行样例:

‘伍’ c语言求sinx的近似值!!!!!急

修改及测试代码如下:
#include <stdio.h>
#include <math.h>
double fact(n)
//数据类型使用有误
{
int x;
double y;
y=1;
for(x=1;x<=n;x++){
y=y*x;
}
return y;
}
int main()
{//思路有些乱
double i,sum,x;
int n=1,flag=1;
scanf("%lf",&x);
i=x;//第一项
sum=0;
while(fabs(i)>=0.000001) //少了一个0
{
sum+=i;
flag=-flag;
n=n+2;
i=(flag*pow(x,n)/fact(n));
}
printf("%.10f\n",sin(x));
printf("sin<%f>=%.10f",x,sum);
return 0;
}

‘陆’ 用c语言计算sin(x)的近似值的代码

根据台劳公式:
sin(x)=x-(x^3)/3!+(x^5)/5!+……(-1)^(n)x^(2n+1)/(2n+1)!
采用递推法根据级数的前20项计算sin(x)的近似值:
(注: x为弧度值, x^(n+1)表示x的n+1次方)

我写的代码如下:
# include <stdio.h>
int main ()
{
double sx,x,a,b;
int n,f=1;
printf ("Please input x:");
scanf ("%lf",&x);
sx=a=x;
b=1;
for (n=1;n<=20;++n)
{

a*=x*x;

b*=4*n*n+2*n;

f=-f;

sx+=a/b*f;
}
printf ("sin(x)=%lf\n",sx);
return 0;
}

希望对你有所帮助。

‘柒’ 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近似值,已写程序,求改错!

#include<stdio.h> /*以下代码运行通过*/
#include<math.h>
main()
{
float sum,sinx,x,s;
int i,j; /*j为-1的次方变量*/
printf("Please inter x: \n");
scanf("%f",&x);
i=1;s=1;j=-1;
sum=0;
sinx=sin(x);
printf("%f\n",sinx);
for(i=1;(fabs(sum-sinx))>=0.000001;i=i++) /*你的程序中这句判断有错,应该是大于该精度内的sum值执行for内循环语句。*/
{ s=s*i;
if(i%2!=0) /*当i为奇数时,才执行,把偶数跳过,但s的值仍变化,这样除以的就是阶乘。*/
{ j=-j; /*用j来控制正负号*/
sum+=(double)(pow(x,i)/s)*j;
}
}
printf("sinx=%f\n",sum);

}

‘玖’ c语言求泰勒公式sinx近似值

你的程序错误太多。直接给出按泰勒公式展开求sinx近似值的程序。

#include<stdio.h>
#include<math.h>
intmain()
{
doublei,x,k,s=0;
scanf("%lf",&x);
k=x;
for(i=1;abs(k)>=0.0000001;i++)
{s+=k;k*=-x*x/(i*2*(i*2+1));}
printf("%.3lf",s);
return0;
}

//运行示例截图:

此时输入为角度值,例如截图中输入30,输出为0.5。

本题属于基础题。很简单的程序,不要人为复杂化。

热点内容
我的世界服务器里刷怪 发布:2025-02-12 19:57:04 浏览:388
疯狂java视频 发布:2025-02-12 19:38:17 浏览:149
flash免费上传网站 发布:2025-02-12 19:14:03 浏览:190
买脚本一般都在哪里 发布:2025-02-12 19:08:07 浏览:823
恋舞刷分脚本se下载 发布:2025-02-12 18:56:53 浏览:8
c语言大小写转换程序 发布:2025-02-12 18:55:23 浏览:524
三星耳机坏了怎么配置 发布:2025-02-12 18:54:46 浏览:975
简易编程语言 发布:2025-02-12 18:48:07 浏览:523
咋上传视频 发布:2025-02-12 18:45:50 浏览:288
python的包机制 发布:2025-02-12 18:45:49 浏览:448