python求sinx近似值_c语言求sinx的近似值 c语言求sinx近似值
#includevoid main(){ float x,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);}邏輯應該是錯了
網頁鏈接
For條件錯誤改為大于且把精度變大一點,否則永遠為真。你那個變號也不能實現總為正,可用J乘負一實現。最后你那階乘也求錯了,最好在加個變量直接不斷加一來求階乘, 手機回答不便寫代碼,自己好好改下吧,那樣效果較好。
算法有問題了,while(n>=1E-6),這個意思是n>=0.000001時循環,這意味著必須n有可能小于這個數才可能出結果,實際上sin(1.1)在0.02左右,也就是說無法退出循環,肯定不出結果了。
/*sinx=x-x^3/3!+x^5/5-x^7/7!...*/
#include
#include
#define ACCURARY 0.00000001
main()
{
\tint i=1,j=1,k,n=1,x;
\tprintf("sinx=x-x^3/3!+x^5/5-x^7/7!...
請輸入一個x
");
\tscanf("%d",&x);
\tdouble sinx=0;
\tfor(i=1;fabs(t)>=ACCURARY;i+=2)
\t{
for(k=1;k<=i;k++)
{n=n*i;}
j++;
t=pow(-1,j)*pow(x,i)/n;\t
sinx=sinx+t;
\t}
\tprintf("sin%d=%.8f
",x,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的近似值(泰勒展開)?_
: 您好,是這樣的:泰勒展開是這個: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-...
用C語言求多項式求sinx的近似值._
: #include 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+...
C語言計算sinx的近似值_
: /*sinx=x-x^3/3!+x^5/5-x^7/7!...*/#include#include#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...
c語言求sinx的近似值!!!!!急_
: 修改及測試代碼如下:#include #include 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=...
c語言求sinx的近似值,下面是我寫的程序,不知道哪里出錯了,求高人指點!_
: 我也不知道哪出錯了.goto弄的人暈頭轉向啊.Sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!.....
請問c語言的求sinx的近似值_
: 你的sigh變量沒賦初值,所以while循環沒執行,你可在while循環前給sigh賦初值,如sigh=1.0
C語言初學者請教!編程求sinx近似值,已寫程序,求改錯!_
: S的值求錯了...1!=13!=1*2*3;5!=1*2*3*4*5;(2*n-1)!=1*2*........*(2*n-1);
編程 求sinx近似值_
: #include#includeint jiecheng(int x);void main(){ int i=1,j=1,x; double sinx=0,sinx1=1,doubleNum; scanf("%d",&doubleNum); scanf("%d",&x);printf("\n"); for(i=1;fabs(sinx-sinx1)>=doubleNum;i+=2) { j++; sinx1=sinx; sinx=sinx...
【用C語言編寫sinx的近似值,精確到10^(_6)sinx=x-x^3/3!+x^5/5!-x^7/7!+…+】
: 給,已經編譯運行確認:#include #include #include double Factorial(int n) //求?乘 { int i=0; double factorical=1; if(n==0) return 1; for(i=1;i 1e-6){sum += t;++m;sign *= -1;}return sum;}int main(){doubl...
c語言求sinx的近似值,用泰勒公式,精確到10e_6._
: 主要的精神是這樣 sum=0; while(1) {term=....;newSum=sum+term;if(newSum==sum) break;sum=newSum; } return sum;
總結
以上是生活随笔為你收集整理的python求sinx近似值_c语言求sinx的近似值 c语言求sinx近似值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode刷题日记2022-2-2
- 下一篇: toi,atol,strtod,strt