C语言编程 二分法求方程的根
2个回答
展开全部
这段代码是求解方程f(x)=0在区间[-10,10]上的根的数值解。
方法的思想就是:一直选取区间中间的数值,如果发现中间的函数值与一侧函数值,异号,那么说明解在这个更小的区间中,采用eps=1e-5作为区间的极限大小,通过迭代的方法求解这个方程的数值解。
所以了解了上述思想,那么else
if(f(a)*f(c)<0)
b=c;
说明的是
f(a)和f(c)异号,那么使用b=(a+b)/2缩小迭代区间,继续迭代;同理else
a=c;说明f(a)和f(c)同号,那么使用a(a+b)/2缩小迭代区间,继续迭代!
方法的思想就是:一直选取区间中间的数值,如果发现中间的函数值与一侧函数值,异号,那么说明解在这个更小的区间中,采用eps=1e-5作为区间的极限大小,通过迭代的方法求解这个方程的数值解。
所以了解了上述思想,那么else
if(f(a)*f(c)<0)
b=c;
说明的是
f(a)和f(c)异号,那么使用b=(a+b)/2缩小迭代区间,继续迭代;同理else
a=c;说明f(a)和f(c)同号,那么使用a(a+b)/2缩小迭代区间,继续迭代!
展开全部
前面自定义函数funx(r)的返回值与funx(n)的返回值相乘如果小于零的话那么m就等于r,不然的话n就等于r,
就是先把r当做实际参数传入给funx进行计算,在funx函数内,x的值为r,再把n当做实际参数传入给funx进行计算,在funx函数内,x的值为n,
总的运算:[2*((m+n)/2)*((m+n)/2)*((m+n)/2)-4*((m+n)/2)*((m+n)/2)+3*((m+n)/2)-6]*[2*n*n*n-4*n*n+3*n-6]<0的话,m=r,不然n=r.
不知道看明白了没有......
就是先把r当做实际参数传入给funx进行计算,在funx函数内,x的值为r,再把n当做实际参数传入给funx进行计算,在funx函数内,x的值为n,
总的运算:[2*((m+n)/2)*((m+n)/2)*((m+n)/2)-4*((m+n)/2)*((m+n)/2)+3*((m+n)/2)-6]*[2*n*n*n-4*n*n+3*n-6]<0的话,m=r,不然n=r.
不知道看明白了没有......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询