二分法求非线性方程组Java_用C#编写二分法解一元非线性方程
在计算方法里有一种求一元非线性方程的解法,叫做二分法。
简单介绍如下:
函数F(x)在区间[a,b] 上连续,假定在区间内有唯一实根,计为x*
二分法的思想为:首先确定有根区间,将区间二等分,通过判断F(x)的符号,逐步将有根区间缩小,直至有根区间足够小,便可求出满足精度要求的近似根。
然后给出一例题和C#的编程解法:
//用二分法求方程f(x)=x^4-x-10.27=0在(1,2)上的根。精确到10^(-2)usingSystem;
classDichotomy
{
staticvoidMain()
{
intk=-1;//记录循环索引doublea=1;//下限doubleb=2;//上限doublex=0;//所求的根 Console.Write("k a \t b \t x \t F(x) \t a-b\n");
//第一次计算x=(a+b)/2;
k++;
Console.Write("{0,-4}{1,-13}{2,-13}{3,-13}{4,-20}{5}\n",k,a,b,x,F(x),a-b);
while(true)
{
k++;
doublef=F(x);
if(f<0)
{
a=x;
}elseif(f>0)
{
b=x;
} x=(a+b)/2;
if((b-a)<0.01)
{
Console.Write("{0,-4}{1,-13}{2,-13}{3,-13}{4,-20}{5}\n",k,a,b,x,f,a-b);
break;
}
Console.Write("{0,-4}{1,-13}{2,-13}{3,-13}{4,-20}{5}\n",k,a,b,x,f,a-b);
} Console.ReadLine();
}
privatestaticdoubleF(doublex)
{
returnMath.Pow(x,4)-x-10.27;
}}
输出结果为:
k a b x F(x) a-b
0 1 2 1.5 -6.7075 -1
1 1.5 2 1.75 -6.7075 -0.5
2 1.75 2 1.875 -2.64109375 -0.25
3 1.75 1.875 1.8125 0.214619140625 -0.125
4 1.8125 1.875 1.84375 -1.29024841308594 -0.0625
5 1.84375 1.875 1.859375 -0.557734031677246 -0.03125
6 1.859375 1.875 1.8671875 -0.176621873378753 -0.015625
7 1.859375 1.8671875 1.86328125 0.0177218760550026 -0.0078125
可见b7- a7 约等于0.0078<10^(-2),从而|x*-x7|<=0.5*(b7- a7 )<=0.5*10^(-2),也就是满足题目的精度要求,所以满足要求的根为:x*约等于1.863
二分法求非线性方程组Java_用C#编写二分法解一元非线性方程相关推荐
- Matlab 数值计算----二分法求非线性方程组
bisect.m函数(二分法的实现算法) function[x_star,index,it]=bisect(fun,a,b) %求解非线性计算方程的二分法,其中,fun(x)为需要求根的函数; %a, ...
- 求非线性方程组的最小二乘解的广义逆法C实现
求非线性方程组的最小二乘解的广义逆法 #include "math.h"#include "stdlib.h"#include "6gmiv.c&qu ...
- 蒙特卡洛法求非线性方程组
蒙特卡罗法的概念及应用 蒙特卡洛法 (又称统计试验法)是描述装备运用过程中各种随机现象的基本方法,而且它特别适用于一些解析法难以求解甚至不可能求解的问题,因而在装备效能评估中具有重要地位. 用蒙特卡洛 ...
- 复化梯形公式求椭圆周长C语言,C语言编程解线性,非线性方程,龙贝格算法.docx
C语言编程解线性,非线性方程,龙贝格算法 课程设计课程名称:数值计算B 设计题目:数值计算B课程设计学号:姓名:完成时间: 2015年10月27日题目一:非线性方程求根一.题目假设人口随时间和当时人口 ...
- 牛顿拉夫森法 matlab,【原创】牛顿-拉夫森迭代求非线性方程组
function [xf,fval,iter]=newtmullt(e,x0,es,maxit,varargin) % written by tubehu % www.MATLABsk ...
- matlab求解不等式方程组解集,matlab求不等式方程组的可行解
求高手用matlab解一个三元的方程组 我算的你这个解都是无穷大.具体过程如下:第一步:建立M文件函数myf.mfunctionf=myf(x)f(1)=600+x(1)*cos(10)+x(2)*s ...
- python牛顿法解非线性方程组_科学网—求解多元非线性方程组F(x)=0的Newton-Raphson方法及其MATLAB实现 - 王福昌的博文...
科学网对公式支持不太好,在博客园有相同博文 牛顿迭代法可以推广到多元非线性方程组 $boldsymbol{F}(boldsymbol{x})=boldsymbol{0}$的情况,称为牛顿-- 拉夫逊方 ...
- 二分法求方程根matlab,matlab用二分法求方程 的正根,要求误差小于0.0005
matlab编程题:用二分法求方程x^3-3*x-1=0的根 先建立二分法的fun.m文件,代码如下:functionfun(a,b,e)%f是自定义的函数%a为隔根区间左端点,b为隔根区间右端点,e ...
- matlab求解非线性常微分方程组,求一道用matlab编程解非线性方程组
满意答案 a67211123t 2013.05.10 采纳率:53% 等级:12 已帮助:9981人 对于非线性方程组F(X)=0,用fsolve函数求其数值解.fsolve函数的调用格式为: ...
最新文章
- 介绍一个效率爆表的数据采集框架
- 17.matlab中各种文件的I/O操作2——fopen操作
- 沈阳职业计算机学院宿舍几人间,沈阳工学院宿舍怎么样 住宿条件好不好
- python3+requests:get、post请求(python get、post)
- 微型计算机断电后信息将会丢失,计算机基础知识试题及答案a2
- python从文件初始化失败_iOS 6:libpython2.7.a初始化导入错误
- Unity2020.2中支持的C#8有什么新特性?
- java中osend,如何从java o javafx向windows任务栏发送信息
- 数据结构笔记(三)-- 链式实现顺序表
- linkbox php,win10 docker-toolsbox 搭建php开发环境
- ServiceNow常用角色和分组
- linux 之TFTP的使用
- ssm仓库管理系统含论文
- orc识别 语音识别 云真机 内网穿透快速调研
- 三菱FX5U添加新模块
- Debian添加开机启动项
- java标准差代码实现
- 转载 回声消除的总结
- linux 代码格式化工具下载,Linux 代码格式化工具 indent
- 基于 Hive 构建数据仓库