?? pmo_work28.java
字號:
import java.io.*;
class PMO_work28 {
public static float fx(float y1,float y2){
float z;
z=(float)Math.pow(y1,2)+3*(float)Math.pow(y2,2)+2*y1*y2-y1+y2;
return z;
public static void main(String[] args) {
float x[]={1,1};
float m=0.01f;
for(int i=0;i<10;i++){
float [] x1=new float [2];
float [] x2=new float [2];
float [] g=new float [2];
float [] g1=new float [2];
float [] g2=new float [2];
g[0]=2*x[0]+2*x[1]-1;
g[1]=6*x[1]+2*x[0]+1;
float h[][]={{1,0},{0,1}};
float [][] h1=new float [2][2];
if((float)Math.sqrt((float)Math.pow(g[0],2)+(float)Math.pow(g[1],2))<m)
break;
float [] s=new float [2];
float [] s1=new float [2];
for(int j=0;j<2;j++){
s[j]=g[j];
}
float n=-((s[0]*(2*x[0]+2*x[1]-1)+s[1]*(6*x[1]+2*x[0]+1))/(s[0]*(2*s[0]+2*s[1])+s[1]*(6*s[1]+2*s[0])));
for(int j=0;j<2;j++){
x1[j]=x[j]+n*s[j];
}
g1[0]=2*x1[0]+2*x1[1]-1;
g1[1]=6*x1[1]+2*x1[0]+1;
if((float)Math.sqrt((float)Math.pow(g1[0],2)+(float)Math.pow(g1[1],2))<m){
for(int j=0;j<2;j++){
x[j]=x1[j];
}
break;
}
float [][] dx=new float [2][1];
float [][] dg=new float [2][1];
float [][] dxt=new float [1][2];
float [][] dgt=new float [1][2];
for(int j=0;j<2;j++){
dx[j][0]=x1[j]-x[j];
dxt[0][j]=dx[j][0];
dg[j][0]=g1[j]-x[j];
dgt[0][j]=dg[j][0];
}
for(int j=0;j<2;j++){
for(int k=0;k<2;k++){
h1[j][k]=h[j][k]+(dx[j][0]*dxt[0][k])/(dxt[0][0]*dg[0][0]+dxt[0][1]*dg[1][0])-(dg[j][0]*dgt[0][k])/((float)Math.pow(dg[0][0],2)+(float)Math.pow(dg[1][0],2));
}
}
for(int j=0;j<2;j++){
s1[j]=-h1[j][0]*g1[0]-h1[j][1]*g1[1];
}
n=-((s1[0]*(2*x1[0]+2*x1[1]-1)+s1[1]*(6*x1[1]+2*x1[0]+1))/(s1[0]*(2*s[0]+2*s1[1])+s1[1]*(6*s1[1]+2*s1[0])));
for(int j=0;j<2;j++){
x2[j]=x1[j]+n*s1[j];
}
g2[0]=2*x2[0]+2*x2[1]-1;
g2[1]=6*x2[1]+2*x2[0]+1;
for(int j=0;j<2;j++){
x[j]=x2[j];
}
if((float)Math.sqrt((float)Math.pow(g2[0],2)+(float)Math.pow(g2[1],2))<m)
break;
}
try{
FileWriter letters=new FileWriter("d:\\PMO_work28.txt");
letters.write("當x=:"+x[0]);
letters.write(","+x[1]);
letters.write("時,");
letters.write("f(x)的極小值為:"+fx(x[0],x[1]));
letters.write(".");
letters.close();
}catch(IOException e){
System.out.println("Error--"+e.toString());
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -