『壹』 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);
}
邏輯應該是錯了
網頁鏈接