?? ketvirta2d.java
字號:
import java.io.*;
public class Ketvirta2d {
public static double Function(double x, double u) {
//return (0.8 - u * u) * Math.cos(x) + 0.4 * u;
return (1 + ((1 / 5) * u * Math.sin(x)) - (u * u));
}
public static double RungesKutoMethod (double h, double length, double[] U) {
double k1 = 0;
double k2 = 0;
double k3 = 0;
double result = 0;
int i = 0;
for (i = 0; i < (length / h); i++) {
k1 = Function((0 + i * h), U[i]);
k2 = Function(((0 + i * h) + (h / 2)), (U[i] + ((k1 * h) / 2)));
k3 = Function(((0 + i * h) + h), (U[i] - (k1 * h) + (2 * k2 * h)));
U[i + 1] = U[i] + (k1 + 4 * k2 + k3) * h / 6;
result = U[i + 1];
}
return result;
}
public static double RungesRule(double Sn, double S2n, double p) {
if (Math.abs(Sn - S2n) < 0) {
return (((-1) * Math.abs(Sn - S2n)) / (Math.pow(2, p) - 1));
}
else {
return (Math.abs(Sn - S2n) / (Math.pow(2, p) - 1));
}
}
public static void main(String[] args) {
double length = 1.0;
double h = 1.0;
double result = 0.0;
int p = 3;
double[] U;
double[] paklaida;
int n = -1;
String tmp = "";
int buffer = 0;
U = new double[10000];
paklaida = new double[10000];
U[0] = 0;
while (h > 0) {
n++;
System.out.print("Iveskite diskretuji zingsni h (0 - pabaiga): ");
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
tmp = br.readLine();
} catch (IOException exc) {
System.out.println("Skaitymo klaida: " + exc);
System.exit(0);
}
try {
h = Double.parseDouble(tmp);
} catch (NumberFormatException exc) {
System.out.println("Blogas skaitmuo. Eilute " + tmp + " yra ignoruota!");
}
if (h > 0) {
System.out.print("Skaitinis sprendinys apskaiciuotas su zingsniu h = " + h + " yra: ");
result = RungesKutoMethod(h, length, U);
System.out.println(result);
System.out.print("Skaitinio sprendinio paklaida: ");
paklaida[n] = RungesRule(RungesKutoMethod((h / 2), length, U), result, p);
System.out.println(paklaida[n]);
}
}
System.out.println("\nPaklaidu santykis:");
for (buffer = 0; buffer < (n - 1); buffer++) {
System.out.println(paklaida[buffer] / paklaida[buffer + 1]);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -