Язык С++ как инструмент моделирования на основе решения дифференциальных уравнений в частных производных - page 8

6
Программная реализация на С++.
Программная реализация алгоритма решения рассматриваемой
задачи (1.1)-(1.4) на основе ее конечно-разностного представления
начального условия, явной схемы для дифференциального уравнения
параболического типа (1.6) с начальным условием (1.4) и двухточечной
аппроксимации граничных условий с первым порядком точности по
координате.
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <fstream>
#include <stdio.h>
#define PI 3.1415926535897932384626433832795
using namespace std;
void main()
{
double Xsize=PI, Tsize=1,
nt=10, nxbase=10,
a=0.1,
dx=Xsize/nxbase, dt=Tsize/nt,
nx=nxbase+1;
int i,j;
double *X= new double[(int)nx];
for(i=0; i<nx; i++){
X[i]=i*dx;
cout<<i<<" "<<X[i]<<endl;
}
//double U=0;
nt=nt+1;
double *T= new double[(int)nt];
for(i=0; i<nt; i++){
T[i]=i*dt;
cout<<i<<" "<<T[i]<<endl;
}
// задаем U начальные:
double** U = new double*[(int)nt];
for ( i = 0; i < nt; i++) {
U[i] = new double[(int)nx];
}
// сначала все нули:
for(i=0; i<nt; i++){
for(j=0; j<nx; j++){
U[i][j]=0;
}
1,2,3,4,5,6,7 9,10,11,12,13,14,15,16,17,18,...52
Powered by FlippingBook