当前位置: 首页 > ops >正文

OpenJudge | 用二分法求方程的根

总时间限制: 1000ms 内存限制: 65536kB

描述

用二分法求下面方程在(-10, 10)之间的一个根。
2x3- 4x2+ 3x- 6 = 0

输入

一个小于1的非负实数e,它的值表示所能允许的误差

输出

一个实数,其值为求得的一个根,要求精确到小数点后8位。
若该区间上没有根,则输出“No Solution”

样例输入

0

样例输出

2.00000000

提示

对于一个连续函数f(x),若f(a)*f(b) <= 0,则f(x)在区间[a, b]内至少有一个根。
特别的,对于一个单调的连续函数,上述定理得逆定理也成立
若[a, b]上有根,则可进一步考察根是否在 [a, (a+b)/2]内,或者在[(a+b)/2, b]内。

若b-a <= e 则可终止迭代,并认为(a+b)/2是一个近似解,将它输出

请使用double类型!

Code

#include <bits/stdc++.h>
using namespace std;double f(double x) {return 2.0*x*x*x-4.0*x*x+3.0*x-6.0;
}void fun(double *left, double *mid, double *right) {if(f(*left)*f(*mid) <= 0.0) {*right = *mid;*mid = ((*left)+(*right))/2;} else {*left = *mid;*mid = ((*left)+(*right))/2;}
}int main() {double left = -10, right = 10, mid = (left+right)/2;double e;scanf("%lf", &e);while(1) {fun(&left, &mid, &right);if(right-left <= e || right-left <= 0.000000001) {printf("%.8lf", mid);goto out;}}printf("No Solution");out:;
}
http://www.xdnf.cn/news/8396.html

相关文章:

  • 怎么判断一个Android APP使用了Qt 这个跨端框架
  • 2步彻底卸载VScode
  • AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.12.15-2024.12.20
  • 408提示
  • Linux入门(九)任务调度
  • Claude 4:一场AI代理革命的起点
  • 古文时空重构:当AI把课本诗词做成4D电影
  • day34 python深度学习训练优化实践:CPU vs GPU
  • 基于SpringBoot+Vue的足球青训俱乐部管理后台系统的设计与开发
  • Three.js与Babylon.js对比
  • Flyweight(享元)设计模式 软考 享元 和 代理属于结构型设计模式
  • AI+制造:中小企业的低成本智能化转型
  • 迅为3568开发板实操-HDF驱动配置 UART-配置 rk3568_uart_config.hcs
  • 2025期中考复现
  • 【ubuntu】Ubuntu安装 XTerminal和使用
  • Widget进阶
  • redis常用命令
  • Fastrace:Rust 中分布式追踪的现代化方案
  • 【Oracle】创建公共数据连接
  • Jouier 普及组十连测 R3
  • 【人工智能】低代码-模版引擎
  • Pluto实验报告——基于2ASK的简易的通信系统
  • 常见激活函数
  • debug一个cpu频率一直最低的问题
  • PyTorchviz 和 Graphviz:可视化 PyTorch 模型的利器
  • 第九天的尝试
  • LNCS-2009《Adaptive Sampling for $k$-Means Clustering》
  • postgresql 常用参数配置
  • Pytorch中文文本分类
  • 科技化企业展厅需关注哪些前沿技术?互动设计如何提升用户体验?