📄 d9r8b.txt
字号:
import java.text.*;
public class d9r8b
{
public static void main (String[] args)
{
//program d9r8b
//driver for routine mrqcof
int i, j, mfit, npt = 100;
int ma = 6;
double chisq, spread = 0.1;
double x[] = new double[101];
double y[] = new double[101];
double sig[] = new double[101];
double a[] = new double[7];
int lista[] = new int[7];
double alpha[] = new double[37];
double gues[] = new double[7];
double beta[] = new double[7];
a[1] = 5.0; a[2] = 2.0; a[3] = 3.0; a[4] = 2.0; a[5] = 5.0; a[6] = 3.0;
gues[1] = 4.9; gues[2] = 2.1; gues[3] = 2.9;
gues[4] = 2.1; gues[5] = 4.9; gues[6] = 3.1;
int idum = -911;
chisq=0.0;
d9r8bF g = new d9r8bF();
DecimalFormat form = new DecimalFormat("0.0000");
//first try a sum of two gaussians
for (i = 1; i <= 100; i++)
{
x[i] = 0.1 * i;
y[i] = 0.0;
for (j = 1; j <= 4; j = j + 3)
{
y[i] = y[i] + a[j] * Math.exp(-Math.pow(((x[i] - a[j + 1]) / a[j + 2]), 2));
}
y[i] = y[i] * (1.0 + spread * g.gasdev(idum));
idum = g.gasdev_idum;
sig[i] = spread * y[i];
}
mfit = ma;
for (i = 1; i <= mfit; i++)
{
lista[i] = i;
}
for (i = 1; i <= ma; i++)
{
a[i] = gues[i];
}
g.mrqcof(x, y, sig, npt, a, ma, lista, mfit, alpha, beta, ma, chisq);
chisq = g.mrqcof_chisq;
System.out.println();
System.out.println("matrix alpha");
System.out.println();
for (i = 1; i <= ma; i++)
{
for (j = 1; j <= ma; j++)
{
System.out.print(form.format(alpha[(i - 1) * ma + j]) + " ");
}
System.out.println();
}
System.out.println();
System.out.println("Vector beta");
System.out.println();
for (i = 1; i <= ma; i++)
{
System.out.print(form.format(beta[i]) + " ");
}
System.out.println();
System.out.println("Chi-squared: "+form.format(chisq));
System.out.println();
//next fix one line and improve the other
for (i = 1; i <= 3; i++)
{
lista[i] = i + 3;
}
mfit = 3;
for (i = 1; i <= ma; i++)
{
a[i] = gues[i];
}
g.mrqcof(x, y, sig, npt, a, ma, lista, mfit, alpha, beta, ma, chisq);
chisq = g.mrqcof_chisq;
System.out.println("Matrix alpha");
System.out.println();
for (i = 1; i <= mfit; i++)
{
for (j = 1; j <= mfit; j++)
{
System.out.print(form.format(alpha[(i - 1) * ma + j]) + " ");
}
System.out.println();
}
System.out.println();
System.out.println("Vector beta");
System.out.println();
for (i = 1; i <= mfit; i++)
{
System.out.print(form.format(beta[i]) + " ");
}
System.out.println();
System.out.println("Chi-squared: " + form.format(chisq));
System.out.println();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -