Вы находитесь на странице: 1из 3

package com.

com„pany;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {


public static void main(String[] args) throws IOException{

BufferedReader reader = new BufferedReader(new


InputStreamReader(System.in));
System.out.println("Introduceti numarul de bunuri -->");
int q = Integer.parseInt(reader.readLine());
double[] p = new double[q];

System.out.println("Introduceti valoarea erorii de verificare(Epsilon).");


double epsilon = Double.parseDouble(reader.readLine());

System.out.println("Introduceti numarul de iteratii(N).");


int N = Integer.parseInt(reader.readLine());

System.out.println("Introduceti sistemul de preturi:");


for (int i = 0; i<p.length; i++){
p[i] = Double.parseDouble(reader.readLine());
}

double p1;
double p2;
double p3;

System.out.println(" \n Transformarea I.");

double[] q2 = new double[q];


double error ;
int o = 1;
int n = 1;

do{
p1 = (2 * p[1] - p[2])/(p[0]-2*p[1]+p[2]);
System.out.println("p1="+p1);
p2 = (3*p[2] - 2 * p[0])/(p[0]-2*p[1]+p[2]);
System.out.println("p2="+p2);
p3 = (p[0] - 3 * p[1])/(p[0]-2*p[1]+p[2]);
System.out.println("p3="+p3);
System.out.println();
if (!(p1<0 && p2<0 && p3<0)) {
n++;

double M1 = Math.max(-p[0], p1);


System.out.println("M1= "+M1);
double M2 = Math.max(-p[1], p2);
System.out.println("M2= "+ M2);
double M3 = Math.max(-p[2], p3);
System.out.println("M3= "+M3);

q2[0] = (p[0] + M1) / (p[0] + p[1] + p[2] + M1 + M2 + M3);


q2[1] = (p[1] + M2) / (p[0] + p[1] + p[2] + M1 + M2 + M3);
q2[2] = (p[2] + M3) / (p[0] + p[1] + p[2] + M1 + M2 + M3);

System.out.println("\nNoul sistem de preturi obtinut este:");


for (int i = 0; i < q2.length; i++) {
System.out.println((i+1) + ". " + q2[i]);
}
}
~1~
error = Math.sqrt(Math.pow((p[0]-q2[0]),2)+Math.pow((p[1]-
q2[1]),2)+Math.pow((p[2]-q2[2]),2));
System.out.println("\nEroarea este: "+error);
double suma = 0;
for (int i = 0 ; i<p.length; i++){
p[i]=q2[i];
suma=suma+q2[i];
}

System.out.println("Suma= "+suma);
System.out.println();
System.out.println();
System.out.println();
o++;
} while (o<=N && error>=epsilon);

if (error<=epsilon) {
System.out.println("Procesul s-a oprit deoarece erarea a fost satisfacuta.");
}
else if (p1<0 && p2<0 && p3<0)
System.out.println("Procesul s-a oprit deoarece s-a gasit preturile de
echilibru");

else {
System.out.println("Procesul s-a oprit doarece s-a satisfacut numarul
maxim de iteratii specificate. ");
}

System.out.println("p*=( "+p[0]+" ; "+p[1]+" ; "+p[2]+" )");


}
}

~2~

Вам также может понравиться