Краевые задачи. Методы решения А.Ю.Виноградова. Включая жесткие краевые задачи
Рефераты >> Математика >> Краевые задачи. Методы решения А.Ю.Виноградова. Включая жесткие краевые задачи

mat_row_for_partial_vector(A, (-step), mat_row_for_plus_expo);

mat_4x8_on_mat_8x8(VjORTO,expo_from_plus_step,Vj);//Вычисление матрицы Vj=VjORTO*expo_from_plus_step

//partial_vector(FF);//Вычисление НУЛЕВОГО вектора частного решения системы ОДУ на шаге

partial_vector_real(expo_from_plus_step, mat_row_for_plus_expo, angle, step,FF);// - для движения справа на лево

mat_4x8_on_vect_8(VjORTO,FF,vj_2);//Вычисление вектора vj_2=VjORTO*FF

minus(vj_ORTO, vj_2, vj_);//Вычисление вектора vj_=vj_ORTO-vj_2

orto_norm_4x8(Vj, vj_, VjORTO, vj_ORTO);//Ортонормирование для текущего шага по ii

for(int i=0;i<4;i++){

for(int j=0;j<8;j++){

MATRIXS[ii][i+4][j]=VjORTO[i][j];

}

VECTORS[ii][i+4]=vj_ORTO[i];

}

}//Цикл по шагам ii (НИЖНЕЕ заполнение)

//Решение систем линейных алгебраических уравнений

for(int ii=0;ii<=100;ii++){

for(int i=0;i<8;i++){

for(int j=0;j<8;j++){

MATRIX_2[i][j]=MATRIXS[ii][i][j];//Вспомогательное присвоение для соответствия типов в вызывающей функции GAUSS

}

VECTOR_2[i]=VECTORS[ii][i];//Вспомогательное присвоение для соответствия типов в вызывающей функции GAUSS

}

GAUSS(MATRIX_2,VECTOR_2,Y_2);

for(int i=0;i<8;i++){

Y[ii][i]=Y_2[i];

}

}

//Вычисление момента во всех точках между краями

angle=start_angle;//начальное значение угловой координаты

for(int ii=0;ii<=100;ii++){

Moment[ii]+=Y[ii][4]*(-nju*nn2/sin(angle)/sin(angle))+Y[ii][5]*(nju/tan(angle))+Y[ii][6]*(1.0);//Момент M1 в точке [ii]

angle+=step;

//U[2][4]=-nju*nn2/sin(start_angle)/sin(start_angle);

//U[2][5]=nju/tan(start_angle);

//U[2][6]=1.0; Момент

}

}//ЦИКЛ ПО ГАРМОНИКАМ ЗДЕСЬ ЗАКАНЧИВАЕТСЯ

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;

}

5. Второй вариант метода «переноса краевых условий» в произвольную точку интервала интегрирования.

Этот вариант метода еще не обсчитан на компьютерах.

Предложено выполнять интегрирование по формулам теории матриц [Гантмахер] сразу от некоторой внутренней точки интервала интегрирования к краям:

Y(0) = K(0←x) ∙ Y(x) + Y*(0←x) ,

Y(1) = K(1←x) ∙ Y(x) + Y*(1←x) .

Подставим эти формулы в краевые условия и получим:

U∙Y(0) = u,

U∙[ K(0←x) ∙ Y(x) + Y*(0←x) ] = u,

[ U∙ K(0←x) ] ∙ Y(x) = u -U∙Y*(0←x) .

и

V∙Y(1) = v,

V∙[ K(1←x) ∙ Y(x) + Y*(1←x) ] = v,

[ V∙ K(1←x) ] ∙ Y(x) = v -V∙Y*(1←x) .

То есть получаем два матричных уравнения краевых условий, перенесенные в рассматриваемую точку x:

[ U∙ K(0←x) ] ∙ Y(x) = u -U∙Y*(0←x) ,

[ V∙ K(1←x) ] ∙ Y(x) = v -V∙Y*(1←x) .

Эти уравнения аналогично объединяются в одну систему линейных алгебраических уравнений с квадратной матрицей коэффициентов для нахождения решения Y(x) в любой рассматриваемой точке x:

Y(x) = .

В случае «жестких» дифференциальных уравнений предлагается следующий алгоритм.

Используем свойство перемножаемости матриц Коши:

K(x←x) = K(x←x) ∙ K(x←x) ∙ … ∙ K(x←x) ∙ K(x←x)

и запишем выражения для матриц Коши, например, в виде:

K(0←x) = K(0←x) ∙ K(x←x) ∙ K(x←x),

K(1←x) = K(1←x) ∙ K(x←x) ∙ K(x←x) ∙ K(x←x),

Тогда перенесенные краевые условия можно записать в виде:

[ U∙ K(0←x) ∙ K(x←x) ∙ K(x←x) ] ∙ Y(x) = u -U∙Y*(0←x) ,

[ V∙ K(1←x) ∙ K(x←x) ∙ K(x←x) ∙ K(x←x) ] ∙ Y(x) = v -V∙Y*(1←x)

или в виде:

[ U∙ K(0←x) ∙ K(x←x) ∙ K(x←x) ] ∙ Y(x) = u* ,


Страница: