📄 fixedpointiteration.java
字号:
import java.math.*;
public class FixedPointIteration {
public double[] FixedPointIteration(double[] a)
{
double[] b=new double[3];
for(int i=0;i<100;i++)
{b[0]=-Math.acos(a[0])/81+Math.pow(a[1], 2)/9+Math.asin(a[2])/3;
b[1]=Math.asin(a[0])/3+Math.acos(a[2])/3;
b[2]=-Math.acos(a[0])/9+a[1]/3+Math.asin(a[2])/6;
a[0]=b[0];
a[1]=b[1];
a[2]=b[2];
System.out.println(a[0]+"\t"+a[1]+"\t"+a[2]+"\n");
}
return a;
}
public double[] newtonMethod(double[] a)
{
double[][] j=new double[3][3];
double[] f=new double[3];
double[] b=new double[3];
for(int i=0;i<10;i++)
{
j[0][0]=1-Math.sin(a[0])/81;
j[0][1]=-2*a[1]/9;
j[0][2]=-Math.cos(a[2])/3;
// System.out.println(j[0][0]+"\t"+j[0][1]+"\t"+j[0][2]+"\n");
j[1][0]=Math.cos(a[0])/3;
j[1][1]=-1;
j[1][2]=-Math.sin(a[2])/3;
//System.out.println(j[1][0]+"\t"+j[1][1]+"\t"+j[1][2]+"\n");
j[2][0]=-Math.sin(a[0])/9;
j[2][1]=-1/3;
j[2][2]=1-Math.cos(a[2])/6;
//System.out.println(j[2][0]+"\t"+j[2][1]+"\t"+j[2][2]+"\n");
f[0]=-(a[0]+Math.cos(a[0])/81-Math.pow(a[1], 2)/9-Math.sin(a[2])/3);
//System.out.println(f[0]);
f[1]=-(Math.sin(a[0])/3-a[1]+Math.cos(a[2])/3);
//System.out.println(f[1]);
f[2]=-(Math.cos(a[0])/9-a[1]/3+a[2]-Math.sin(a[2])/6);
//System.out.println(f[2]);
Gaussian ccc=new Gaussian();
b=ccc.Gaussian(j, f, 3);
for(int k=0;k<3;k++)
{
//System.out.print(b[k]+"\t");
a[k]=a[k]+b[k];
System.out.print(a[k]+"\t");
}
System.out.print("\n");
System.out.println();
}
return a;
}
public static void main(String[] args) {
FixedPointIteration aaa=new FixedPointIteration();
double[] b={0,0,0};
b=aaa.FixedPointIteration(b);
System.out.println("牛顿法:");
b=aaa.newtonMethod(b);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -