方程:2x³-4x²+3x-6=0;
#include<stdio.h>
#include<math.h>
int main(){
float x=1.5,x1,y,k;
//牛顿迭代法(牛顿切线法)
while(1){
y=x*(2*x*(x-2)+3)-6;//求该点纵坐标值
if(y==0)break; //若该点纵坐标值为0即得到零点,结束循环
k=2*x*(3*x-4)+3; //求该点斜率
x1=x-y/k; //求得切线与横坐标的交点
x=x1; //重新赋值进行迭代
}
printf("方程在1.5附近的根为:%f",x1);
return 0;
}
二分法:二分法(数学领域术语)_百度百科
#include<stdio.h>
int main(){
float x1=-10,x2=10,x;
float y1,y2,y;;
while(1){
x=(x1+x2)/2; //计算区间中点
y=x*(2*x*(x-2)+3)-6; //计算中点函数值
y1=x1*(2*x1*(x1-2)+3)-6; //计算原区间左端函数值
y2=x2*(2*x2*(x2-2)+3)-6; //计算原区间右端函数值
if(y==0)break; //如果函数值为零(即找到了零点)跳出循环
else if(y*y1>0) x1=x; //如果中点函数值和左端函数值同号则将中点作为新区间的左端
else if(y*y2>0) x2=x; //如果中点函数值和右端函数值同号则将中点作为新区间的右端
}
printf("方程在(-10,10)内的根为:%f",x);
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82664.html