三九宝宝网宝宝教育教学论文

C二分法解方程

12月24日 编辑 39baobao.com

[c语言编程二分法解方程]这段代码是求解方程f(x)=0在区间[-10,10]上的根的数值解。 方法的思想就是:一直选取区间中间的数值,如果发现中间的函数值与一侧函数值,异号,那么说明解在这个更小的区间中,采用e...+阅读

/*

实现二分法求解方程。编写并使用以下函数:

double SolveRoot(double(*pf)(double x),double a,double b,int n)

这里,pf指向一个函数f,f用来定义要求解的方程f(x)=0,a和b是未知解x的上下界(即a<=x<=b),

n是循环次数。例如,如果f(x)=x*x-2,则SolveRoot (f,1,2,100)将返回1.414213562373095,

即方程为x*x=2的解。二分法的原理是反复地把区间分为两个相等区间,然后用其中含有解的一半

代替该区间,依次类推,得到满足精度的解。它通过检查f(a)和f(b)的符号来判断解是否在区间中。

*/

#include

#include

#include

using namespace std;

double SolveRoot(double (*pf)(double t), double a, double b, int n)

{

//...请补充完整

double mid=(a+b)/2;

double fm=pf(mid);

if(n==0)

return mid;

double fa=pf(a);

if(fm*fa>0)

a=mid;

else

b=mid;

return SolveRoot(pf,a,b,n-1);

}

double f(double x)

{

return x*x - 2;

}

int main()

{

cout<

for(int n=10; n<60; n+=5)

cout<<"SolveRoot(f,1,2,"<

cout<<"The exact SolveRoot = "<

return 0;

}

以下为关联文档:

C语言二分法解方程急谢谢本题的一个完整的c程序如下,程序在win-tc下调试通过,结果正确。#include #include #include #include int n; double c[16]; double Func(double); int BisectRoot(double,dou...

以C语言为工具利用二分法求解方程程序急#include "stdio.h" #include "math.h" float function(float x) { float f; f= x*x-2*x-1; return f; } void main() { float x1,x2,x0,fx1,fx2,fx0; x1=0;x2=3; fx1=function(...

用C语言编写二分法解方程程序#include <stdio.h> #include <math.h> float getvalue(float x) { return x*x*x+4*x*x-10; } void main() { float a=1,b=1.5,c; c=(a+b)/2; while(fabs(getvalue(c))>0.00...

C语言怎么样用二分法求方程的解x1,x2请输入-10,10 #include <stdio.h> #include <math.h> void main() { float x0,x1,x2,f0,f1,f2; do { printf("please enter x1 & x2:\n"); scanf("%f,%f",&x1,&x2); f1=((2...

推荐阅读
图文推荐