Programación de simulación de campo de temperatura C++ (recompensa 200, esperando en línea)
El siguiente algoritmo no debería tener problemas. Simplemente está escrito específicamente para su problema. L + 1 es el número de nodos Uso El número de nodos en las direcciones xey es el mismo que la división, pero no se juzga la precisión. Lo más importante es que publiqué el programa tan pronto como vi su. pregunta La condición de contorno utilizada aquí es la mejor w en el área cuadrada Valor teórico
#include <stdio.h>
#include #define PI 3.1415926 # define L 10 // L+1 es el número de nodos #define Hx (1.0/L) #define Hy (0,5/L) int main (int argc, char* argv[]) {// T[i][j], i:x, j:y int i, j, k; doble w = 2/(1+sin(PI/L)); doble T[ L+1][L+1]; para (i=0; i<=L; i++) T[0][i] = T[i][ 0] = 100; for(i=1; i<=L; i++) T[i][L] = 100 + 400*Hx*i; p> for(j=1; j<=L-1; j++) T[L][j] = 100 + 800*Hy*j for(j=1; j<=L-1;j++) for(i=1; i<=L-1; i++) T[i][j ] = 100; para(k=0; k <=1000; k++) { para(i=1; i<=L- 1; i++) for(j=1; j< ;=L-1; j++) for(j=1; j<=L-1; j++) p> { T[i][j] = T[i][j] + (w/4)*(T[i+1][j] + T[i] [j+1] + T[i-1][j] + T[ i][j-1] - 4*T[i][j]); p>} } } printf("Método de iteración ultra relajado, w = %lf \n", w printf("T[x][y] = ...\ n"); for(i=0; i<=L; i++) for (j=0; j<=L; j++) { printf("%.1lf\t", T[i][j]); if(j == L) putchar (10); } devuelve 0 } p>