Методы решения жестких и нежестких краевых задач
Анализ формул теории матриц для обыкновенных дифференциальных уравнений. Изучение метода дискретной ортогональной прогонки С.К. Годунова. Суть способа "половины констант" для решения краевых задач. Методика "сопряжения участков интервала интегрирования".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | диссертация |
Язык | русский |
Дата добавления | 17.07.2016 |
Размер файла | 362,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
for(nn=1;nn<=nn_last;nn++){ //A CYCLE BY HARMONICS STARTING FROM THE 1st HARMONIC (EXCEPT ZERO ONE)
double x=0.0;//A coordinate from the left boundary - it is needed in case of heterogeneous system of the ODE for computing the particular vector FF
double expo_from_minus_step[8][8]={0};//The matrix for placement of the exponent in it at the step of (0-x1) type
double expo_from_plus_step[8][8]={0};// The matrix for placement of the exponent in it in the step of (x1-0) type
double mat_row_for_minus_expo[8][8]={0};//the auxiliary matrix for particular vector computing when moving at step of (0-x1) type
double mat_row_for_plus_expo[8][8]={0};// the auxiliary matrix for particular vector computing when moving at step of (x1-0) type
double U[4][8]={0};//The matrix of the boundary conditions of the left boundary of the dimensionality 4x8
double u_[4]={0};//Dimensionality 4 vector of the external influence for the boundary conditions of the left boundary
double V[4][8]={0};//The boundary conditions matrix of the right boundary of the dimensionality 4x8
double v_[4]={0};// The dimensionality 4 vector of the external influence for the boundary conditions for the right boundary
double Y[100+1][8]={0};//The array of the vector-solutions of the corresponding linear algebraic equations system (in each point of the interval between the boundaries): MATRIXS*Y=VECTORS
double A[8][8]={0};//Matrix of the coefficients of the system of ODE
double FF[8]={0};//Vector of the particular solution of the heterogeneous ODE at the integration interval sector
double Y_many[8*11]={0};// a composite vector consisting of the vectors Y(xi) in 11 points from point 0 (left boundary Y(0) to the point 10 (right boundary Y(x10))
double MATRIX_many[8*11][8*11]={0};//The matrix of the system of the linear algebraic equations
double B_many[8*11]={0};// a vector of the right parts of the SLAE: MATRIX_many*Y_many=B_many
double Y_vspom[8]={0};//an auxiliary vector
double Y_rezult[8]={0};//an auxiliary vector
double nn2,nn3,nn4,nn5,nn6,nn7,nn8;//Number of the nn harmonic raised to corresponding powers
nn2=nn*nn; nn3=nn2*nn; nn4=nn2*nn2; nn5=nn4*nn; nn6=nn4*nn2; nn7=nn6*nn; nn8=nn4*nn4;
//Filling-in of non-zero elements of the A matrix of the coefficients of ODE system
A[0][1]=1.0;
A[1][0]=(1-nju)/2*nn2; A[1][3]=-(1+nju)/2*nn; A[1][5]=-nju;
A[2][3]=1.0;
A[3][1]=(1+nju)/(1-nju)*nn; A[3][2]=2*nn2/(1-nju); A[3][4]=2*nn/(1-nju);
A[4][5]=1.0;
A[5][6]=1.0;
A[6][7]=1.0;
A[7][1]=-nju/c2; A[7][2]=-nn/c2; A[7][4]=-(nn4+1/c2); A[7][6]=2*nn2;
//Here firstly it is necessary to make filling-in by non-zero values of the matrix and boundary conditions vector U*Y[0]=u_ (on the left) and V*Y[100]=v_ (on the right):
U[0][1]=1.0; U[0][2]=nn*nju; U[0][4]=nju; u_[0]=0.0;//Force T1 at the left boundary is equal to zero
U[1][0]=-(1-nju)/2*nn; U[1][3]=(1-nju)/2; U[1][5]=(1-nju)*nn*c2; u_[1]=0.0;//Force S* at the left boundary is equal to zero
U[2][4]=-nju*nn2; U[2][6]=1.0; u_[2]=0;//Momentum M1 at the left boundary is equal to zero
U[3][5]=(2-nju)*nn2; U[3][7]=-1.0;
u_[3]=-sin(nn*gamma)/(nn*gamma);//Force Q1* at the left boundary is distributed at the angle -gamma +gamma
V[0][0]=1.0; v_[0]=0.0;// The right boundary displacement u is equal to zero
V[1][2]=1.0; v_[1]=0.0;//The right boundary displacement v is equal to zero
V[2][4]=1.0; v_[2]=0.0;//The right boundary displacement w is equal to zero
V[3][5]=1.0; v_[3]=0.0;//The right boundary rotation angle is equal to zero
//Here initial filling-in of U*Y[0]=u_ и V*Y[100]=v_ terminates
exponent(A,(-step*10),expo_from_minus_step);//A negative step (step value is less than zero due to direction of matrix exponent computation)
//x=0.0;//the initial value of coordinate - for partial vector computation
//mat_row_for_partial_vector(A, step, mat_row_for_minus_expo);
//Filling-in of the SLAE coefficients matrix MATRIX_many
for(int i=0;i<4;i++){
for(int j=0;j<8;j++){
MATRIX_many[i][j]=U[i][j];
MATRIX_many[8*11-4+i][8*11-8+j]=V[i][j];
}
B_many[i]=u_[i];
B_many[8*11-4+i]=v_[i];
}
for(int kk=0;kk<(11-1);kk++){//(11-1) unit matrix and EXPO matrix should be written into MATRIX_many
for(int i=0;i<8;i++){
MATRIX_many[i+4+kk*8][i+kk*8]=1.0;//filling-in by unit matrixes
for(int j=0;j<8;j++){
MATRIX_many[i+4+kk*8][j+8+kk*8]=-expo_from_minus_step[i][j];//filling-in by matrix exponents
}
}
}
//Solution of the system of linear algebraic equations
GAUSS(MATRIX_many,B_many,Y_many);
//Computation of the state vectors in 101 points - left point 0 and right point 100 exponent(A,step,expo_from_plus_step);
for(int i=0;i<11;i++){//passing points filling-in in all 10 intervals (we will obtain points from 0 to 100) between 11 nodes
for(int j=0;j<8;j++){
Y[0+i*10][j]=Y_many[j+i*8];//in 11 nodes the vectors are taken from SLAE solutions - from Y many
}
}
for(int i=0;i<10;i++){//passing points filling-in in 10 intervals
for(int j=0;j<8;j++){
Y_vspom[j]=Y[0+i*10][j];//the initial vector for ith segment, zero point, starting point of the ith segment
}
mat_on_vect(expo_from_plus_step, Y_vspom, Y_rezult);
for(int j=0;j<8;j++){
Y[0+i*10+1][j]=Y_rezult[j];//the first point of the interval filling-in
Y_vspom[j]=Y_rezult[j];//for the next step
}
mat_on_vect(expo_from_plus_step, Y_vspom, Y_rezult);
for(int j=0;j<8;j++){
Y[0+i*10+2][j]=Y_rezult[j];//filling-in of the 2nd point of the interval
Y_vspom[j]=Y_rezult[j];//for the next step
}
mat_on_vect(expo_from_plus_step, Y_vspom, Y_rezult);
for(int j=0;j<8;j++){
Y[0+i*10+3][j]=Y_rezult[j];//filling-in of the 3rd point of the interval
Y_vspom[j]=Y_rezult[j];//for the next step
}
mat_on_vect(expo_from_plus_step, Y_vspom, Y_rezult);
for(int j=0;j<8;j++){
Y[0+i*10+4][j]=Y_rezult[j];//filing-in of the 4th point of the interval
Y_vspom[j]=Y_rezult[j];//for the next step
}
mat_on_vect(expo_from_plus_step, Y_vspom, Y_rezult);
for(int j=0;j<8;j++){
Y[0+i*10+5][j]=Y_rezult[j];// filing-in of the 5th point of the interval
Y_vspom[j]=Y_rezult[j];// for the next step
}
mat_on_vect(expo_from_plus_step, Y_vspom, Y_rezult);
for(int j=0;j<8;j++){
Y[0+i*10+6][j]=Y_rezult[j];// filing-in of the 6th point of the interval
Y_vspom[j]=Y_rezult[j];// for the next step
}
mat_on_vect(expo_from_plus_step, Y_vspom, Y_rezult);
for(int j=0;j<8;j++){
Y[0+i*10+7][j]=Y_rezult[j];// filing-in of the 7th point of the interval
Y_vspom[j]=Y_rezult[j];// for the next step
}
mat_on_vect(expo_from_plus_step, Y_vspom, Y_rezult);
for(int j=0;j<8;j++){
Y[0+i*10+8][j]=Y_rezult[j];// filing-in of the 8th point of the interval
Y_vspom[j]=Y_rezult[j];// for the next step
}
mat_on_vect(expo_from_plus_step, Y_vspom, Y_rezult);
for(int j=0;j<8;j++){
Y[0+i*10+9][j]=Y_rezult[j];// filing-in of the 9th point of the interval
Y_vspom[j]=Y_rezult[j];// for the next step
}
}
//Computation of the momentum in all points between the boundaries
for(int ii=0;ii<=100;ii++){
Moment[ii]+=Y[ii][4]*(-nju*nn2)+Y[ii][6]*1.0;//Momentum M1 in the point [ii]
//U[2][4]=-nju*nn2; U[2][6]=1.0; u_[2]=0;//Momentum M1
}
}//CYCLE BY HARMONICS TERMINATES HERE
for(int ii=0;ii<=100;ii++){
fprintf(fp,"%f\n",Moment[ii]);
}
fclose(fp);
printf( "PRESS any key to continue...\n" );
_getch();
return 0;
}
My web-site related to stiff boundary value problems solution methods:
Размещено на Allbest.ru
...Подобные документы
Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов.
курсовая работа [532,9 K], добавлен 14.01.2014Исследование конечно-разностных методов решения краевых задач путем моделирования в среде пакета Micro-Cap V. Оценка эффективности и сравнительной точности этапов получения решений методом математического, аналогового моделирования и численными расчетами.
курсовая работа [324,3 K], добавлен 23.06.2009Разработка программы для решения системы обыкновенных дифференциальных уравнений на базе языка программирования Паскаль АВС. Чтение исходных данных из внешнего файла. Вывод исходных данных и результатов на дисплей и во внешний файл. Суть метода Ейлера.
реферат [126,1 K], добавлен 12.01.2012Основные подходы к математическому моделированию решений дифференциальных краевых задач. Метод конечных разностей и элементов. Графическая схема алгоритма метода прогонки, программное обеспечение. Оператор конвективного переноса и одномерность задачи.
курсовая работа [999,6 K], добавлен 22.12.2015Численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов. Методы аппроксимации дискретных функций и методы решения задач линейного программирования.
методичка [185,7 K], добавлен 18.12.2014Решение систем алгебраических линейных уравнений методом Крамера. Сущность метода прогонки. Программная реализация метода: блок-схема алгоритма, листинг программы. Проверка применимости данного способа решения для конкретной системы линейных уравнений.
курсовая работа [581,0 K], добавлен 15.06.2013Численные методы решения задач. Решение алгебраических и трансцендентных уравнений. Уточнение корня по методу половинного деления. Решение систем линейных уравнений методом итераций. Методы решения дифференциальных уравнений. Решение транспортной задачи.
курсовая работа [149,7 K], добавлен 16.11.2008Математическая постановка задачи. Алгоритм решения системы обыкновенных дифференциальных уравнений методом Эйлера. Параметры программы, ее логическая структура и функциональное назначение. Анализ входных и выходных данных. Описание тестовых задач.
курсовая работа [38,0 K], добавлен 26.04.2011Нахождение собственных чисел и собственных векторов в связи с широкой областью использования краевых, начально-краевых и спектральных задач в науке и технике. Методы вычисления спектральных характеристик Леверье–Фаддеева, А.Н. Крылова и А.М. Данилевского.
курсовая работа [2,1 M], добавлен 22.09.2014Численные методы решения задач, сводящиеся к арифметическим и некоторым логическим действиям над числами, к действиям, которые выполняет ЭВМ. Решение нелинейных, системы линейных алгебраических, обыкновенных дифференциальных уравнений численными методами.
дипломная работа [1,4 M], добавлен 18.08.2009Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений Maple. Произвольные константы решения дифференциального уравнения второго порядка, представленном рядом Тейлора. Значения опции method при численном решении.
лабораторная работа [47,2 K], добавлен 15.07.2009Изучение численных методов решения нелинейных уравнений. Построение годографа АФЧХ, графиков АЧХ и ФЧХ с указанием частот. Практическое изучение численных методов интегрирования дифференциальных уравнений высокого порядка, метод Рунге-Кутта 5-го порядка.
курсовая работа [398,3 K], добавлен 16.06.2009Основные этапы математического моделирования. Метод Эйлера как наиболее простой численный метод решения обыкновенных дифференциальных уравнений. Написание компьютерной программы, которая позволит изучать графики системы дифференциальных уравнений.
курсовая работа [1,9 M], добавлен 05.01.2013Сетка, аппроксимация частных производных разностными отношениями. Операторная форма записи дифференциальных краевых задач. Нормы, погрешность приближённого решения. Сходимость и её порядок. Cмешанная краевая задача с граничными условиями третьего рода.
контрольная работа [501,6 K], добавлен 08.10.2011Решение системы обыкновенных дифференциальных уравнений в программе Matlab. Применение метода Рунге–Кутты. Априорный выбор шага интегрирования. Построение трехмерного графика движения точки в декартовой системе координат и создание видеофайла формата AVI.
контрольная работа [602,8 K], добавлен 04.05.2015Разработка быстрого и эффективного алгоритма для решения задачи оценки параметров обыкновенных дифференциальных уравнений с запаздывающими аргументами, не разрешаемых аналитически. Реализация алгоритма в виде библиотеки на языке программирования MATLAB.
дипломная работа [1,6 M], добавлен 19.06.2012Характеристика параметрических методов решения задач линейного программирования: методы внутренней и внешней точки, комбинированные методы. Алгоритм метода барьерных поверхностей и штрафных функций, применяемых для решения задач большой размерности.
контрольная работа [59,8 K], добавлен 30.10.2014Математическое описание численных методов решения уравнения, построение графика функции. Cтруктурная схема алгоритма с использованием метода дихотомии. Использование численных методов решения дифференциальных уравнений, составление листинга программы.
курсовая работа [984,2 K], добавлен 19.12.2009Анализ метода линейного программирования для решения оптимизационных управленческих задач. Графический метод решения задачи линейного программирования. Проверка оптимального решения в среде MS Excel с использованием программной надстройки "Поиск решения".
курсовая работа [2,2 M], добавлен 29.05.2015Решение нелинейных краевых задач. Входные данные и содержание алгоритма Бройдена. Содержание алгоритма Бройдена. Метод исключения Гаусса для решения СЛАУ. Вывод формулы пересчета Бройдена. Разработка программы, исследование результата и примеры ее работы.
курсовая работа [912,3 K], добавлен 01.04.2010