用弦截法求一元三次方程的根x^3-5x^2+16x-80=0 ;带注释!

//用弦截法求一元三次方程的根x^3-5x^2+16x-80=0
#include<stdio.h>
#include<math.h>
 float f(float x) //定义子函数f(x) = x^3-5x^2+16x-80,当f(x) →0时,则x即为所求的实数根;
 {
     float y;
     y=((x-5.0)*x+16.0)*x-80.0;
     return(y);          //返回f(x)的值
 }
 
  float xpoint( float x1,float x2)//定义子函数xpoint,求出弦与x轴的交点的x0值;
  {
      float x0;
      x0=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));   //计算弦与x轴交点x0位置的值
      return(x0);                      //返回x0位置的值
  }
 
  float root(float x1,float x2) //定义子函数root,求近似实根
   {
       float x0;                 
       do      //关键循环步骤,未达到条件前一直do循环运算;
       {
         x0=xpoint(x1,x2);  //此处调用上面的子函数xpoint(x1,x2),得到弦与x轴交点位置x0的值
         if(f(x0)*f(x1)>0)  //此处调用子函数f(x),得到x轴x0位置的f(x0)值,得到x1位置的f(x1)值,如果f(x0)*f(x1)>0,即同符号的话;
              x1=x0;           //将x0赋值 →x1,则下次继续循环运算的区间为x0(x1)-x2
      else              //否则,如果f(x0)*f(x1)<0,即异号的话;
           x2=x0;          //将x0赋值 →x2 ,则下次继续循环运算的区间为x1-x0(x2)
       }
       while(fabs(f(x0))>=1e-6);//当型循环判断条件,1e-6为取值精度,f(x0)接近于0,即接近于x轴相交,如运算无结果可能循环次数太多,可减少幂的次数再试。
       return(x0);         //返回x0位置的值
   }
    
    main() //主函数
{
    float x1,x2,x0;
    do
    {
     printf("请输入预估的实根区间的两个数值x1,x2:\n");
     scanf("%f,%f",&x1,&x2); //输入两个数x1,x2
     }
     while (f(x1)*f(x2)==0);//当循环运算到f(x1)*f(x2)>=0时(0是必要条件参数),即f(x1)、f(x2)同符号,且任一个接近于0时,意味着与x轴接近相交,此时存在一个方程实根。
     x0=root(x1,x2);        //此处x0即为方程实根;
     printf("其中的一个方程实根为:%.4f",x0);
 }
 

举个例子:x1=-10,x2=10,运算结果为:

 

转载于:https://www.cnblogs.com/xmhango/p/5558874.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

两个很有用的进程间通信函数popen,pclose

两个很有用的进程间通信函数popen,pclose 今天起的比较晚&#xff0c;然后来了也不想复习&#xff0c;还是看书学习--写代码--写博客有意思&#xff0c;不敢说有多精通&#xff0c;至少每天都在学习新知识&#xff0c;不求立刻完全消化&#xff0c;但求每天有进步。 现在就看看…

c++中指针箭头的用法

1、c中指针用箭头来引用类或者结构体的成员&#xff0c;箭头操作符“->”用来引用指针对象。这是是用于类&#xff0c;或者是结构体的指针变量用的。 如struct Point {int x,y;};Point *ptnew Point;pt->x1; 举例子说明一下&#xff1a;比如&#xff0c;我有一个对象dark…

化零为整WCF(14) - 事务(Transaction)

[索引页][源码下载] 化零为整WCF(14) - 事务(Transaction)作者&#xff1a;webabcd介绍WCF(Windows Communication Foundation) - 事务(Transaction)&#xff1a; 对契约方法使用TransactionFlowAttribute声明&#xff08;设置TransactionFlowOption参数&#xff09;&#x…

有限元分析笔记01-平面应力和平面应变

https://www.zhihu.com/question/30439292 http://blog.sina.cn/dpool/blog/s/blog_c4c804690102vqqs.html plate stress plate strain

MQTT-SN协议乱翻之实现要点

前言 本篇是MQTT-SN 1.2协议最后一篇翻译了&#xff0c;主要涉及实现要点&#xff0c;很简短。 需要支持QoS 值为 -1 QoS虽默认设置有0,1,2三个值&#xff0c;但还有一种情况其值为-1。来自客户端的PUBLISH消息中若QoS为-1的情况下&#xff0c;此刻客户端不会关心和网关有没有建…

oracle-REDO日志文件分析(insert)

