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

15
1.2.1. Численное решение задачи параболического типа с заданными
начальными и граничными условиями
Программная реализация на С++.
Программная реализация алгоритма решения рассматриваемой
задачи (1.1)-(1.4) на основе ее конечно-разностного представления
начального условия, неявной схемы для дифференциального уравнения
параболического типа (1.9) с начальным условием (1.4) и двухточечной
аппроксимации граничных условий с первым порядком точности по
координате.
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <fstream>
#include <stdio.h>
#include <string>
#define PI 3.1415926535897932384626433832795
using namespace std;
void tdma_h(double*,double*,double*,double*,double*,int);
void main()
{
double Xsize=PI, Tsize=1,
nt=10, nxbase=10,
//A=0, B=0, C=0, F=0,
a=0.1,
dx=Xsize/nxbase, dt=Tsize/nt,
nx=nxbase+1;
int i,j;
double *A= new double[(int)nx];
double *B= new double[(int)nx];
double *C= new double[(int)nx];
double *F= new double[(int)nx];
for(i=0; i<nx; i++){
A[i]=0; B[i]=0; C[i]=0; F[i]=0;
}
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++){
1...,7,8,9,10,11,12,13,14,15,16 18,19,20,21,22,23,24,25,26,27,...52
Powered by FlippingBook