我是一个初学者,对JAVA不太了解,自己写了很久总写不正确,请大家帮小弟一次,
用JAVA用JAVA语言编写一个程序求一个一元二次方程f(x)=a*x*x*x+b*x*x+C*x+d=0的根(用弦截法),在编写代码得时候可以赋值给a,b,c,d.
用JAVA用JAVA语言编写一个程序求一个一元二次方程f(x)=a*x*x*x+b*x*x+C*x+d=0的根(用弦截法),在编写代码得时候可以赋值给a,b,c,d.
解决方案 »
- 简单问题,答对给100分!打开JNLP文件,总是显示调用Java VM(execv)错误,高手进!
- 问个弱弱的问题,在什么情况下要用转义符。
- 开车的人不应跑去修路
- javaBean练习
- BMP图片的处理想请教各位高人!
- DataInputStream的readInt()函数如果读的是字符串它能转换成整数,请问这个整数和字符串编码有什么联系?怎么来的整数?
- ****怎么实现常驻内存的程序,并能定时运行****
- jbuilder的问题java.lang.NoClassDefFoundError: ...是什么例外?
- 高手们,你们可得帮帮我呀!如何用Applet显示一个tif格式的图像文件?
- JDK配置问题
- 关于Java文件和线程的问题
- java try catch
拿别人C++的例子改的 你看一下 系数ABCD可以自己改
import java.util.Scanner;
public class Xuanjiefa {
static double epsilon = 0.0000001; // 精度
static int MAXREAPT = 100;
static final double A = 1;
static final double B = 2;
static final double C = 3;
static final double D = 4;
static double result;
static double f(double x) {
return A * x * x * x + B * x * x + C * x + D;
}
static boolean rootChord(double x0, double x1)
// 根在区间[x0,x1]附近(不一定在区间里面),同时x0兼作求根结果返回,x0,x1谁大谁小没有关系
{
double xk, xk1, xk2;
xk = x0;
xk1 = x1;
for (int i = 0; i < MAXREAPT; i++) {
xk2 = xk1 - f(xk1) * (xk1 - xk) / (f(xk1) - f(xk));// key step
if (Math.abs(xk2 - xk1) < epsilon) {
result = xk1;// 返回根
return true;
} else {
xk = xk1;
xk1 = xk2;
}
}
// 迭代失败
System.out.println("迭代次数超过预期.");
return false;
}
public static void main(String[] args) {
double x0, x1;
Scanner sc = new Scanner(System.in);
System.out.println("请输入初始迭代x0,x1值:");
x0 = sc.nextDouble();
x1 = sc.nextDouble();
if (rootChord(x0, x1)) {
System.out.println("在该初始值附近的根为:" + result);
} else {
System.out.println("迭代失败!");
}
}
}