1:记录当前scnselect dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER------------------------11595722:创建表CREATE TABLE team (team_code VARCHAR2(3),team_name VARCHAR2(30),country_code VARCHAR2(3) );INSERT INTO team VALUES (M…

删除修改bond

参考地址&#xff1a;http://www.111cn.net/sys/linux/79301.htm 四、删除bonding设备 如由于最初配置的bonding设备取名为bond0&#xff0c;而后改名为了bond1&#xff0c;造成了两个bonding设备的存在&#xff0c;现在需删除bond0 。先查看下网络设备&#xff1a; # ls /sys/…

学习笔记(18):Python网络编程并发编程-守护进程

立即学习:https://edu.csdn.net/course/play/24458/296429?utm_sourceblogtoedu 守护进程&#xff08;了解&#xff09; 1.概念&#xff1a;守护进程是主进程在创建子进程的时候&#xff0c;将子进程设置成守护自己的进程&#xff0c;等主进程结束后&#xff0c;不管子进程的…

静态页面之间的转发与json与ajax做到动态数据

我们见过很多使用jsp ,php,asp的动态网页技术的网站了,我们知道如果一个网站内容更新频率极低,而内容量不是十分庞大时,这样的网站(一次开发完成后不会需要较多的维护成本)的完全可以使用全部使用静态页面来做,此时其实反而可以得到更好的效果(更快的响应时间(省掉了服务器各种…

数组的最后一位的下一位为什么是0?

以下是我做的两个实验&#xff0c;加证实了数组的最后一位的后一位是0&#xff0c;只应该是系统自动添加的标志位 1、比如 int a[5] 则a[5]0,这个是什么原因我还没有搞懂 #include<iostream> using namespace std;int main() {int a[5];int *pa;for(int i0;i<5;i){a[i…

iOS开发网络篇—NSURLConnection基本使用

iOS开发网络篇—NSURLConnection基本使用 一、NSURLConnection的常用类 &#xff08;1&#xff09;NSURL&#xff1a;请求地址 &#xff08;2&#xff09;NSURLRequest&#xff1a;封装一个请求&#xff0c;保存发给服务器的全部数据&#xff0c;包括一个NSURL对象&#xff0c;…

如何查看mysql连接相关参数

1.查看当前所有连接的详细资料: mysqladmin -u root -ppassword processlist 这里password为数据库用户root的密码 2.只查看当前连接数(Threads就是连接数.): mysqladmin -u root -ppassword status 这里password为数据库用户root的密码 3.如何知道当前MySQL设置的并发连接数是…

学习笔记(19):Python网络编程并发编程-互斥锁

立即学习:https://edu.csdn.net/course/play/24458/296430?utm_sourceblogtoedu 1.互斥锁&#xff1a; 多进程间的内存是相互隔离的&#xff0c;因此其数据也是相互隔离的&#xff0c;但是所有的进程都共享一个文件操作系统或者说共享文件处理器和打印端。而共享带来的是竞争…

使用HTML5+CSS3制作圆角内发光按钮----示例

<!doctype html> <html> <head> <meta charset"utf-8" /> <title>制作漂亮的圆角按钮<title> <style type"text/css"> .loginBtnDiv { float:right; padding-right:50px; padding-top:10px; } .loginBtn, .Resg…

C++中的sort()函数的原形

1、sor(a,an,compare) {//前两个是参数是待排序的数组首地址和尾地址 //最后一个参数是compare表示的比较类型 //可调用functional函数的less&#xff08;&#xff09;和greater&#xff08;&#xff09;函数比较大小}

鼠标放上超链接显示背景效果

鼠标放上超链接显示背景效果&#xff1a; <html> <head> <style type"text/css"> a.one:link {color: #ff0000} a.one:visited {color: #0000ff} a.one:hover {color: #ffcc00}a.two:link {color: #ff0000} a.two:visited {color: #0000ff} a.two:…

学习笔记(20):Python网络编程并发编程-互斥锁与join的区别

立即学习:https://edu.csdn.net/course/play/24458/296432?utm_sourceblogtoedu 互斥锁与join的异同&#xff1a; 1.同&#xff1a;都是将多进程并发模式变成多进程串行&#xff0c;保证了数据的有序性 2.异&#xff1a; 互斥锁只是对于进程的局部代码实施串行执行变化&#x…

Kali渗透(二)之被动信息收集

被动信息收集 公开渠道可获得的信息 与目标系统不产生直接交互 尽量避免留下一切痕迹 下面是两个关于开源情报&#xff08;OSINT&#xff09;的书籍 美国军方 北大西洋公约组织 信息收集内容 一.IP地址段与域名信息 二.邮件地址 三.文档图片数据 四.公司地址 五.公司组织…

ccBPM典型的树形表单和多表头表单的流程示例

ccBPM典型的树形表单和多表头表单的流程 关键字&#xff1a;树形表单。ccBPM支持树形表单&#xff0c;也可以称之为树结构的多表单或者多表头表单。 应用场景&#xff1a;比如项目招标类流程&#xff0c;在填写项目申请的环节&#xff0c;需要填写公司简介、公司业绩、项目实施…

由strcat函数引发的对char *a和char a[]以及sizeof和strlen

/* http://www.cnblogs.com/kaituorensheng/archive/2012/10/23/2736069.html参考这篇文章* char *a "Hello";Hello存放在常量区&#xff0c;是无法修改的。 * 通过指针只可以访问字符串常量&#xff0c;而不可以去改变它 * * * char a[] "Hello";…