Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void button3_Click(object sender, EventArgs e)
- {
- double eps = 1e-10;
- int itmax = 100;
- //double [,]deltax ;
- double[,] x = { { 1 }, { 1 }, { 1 }, { 1 } };
- Matrix<double> X = Matrix<double>.Build.DenseOfArray(x);
- // Matrix<double> delt = Matrix<double>.Build.DenseOfArray(x);
- for (int i = 1; i <= itmax; i++)
- {
- double[,] delta;
- Matrix<double> _df = Matrix<double>.Build.DenseOfArray(_DF(X.ToArray()));
- Matrix<double> f = Matrix<double>.Build.DenseOfArray(F(X.ToArray()));
- delta = Accord.Math.Matrix.Divide(_df.ToArray(), f.ToArray());
- Matrix<double> deltax = Matrix<double>.Build.DenseOfArray(delta);
- deltax =_df.Inverse() * f;
- X = X + deltax;
- double tikslumas = deltax.L2Norm()/(X.L2Norm()+deltax.L2Norm());
- richTextBox1.AppendText(string.Format("\n iteracija{0} tikslumas {1}",i,tikslumas));
- if (tikslumas < eps)
- {
- richTextBox1.AppendText(string.Format("\n sprendinys x = {0}", X.ToString()));
- richTextBox1.AppendText(string.Format("\n funkcijos reiksme f = {0}", f.ToString()));
- return;
- }
- else if (i == itmax)
- {
- richTextBox1.AppendText(string.Format("\n ****tikslumas nepasiektas. Paskutinis artinys x = {0}", X.ToString()));
- richTextBox1.AppendText(string.Format("\n funkcijos reiksme f = {0}", f.ToString()));
- }
- }
- }
- private double[,] F(double[,] X)
- {
- double[,] miau = { { 2*X[0,0] + 4* X[1,0] + 2*X[2,0] + 2 * X[3,0] - 20 },
- { X[1,0]*X[1,0] -X[3,0]*X[3,0] + 32 },
- { -2*X[0,0]*X[0,0] + 5* X[3,0]*X[3,0]*X[3,0] + 2*X[1,0]*X[3,0] - 1032 },
- { 4*X[0,0] - 12* X[1,0] + 4*X[2,0] - 3 * X[3,0] + 42 }
- };
- return miau;
- }
- private double[,] DF(double[] X)
- {
- double[,] miau = { { 2 , 4 , 2 , 2 },
- { 0 ,2*X[1], 0, -2*X[3] },
- { -4*X[0] ,2*X[3], 0, 2*X[1]+3*X[3]},
- { 4,-12, 4 ,-3},
- };
- return miau;
- }
- private double[,] _DF(double[,] X)
- {
- double[,] miau = { { -2 , -4 , -2 , -2 },
- { 0 ,-2*X[1,0], 0, 2*X[3,0] },
- { 4*X[0,0] ,-2*X[3,0], 0, -(2*X[1,0]+3*X[3,0])},
- { -4,12, -4 ,3},
- };
- return miau;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement