wnlt.net
当前位置:首页 >> 用C语言使用二分法求sinx的零点,输入一个自变量x... >>

用C语言使用二分法求sinx的零点,输入一个自变量x...

sinx=x^2/2有且仅有一解,即x=0.“输出每次迭代的结果以及所用”这是什么意思?代码写了,具体输入什么东西,你自己添加语句.注意:所输入的区间[x1,x2]要保证f(x1)*f(x2)0); //确保输入的x1,x2使得f1,f2符号相反 do { x=(x1+x2)/2; //求x1,

#include<stdio.h>#include<math.h> typedef double(*fun)(double xx);//函数指针 #define e 0.000001 //误差 void eff(double a,double b,fun hs)//二分法 {int i=0; while(fabs(hs(a)-hs(b))>e&&fabs(a-b)>e){i++; if(hs(a)*hs((b+a)/2)>0){ a=(a+b)/2; printf(

#define ACCURACY 10E-7#include <stdio.h>double __sin(double _sin,double x,double x_n,long n_i,int n_2,int _i){ double tmp=x_n/n_i; if(tmp<=ACCURACY)return _sin; return __sin(_sin+_i*tmp, x, x_n*x*x, n_i*n_2*(n_2-1), n_2+2,-_i);}double sin(

用库函数就#inclue <math.h> 直接可以调用double sin(double x);

#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+

#include <stdio.h> double sa(double x, int n){ double a = 1; for(; n > 0; n--) a *= x; return a;} double sb(double x, int n){ double b = 1; for(; n > 0; n--) b *= n; return b;} double sin(double x){ int n = 1; double a = 1, b = 1, i = 1, sum = 0; while(a/b > 1e-6) { a

#include"math.h"#inlcude"stdio.h"main(){double X,Y;X=?//你自己初始化Y=X-sin(X)-1;printf("%f", Y);}

你的这个代码的for循环是走不进去的,你可以试试,是不是打出来的值都是x=x*PI/180;运算之后的x值.你输入500打出来的值就是500*PI/180=8.726639.原因是for循环的终止条件写错了,把小于改成大于就对了.否则你的x值一定大于1e-7,是无法进入循环进行运算的.

把long p=1;改为double p=1.0;即可.

#include<stdio.h>#include<math.h>#define ACCURARY 0.00000001 int jiecheng(int x); void main() { int i=1,j=1,x; double sinx=0,sinx1=1; printf("sinx=x-x^3/3!+x^5/5-x^7/7!\n请输入一个x\n"); scanf("%d",&x); for(i=1;fabs(sinx-sinx1)>=

网站首页 | 网站地图
All rights reserved Powered by www.wnlt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com