资源简介
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实现 计算
- 《KNN算法Java实现》KNN算法demo
- Java商品网站
- 简单的java聊天室代码,适合初学者
- java ssm面试题
- Java计算财务收益率XIRR
- 简单java设计 停车场管理系统
- 学生信息管理系统java+sql
- java小游戏适合初学者
- java邮件发送Demo(完整)
- JAVA五子棋游戏简单人工智能算法
- SSD3 exercise7 JAVA 答案 自己做的
- JAVA课程设计:功能比较完善的记事本
- Java游戏重装机兵源代码
- c/c++ 与java互通 AES加密解密,算法EC
- javaee中文API277401
- java计算器程序课程设计报告
- java并发编程内部分享PPT
- 关于Java毕业设计作品
- 寿星天文历Java封装整理版
- java初级练习项目 移动开户
-
Java 读取Apk包名 版本 包含Axm
lResou - java编写的车辆管理系统
- JAVAEE基础学习总结
- jsp人事工资管理系统
- java在线考试项目
- java 课程设计 剪刀石头布 源代码 很
- 通讯录JAVA程序设计实验报告
- 《Java项目开发过程实录》(18小时语
- java通过ip获取mac地址的工具
评论
共有 条评论