⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d9r8b.txt

📁 解具有导数的多元函数的无约束极小值点或具有导数的非线性方程组的近似解
💻 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 + -