资源简介
java 求解非线性方程 二分法 牛顿法 弦截法
public class Binary {
static double m, n, jingdu;
static int flag = 0;
/**
* @param args
* 二分法
*/
public static double binary(double m, double n, double jingdu){
int i=0;
double x0,x1,x2,fx0,fx1,fx2;
do {
x1=m;x2=n;
fx1=x1*x1*x1-x1*x1-1;
fx2=x2*x2*x2-x2*x2-1;
}while(fx1*fx2>0);
do {
x0=(x1+x2)/2;
fx0=x0*x0*x0-x0*x0-1;
if((fx0*fx1)=jingdu);
System.out.println("用二分法共循环"+i+"次");
return x0;
}
代码片段和文件信息
/**
* java 求解非线性方程 二分法牛顿法弦截法
* 张方华
*/
import java.util.Scanner;
public class Binary {
static double m n jingdu;
static int flag = 0;
/**
* @param args
* 二分法
*/
public static double binary(double m double n double jingdu){
int i=0;
double x0x1x2fx0fx1fx2;
do {
x1=m;x2=n;
fx1=x1*x1*x1-x1*x1-1;
fx2=x2*x2*x2-x2*x2-1;
}while(fx1*fx2>0);
do {
x0=(x1+x2)/2;
fx0=x0*x0*x0-x0*x0-1;
if((fx0*fx1)<0) {
x2=x0;
fx2=fx0;
}
else {
x1=x0;
fx1=fx0;
}
i++;
}while(Math.abs(fx0)>=jingdu);
System.out.println(“用二分法共循环“+i+“次“);
return x0;
}
/**
* @param args
* 牛顿法
*/
public static double newton(double k double jingdu){
int i = 0;
double fdfxx0;
x = k;
do {
x0 = x;
f = x0*x0*x0-x0*x0-1;
df = 3*x0*x0-2*x0;
x = x0-f/df;
i++;
}while((Math.abs(x-x0))>=jingdu);
System.out.println(“用牛顿法共循环“+i+“次“);
return x0;
}
/**
* @param args
* 弦截法
*/
public static double xianJie(double zdouble s double jingdu){
int i=0;
double x0x1fx1fx0xfx;
x0=z;
x1=s;
fx0=x0*x0*x0-x0*x0-1;
fx1=x1*x1*x1-x1*x1-1;
do {
x=(x0*fx1-x1*fx0)/(fx1-fx0);
fx=x*x*x-x*x-1;
if(fx*fx0>0){
fx0=fx;
x0=x;
i++;
}
else
x1=x;
i++;
} while(Math.abs(fx)>=jingdu);
System.out.println(“用弦截法共循环“+i+“次“);
return x;
}
/**
* @param args
* 主函数
*/
public static void main(String[] args) {
boolean flag1 = true;
while(flag1){
Scanner as = new Scanner(System.in);
System.out.println(“-----------------------------------------------------“);
System.out.println(“-------------欢迎使用本程序求解非线性方程--------------“);
System.out.println(“---请选择要选用的方法解方程x*x*x + x*x - 10 = 0的解---“);
System.out.println(“--------------------1、二分法------------------------“);
System.out.println(“--------------------2、牛顿法------------------------“);
System.out.println(“--------------------3、弦截法------------------------“);
System.out.println(“--------------------退出请按0------------------------“);
System.out.println(“-----------------------------------------------------“);
flag=as.nextInt();
if(flag == 0) {
flag1=false;
System.out.println(“您已退出程序!欢迎下次使用。“);
}
if(flag == 1){
System.out.println(“请分别输入左右区间mn和精度:“);
m = as.nextDouble();
n = as.nextDouble();
jingdu = as.nextDouble();
System.out.println(“非线性方程的解为:“+binary(mnjingdu));
}
if(flag == 2){
System.out.println(“请输入牛顿的近似根x和精度值“);
m = as.nextDouble();
jingdu = as.nextDouble();
System.out.println(“非线性方程的解为:“+newton(mjingdu));
}
if(flag == 3){
System.out.println(“属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3387 2010-11-25 20:20 解非线性方程\Binary.java
目录 0 2010-11-25 20:21 解非线性方程
----------- --------- ---------- ----- ----
3387 2
相关资源
- java笔试题大全java笔试,面试笔试,逻
- Windows bat 设置Java环境变量
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
川公网安备 51152502000135号
评论
共有 条评论