Основы компьютерного моделирования физических и технических систем. Математическую модель указанной физической системы, страница 4

}

for (int i = ln - 1; i >= 0; i--)

{

hh = vZ[i];// hh присваиваем ответ из массива сил

for (int j = i; j < ln; j++)

hh = hh - vX[j] * mU[i, j]; //вычетание элементов строки матрицы

vX[i] = hh / mU[i, i];//hh  делим на коэффициент при иксу

}

long finish = DateTime.Now.Ticks;//finishTime.Second;

MessageBox.Show("время = " + ((double)(finish - start) / 10000000 + "\n" + "Расчёт завершён \n").ToString());

/*вывод ответов*/

Fil = new StreamWriter("resultat.xml");

Fil.WriteLine(heder);

Fil.WriteLine("<Table ss:ExpandedColumnCount=\"{0}\" ss:ExpandedRowCount=\"{1}\" x:FullColumns=\"1\"   \nx:FullRows=\"1\" ss:DefaultRowHeight=\"15\">", nx + 1, nt + 1);

for (int i = 0; i < nt + 1; i++)

{

Fil.WriteLine("<Row ss:AutoFitHeight=\"0\">\n");

for (int j = 0; j < nx + 1; j++)

{

Fil.Write("<Cell><Data ss:Type=\"Number\">");

string ss = string.Format("{0,9:f14}", vX[i * (nx + 1) + j]);

ss = ss.Replace(',', '.');

Fil.Write(ss);

Fil.WriteLine("</Data></Cell>");

}

Fil.WriteLine("</Row>\n");

}

Fil.WriteLine(footor);

Fil.Close();

}

private void radioButton2_CheckedChanged(object sender, EventArgs e)

{

label1.Enabled = false;

label2.Enabled = false;

label3.Enabled = false;

label12.Enabled = true;

TB_A.Enabled = true;

TB_C.Enabled = false;

TB_lam.Enabled = false;

TB_RO.Enabled = false;

}

private void radioButton1_CheckedChanged(object sender, EventArgs e)

{

label1.Enabled = true;

label2.Enabled = true;

label3.Enabled = true;

label12.Enabled = false;

TB_A.Enabled = false;

TB_C.Enabled = true;

TB_lam.Enabled = true;

TB_RO.Enabled = true;

}

private void Form1_Load(object sender, EventArgs e)

{

}

Form2 f2;

Graphics gr;

private void button1_Click(object sender, EventArgs e)

{

double[] kk = new double[nx+1];

}

public void DrawGraph(double len, double[] yy,int sm)

{

double frid = len;

double stepX = (f2.panel1.Width-1)/frid;

double step = frid/yy.Length;

double min = yy[0];

double max = yy[0];

int i=0;

while (i < yy.Length)

{

if (yy[i] < min)

min = yy[i];

if (yy[i] > max)

max = yy[i];

i++;

}

double hg;

if (max - min >= 0.01)

hg = (f2.panel1.Height) / (max - min);

else

hg = 1;

f2.maxt.Text = max.ToString();

f2.mint.Text = min.ToString();

f2.minx.Text = "0";

f2.maxx.Text = len.ToString();

Pen p = new Pen(Brushes.DarkRed);

int x=0, y=0;

double xx = 0;

Point[] poi = new Point[yy.Length];          

for (int j = 0; j < yy.Length;j++ )

{

x = Convert.ToInt32(Math.Ceiling(xx * stepX+sm));

y = Convert.ToInt32(Math.Ceiling(f2.panel1.Height-sm-(yy[j]-min) * hg));                poi[j] = new Point(x, y);

xx += len / (yy.Length-1);

}

gr.DrawLines(p, poi);

}

private void radioButton4_CheckedChanged(object sender, EventArgs e)

{

label13.Enabled = true;

label14.Enabled = true;

label15.Enabled = true;

label11.Enabled = false;

TB_A2.Enabled = false;

TB_C2.Enabled = true;

TB_lam2.Enabled = true;

TB_RO2.Enabled = true;

}

private void radioButton3_CheckedChanged(object sender, EventArgs e)

{

label13.Enabled = false;

label14.Enabled = false;

label15.Enabled = false;

label11.Enabled = true;

TB_A2.Enabled = true;

TB_C2.Enabled = false;

TB_lam2.Enabled = false;

TB_RO2.Enabled = false;

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

tb_h.Enabled = !tb_h.Enabled;

if (tb_h.Enabled)

{

label7.Text = "T окружающей среды, K";

label8.Text = "Тепловой поток, Дж";

}

else

{

label7.Text = "Температура стержня\n на левой границе:";

label8.Text = "Температура стержня на \nправой границе:";

}

}

private void button2_Click(object sender, EventArgs e)

{

button1.Enabled = true;