package lt.ktu.gmj.analysis; import javax.swing.*; import java.awt.*; import java.util.Vector; import lt.ktu.gmj.*; import lt.ktu.gmj.tasks.WalrasModel; import java.awt.event.*; import lt.monarch.charts.*; public class WalrasProfit extends ResultFrame implements ChartPointProvider { public int GetDomN(int projection) { if (projection==0) return 1; if (projection==1) return 4; if (projection==2) return 2; if (projection==3) return 5; System.out.println("ERROR: GetDomN"); return 0; } public double GetXMin(int projection) { if (projection==0) return getWalrasModel().domain().min[2]; if (projection==1) return getWalrasModel().domain().min[3]; if (projection==2) return getWalrasModel().domain().min[0]; if (projection==3) return getWalrasModel().domain().min[1]; return 0; } public double GetXMax(int projection) { if (projection==0) return getWalrasModel().domain().max[2]; if (projection==1) return getWalrasModel().domain().max[3]; if (projection==2) return getWalrasModel().domain().max[0]; if (projection==3) return getWalrasModel().domain().max[1]; return 0; } public double GetXStep(int projection) { if (projection==0) return (getWalrasModel().domain().max[2] - getWalrasModel().domain().min[2]) / (100 / getWalrasModel().Precision); if (projection==1) return (getWalrasModel().domain().max[3] - getWalrasModel().domain().min[3]) / (100 / getWalrasModel().Precision); if (projection==2) return (getWalrasModel().domain().max[0] - getWalrasModel().domain().min[0]) / (100 / getWalrasModel().Precision); if (projection==3) return (getWalrasModel().domain().max[1] - getWalrasModel().domain().min[1]) / (100 / getWalrasModel().Precision); return 0; } public double GetYMin() { if (profy.length<1) return 0; int i; double min=999999; for (i=0;imax) max=profy[i]; return max; } // smooth using Wiener filter public void WienerFilter() { double b[] = new double[n]; double c[] = new double[n]; double r; double s; s=(new Double(st.getText())).doubleValue(); double bb=1; // (0.3) b[0]=1; // (0.3) for (int i=1; i=0;i--) { r=Math.abs(x_in[i]-x_in[i+1]); cc=cc+c[i+1]; // (0.7) if (s==0) System.out.println("division by 0. (2)"); c[i]=(s*c[i+1]+r*cc)/s; } double sby, sb, scy, sc, tmp; for (int i=0;i0) t1=y_in[i-1]; if (i+1