?? ketvirta.java
字號:
import java.io.*;
public class Ketvirta {
public static double a = 0.0;//Math.PI / 2;
public static double b = 1.0;//0.0;
public static double Formula(double t) {
return (t * Math.cos(t));
//return Math.pow(t, 2) * 3;
}
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 double VariableChange(double a, double b, double s) {
double fff = ((a + b) / 2) + s * ((b - a) / 2);
return Formula(fff);
}
public static double TrapezeMethod (int n) {
double h = 0.0;
double sum = 0.0;
double T = 0.0;
int counter = 0;
h = (b - a) / n;
for (counter = 1; counter < n; counter++) {
sum = sum + Formula(a + h * counter);
}
return ((h / 2) * (Formula(a) + Formula(b)) + h * sum); //T
}
public static int IntegerRead() {
String tmp = "";
int skaiciukas = 0;
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 {
skaiciukas = Integer.parseInt(tmp);
} catch (NumberFormatException exc) {
System.out.println("Blogas skaitmuo. Eilute " + tmp + " yra ignoruota!");
}
return skaiciukas;
}
public static void Trapeze(int buffer) {
int N1 = 10;
int N2 = 20;
int N3 = 40;
int N4 = 80;
int N5 = 160;
int N6 = 320;
int N = 0;
double pakl = 0.0;
int p = 2;
double T = 0.0;
double T1 = 0.0;
double T2 = 0.0;
double T3 = 0.0;
double T4 = 0.0;
double T5 = 0.0;
double T6 = 0.0;
double[] paklaidos;
int pos = 0;
paklaidos = new double[6];
if (buffer == 1) {
System.out.println("\n\n\n---------------- Trapeciju metodas -------------\n");
System.out.print("Iveskite N: ");
N = IntegerRead();
T = TrapezeMethod(N);
System.out.println("Trapeciju metodo atsakymas: " + T);
pakl = RungesRule(TrapezeMethod(N / 2), TrapezeMethod(N), p);
System.out.println("Paklaida = " + pakl);
System.out.println("\n------------------------------------------------\n\n");
}
else if (buffer == 2) {
System.out.println("\n\n\n-------------- Trapeciju metodas (N = 10, N = 20, N = 40, N = 80) -------------\n");
System.out.println("N = 10");
T1 = TrapezeMethod(N1);
System.out.println("Trapeciju metodo atsakymas: " + T1);
pakl = RungesRule(T1, (T1 / 2), p);
paklaidos[pos] = pakl;
pos++;
System.out.println("Paklaida nr.1: " + pakl);
System.out.println("\nN = 20");
T2 = TrapezeMethod(N2);
System.out.println("Trapeciju metodo atsakymas: " + T2);
pakl = RungesRule(T1, T2, p);
paklaidos[pos] = pakl;
pos++;
System.out.println("Paklaida nr.2: " + pakl);
System.out.println("\nN = 40");
T3 = TrapezeMethod(N3);
System.out.println("Trapeciju metodo atsakymas: " + T3);
pakl = RungesRule(T2, T3, p);
paklaidos[pos] = pakl;
pos++;
System.out.println("Paklaida nr.3: " + pakl);
System.out.println("\nN = 80");
T4 = TrapezeMethod(N4);
System.out.println("Trapeciju metodo atsakymas: " + T4);
pakl = RungesRule(T3, T4, p);
paklaidos[pos] = pakl;
pos++;
System.out.println("Paklaida nr.4: " + pakl);
System.out.println("\nN = 160");
T5 = TrapezeMethod(N5);
System.out.println("Trapeciju metodo atsakymas: " + T5);
pakl = RungesRule(T4, T5, p);
paklaidos[pos] = pakl;
pos++;
System.out.println("Paklaida nr.5: " + pakl);
System.out.println("\nN = 200");
T6 = TrapezeMethod(N6);
System.out.println("Trapeciju metodo atsakymas: " + T6);
pakl = RungesRule(T5, T6, p);
paklaidos[pos] = pakl;
System.out.println("Paklaida nr.5: " + pakl);
System.out.println("\nPaklaidu santykis nr. 1 = " + (paklaidos[0] / paklaidos[1]));
System.out.println("Paklaidu santykis nr. 2 = " + (paklaidos[1] / paklaidos[2]));
System.out.println("Paklaidu santykis nr. 3 = " + (paklaidos[2] / paklaidos[3]));
System.out.println("Paklaidu santykis nr. 4 = " + (paklaidos[3] / paklaidos[4]));
System.out.println("Paklaidu santykis nr. 4 = " + (paklaidos[4] / paklaidos[5]));
System.out.println("\n------------------------------------------------\n\n");
}
else {
System.out.println("Klaida! Gautas blogas parametras!");
System.exit(1);
}
}
public static double GaussMethod(double n, int buffer) {
double ats = 0;
double h = (b - a) / n;
int counter = 0;
double m1 = 0.0;
double m2= 0.0;
if (buffer == 3) { //trecios eiles Gauso metodas
double c1 = 5.0 / 9.0;
double c2 = 8.0 / 9.0;
double c3 = 5.0 / 9.0;
double x1 = 0 - Math.sqrt(0.6);
double x2 = 0;
double x3 = Math.sqrt(0.6);
for (counter = 0; counter < n; counter++) {
m1 = a + (counter * h);
m2 = a + (counter + 1) * h;
ats = ats + ((m2 - m1) / 2) * (c1 * VariableChange(m1, m2, x1) + c2 * VariableChange(m1, m2, x2) + c3 * VariableChange(m1, m2, x3));
}
}
else if (buffer == 2) { //antros eiles Gauso metodas
double x1 = (-1) / Math.sqrt(3);
double x2 = 1 / Math.sqrt(3);
for (counter = 0; counter < n; counter++) {
m1 = a + (counter * h);
m2 = a + (counter + 1) * h;
ats = ats + ((m2 - m1) / 2) * (VariableChange(m1, m2, x1) + VariableChange(m1, m2, x2));
}
}
else {
System.out.println("Klaida! Blogas parametras!");
System.exit(1);
}
return ats;
}
public static void Gauss(int buffer) {
int N1 = 10;
int N2 = 20;
int N3 = 40;
int N4 = 80;
int N5 = 160;
int N6 = 320;
int N = 0;
double pakl = 0.0;
int p = 0;
double T = 0.0;
double T1 = 0.0;
double T2 = 0.0;
double T3 = 0.0;
double T4 = 0.0;
double T5 = 0.0;
double T6 = 0.0;
double[] paklaidos;
int pos = 0;
paklaidos = new double[6];
if (buffer == 21) {
p = 4;
System.out.println("\n\n\n---------------- Gauso 2-os eiles metodas -------------\n");
System.out.print("Iveskite N: ");
N = IntegerRead();
T = GaussMethod(N, 2);
System.out.println("Gauso 2-os eiles metodo atsakymas: " + T);
pakl = RungesRule(GaussMethod((N / 2), 2), GaussMethod((N), 2), p);
System.out.println("Paklaida = " + pakl);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -