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

C#,二分法(Bisection Method)求解方程的算法与源代码

1 二分法

二分法是一种分治算法,是一种数学思维。

对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。
 

基本思路:

给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:
1 确定区间[a,b],验证f(a)·f(b)<0,给定精确度ξ.
2 求区间(a,b)的中点c.
3 计算f(c).
(1) 若f(c)=0,则c就是函数的零点;
(2) 若f(a)·f(c)<0,则令b=c;
(3) 若f(c)·f(b)<0,则令a=c.
(4) 判断是否达到精确度ξ:即若|a-b|<ξ,则得到零点近似值a(或b),否则重复2-4.
 

2 代码

调用之前,请用委托方法给定需要求解的方程。

这样就可以求解任意的方程而无需修改核心代码。

using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;namespace Legalsoft.Truffer.Algorithm
{public delegate double delegateFunctionX(double x);public static partial class Algorithm_Gallery{public static delegateFunctionX funx = null;/// <summary>/// 二分法解方程的算法/// </summary>/// <param name="a"></param>/// <param name="b"></param>/// <param name="epsilon"></param>/// <returns></returns>public static double Bisection(double a, double b, double epsilon = 0.01){if (funx(a) * funx(b) >= 0){return 0.0;}double c = a;while ((b - a) >= epsilon){c = (a + b) / 2;if (funx(c) == 0.0){break;}else if (funx(c) * funx(a) < 0){b = c;}else{a = c;}}return c;}}
}

POWER BY TRUFFER.CN
BY 315SOFT.COM

http://www.lryc.cn/news/301436.html

相关文章:

  • Portainer安装/快速上手
  • 恢复被.target勒索病毒加密的数据文件:拒绝向.target勒索病毒支付赎金
  • 【Linux网络编程六】服务器守护进程化Daemon
  • MySQL之json数据操作
  • 【大厂AI课学习笔记】【2.1 人工智能项目开发规划与目标】(5)数据管理
  • Linux满载CPU和运行内存的方法
  • 每日五道java面试题之java基础篇(九)
  • spring @Transactional注解参数详解
  • D - 串结构练习——字符串连接
  • 什么样的服务器是高性能服务器?
  • 数学建模【线性规划】
  • ChatGPT的大致原理
  • 蓝桥杯备赛_python_BFS搜索算法_刷题学习笔记
  • 轮播图的五种写法(原生、vue2、vue3、react类组件,react函数组件)
  • 【MySQL】高度为2和3时B+树能够存储的记录数量的计算过程
  • 软件著作书 60页代码轻松搞定!(附exe和代码)
  • 阿里文档类图像的智能识别,文档分类自定义分类器
  • 256.【华为OD机试真题】会议室占用时间(区间合并算法-JavaPythonC++JS实现)
  • 人工智能学习与实训笔记(三):神经网络之目标检测问题
  • SSM框架,Spring-ioc的学习(下)
  • 【AIGC】Stable Diffusion的模型微调
  • VNCTF 2024 Web方向 WP
  • 第11章 GUI
  • 综合项目---博客
  • leetcode(矩阵)74. 搜索二维矩阵(C++详细解释)DAY7
  • 超详细||YOLOv8基础教程(环境搭建,训练,测试,部署看一篇就够)(在推理视频中添加FPS信息)
  • LeetCode171. Excel Sheet Column Number
  • pycharm创建py文件,自动带# -*- coding:utf-8 -*-
  • 希捷与索尼集团合作生产HAMR写头激光二极管
  • 电脑竖屏显示了怎么回复原状