|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Класс ClassSIMQ
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace Потенциальный_поток { class ClassSIMQ { double[] A, B;
public void SIMQ(double[,] K, ref double[] P, int N, ref int KS) {
A = new double[N * N + 1]; B = new double[N + 1]; int sd = 0; for (int i = 0; i < N; i++) { B[i + 1] = P[i]; for (int j = 0; j < N; j++) { sd++; A[sd] = K[j, i]; } } int JY, IT, J, IJ, IMAX = 0, I, I1, k, I2, IQS, IX, JX, IXJX, JJX, IXJ, NY, IB, IA, IC; double TOL = 0, BIGA = 0, SAVE; KS = 0; int JJ = -N; for (J = 1; J <= N; J++) { JY = J + 1; JJ = JJ + N + 1; BIGA = 0.0; IT = JJ - J; for (I = J; I <= N; I++) { IJ = IT + I; if (Math.Abs(BIGA) - Math.Abs(A[IJ]) < 0) { BIGA = A[IJ]; IMAX = I; } }//30 if (Math.Abs(BIGA) - TOL <= 0) { KS = 1; return; } I1 = J + N * (J - 2); IT = IMAX - J; for (k = J; k <= N; k++) { I1 = I1 + N; I2 = I1 + IT; SAVE = A[I1]; A[I1] = A[I2]; A[I2] = SAVE; A[I1] = A[I1] / BIGA; }//50 SAVE = B[IMAX]; B[IMAX] = B[J]; B[J] = SAVE / BIGA; if ((J - N) == 0) { break; } IQS = N * (J - 1); for (IX = JY; IX <= N; IX++) { IXJ = IQS + IX; IT = J - IX; for (JX = JY; JX <= N; JX++) { IXJX = N * (JX - 1) + IX; JJX = IXJX + IT; A[IXJX] = A[IXJX] - A[IXJ] * A[JJX]; } B[IX] = B[IX] - B[J] * A[IXJ]; } }//65 NY = N - 1; IT = N * N; for (J = 1; J <= NY; J++) { IA = IT - J; IB = N - J; IC = N; for (k = 1; k <= J; k++) { B[IB] = B[IB] - A[IA] * B[IC]; IA = IA - N; IC = IC - 1; } }//80
for (int i = 0; i < N; i++) { P[i] = B[i + 1]; }
}
} }
Экранные формы: Форма 1.
Форма 2.
ПРИЛОЖЕНИЕ 4 Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |