我在用任何语言编写程序方面都是全新的,我正在尝试编写一个简单的 Newton-Raphson 方法,我认为该方法在 C 中有效(尚未编译,但从前面的示例开始,所以我正在制作这个假设)但意识到我不确切知道如何从 Java 调用方法......我收到这些错误:
NewtRaphEx.java:5: class, interface, or enum expected
double f = (double);
^
NewtRaphEx.java:6: class, interface, or enum expected
double df = (double);
^
NewtRaphEx.java:39: class, interface, or enum expected
double f(double x) {
^
我假设我错误地调用了 f 和 df 方法?这不是作业问题,只是我自己的练习!
到目前为止,我的程序是:
/* Newton Raphson Method*/
import Scanner.java.util;
double f = (double);
double df = (double);
public class NewtRaphEx {
public static void main (String[] args) {
double xn, e_allow, fn, fnew, eps, dfn, dfnew;
int n;
int nMax = 10000;
e_allow = 0.001;
xn = 0.6;
while (eps <= e_allow || n < nMax) {
for (n = 0; n <= nMax; n++) {
fn = f(xn);
dfn = df(xn);
dx = -(fn / dfn);
xnew = xn + dx;
eps = Math.abs(dx / xn);
n = n + 1;
System.out.println("N" + "\t" + "X" + "\t" + "F(x)" + "\t" + "dF(x)" + "\t" + "delX" + "\t" + "X_new" + "\t" + "Epsilon");
System.out.println(n + "\t" + xn + "\t" + fn + "\t" + dfn + "\t" + dx + "\t" + xnew + "\t" + eps);
}
}
}
}
// Creating Function f = x - cos(3.5x)
double f(double x) {
return (x - cos(3.5 * x))
}
double df (double x) {
return (1 + sin(3.5 * x))
}