📄 integral.java
字号:
/*@author 邱宇峰 ,software project031,
*2004,11,8
*/
import java.awt.*;
import java.awt.event.*;
public class integral extends Frame implements ActionListener{
static integral frm=new integral();
static Button b1;
static Panel pl;
static Label l;
static TextField tf;
public static void main(String[] args){
pl=new Panel();
pl.setLayout(new FlowLayout());
frm.setTitle("拉格朗日逼近法");
b1=new Button("start");
l=new Label("Current acreage is");
tf=new TextField(20);
pl.add(b1);
pl.add(l);
pl.add(tf);
frm.add(pl,"South");
frm.setSize(800,500);
frm.setLocation(200,200);
frm.setVisible(true);
b1.addActionListener(frm);
frm.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}
});
}
public void paint(Graphics g){
double X,Y;
int x=0;
g.drawLine(80,300,750,300);
g.drawLine(90,150,90,300);
g.drawString("0",90,310);
g.drawString("6",690,310);
for(X=0;X<6;X+=0.01){
Y=Math.sin(X);
Y=100*(Y/X);
g.drawString(".",90+x,300-(int)Y);
x++;
}
}
public void actionPerformed(ActionEvent ae){
Graphics g=getGraphics();
g.drawString("Processing...",50,100);
int n=1;
double a=0.0,b=6.00,e=0.0001,T0,T1,h;
h=b-a;
T0=(h/2)*(1+(Math.sin(b)/b));
T1=T0/2+(h/2)*Math.abs(Math.sin(a+(h/2))/(a+(h/2)));
while(Math.abs(T1-T0)>e){
h=h/2;
n=2*n;
T0=T1;
T1=0;
for(int k=1;k<=n;k++){
T1=T1+Math.abs(Math.sin(a+(k-0.5)*h)/(a+(k-0.5)*h));
for(int i=0;i<500000;i++);
draw dr=new draw(a+(k-0.5)*h);
dr.paint(g);
}
T1=T0/2+h*T1/2;
tf.setText(""+T1);
}
g.drawString("End",150,100);
}
}
class draw{
int index;
double a;
public draw(double a){
this.a=a;
}
public draw(int index){
this.index=index;
}
public void paint(Graphics g){
g.setColor(Color.red);
g.drawLine(90+(int)(a*100),300,90+(int)(a*100),300-(int)(100*Math.sin(a)/a));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -