есть задание.
т.к. оно большое прикрепил файл.
также попробовал закодить задание, но есть моменты, которые я не понимаю и, соответственно, код-бред (набросок).
вопросы: что такое n в последнем уравнении? и замечания, пожалуйста.
что не хватает в коде? может, не так реализовываю вообще?
Код:
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <iomanip>
using namespace std;
float fun_a(float xi, float yj) // положительная ф-я
{
// здесь должна быть какая-нибудь ф-я
// возвращаю значение от балды. т.к. на данный момент не знаю, что и возвращать.
return xi+yj;
}
float fun_b(float xi, float yj) // положительная ф-я
{
// здесь должна быть какая-нибудь ф-я
// возвращаю значение от балды. т.к. на данный момент не знаю, что и возвращать.
return xi+yj;
}
float fun_c(float xi, float yj) // любая ф-я
{
// здесь должна быть какая-нибудь ф-я
// возвращаю значение от балды. т.к. на данный момент не знаю, что и возвращать.
return xi+yj;
}
float fun_d(float xi, float yj) // любая ф-я
{
// здесь должна быть какая-нибудь ф-я
// возвращаю значение от балды. т.к. на данный момент не знаю, что и возвращать.
return xi+yj;
}
float fun_g(float xi, float yj) // неотрицательная ф-я
{
// здесь должна быть какая-нибудь ф-я
// возвращаю значение от балды. т.к. на данный момент не знаю, что и возвращать.
return xi+yj;
}
float fun_f(float xi, float yj)
{
// здесь должна быть какая-нибудь ф-я
// возвращаю значение от балды. т.к. на данный момент не знаю, что и возвращать.
return xi+yj;
}
int main()
{
const int I = 3;
const int J = 3;
float x[100], y[100];
float h, t;
h = 2; t = 1; // сами задаем
float a[100][100], b[100][100], c[100][100], d[100][100], g[100][100], f[100][100];
float A[100][100], B[100][100], C[100][100], D[100][100], E[100][100];
float a_segment, b_segment;
float u[100][100];
// зададим свои значения для отрезка a,b
a_segment = 0;
b_segment = 1;
for (int i = -I; i <= I; i ++)
{
x[i] = i * h;
for (int j = -J; j <= J; j ++)
{
y[j] = j * t;
a[i][j] = fun_a(x[i], y[j]);
b[i][j] = fun_b(x[i], y[j]);
c[i][j] = fun_c(x[i], y[j]);
d[i][j] = fun_d(x[i], y[j]);
g[i][j] = fun_g(x[i], y[j]);
f[i][j] = fun_f(x[i], y[j]);
A[i][j] = (a[i][j])/(pow(h,2)) + (c[i][j])/(2*h);
B[i][j] = (a[i][j])/(pow(h,2)) - (c[i][j])/(2*h);
C[i][j] = (b[i][j])/(pow(t,2)) + (d[i][j])/(2*t);
D[i][j] = (b[i][j])/(pow(t,2)) - (d[i][j])/(2*t);
E[i][j] = (2*a[i][j])/(pow(h,2)) + (2*b[i][j])/(pow(t,2)) - g[i][j];
}
}
for (int i = -I+1; i < I; i ++)
{
for (int j = -J+1; j < J; j ++)
{
u[i][j] = (A[i][j])/(E[i][j]) * u[i+1][j] + (B[i][j])/(E[i][j]) * u[i-1][j] + (C[i][j])/(E[i][j]) * u[i][j+1] + (D[i][j])/(E[i][j]) * u[i][j-1] - (f[i][j])/(E[i][j]);
cout << "u[i][j] = " << u[i][j] << endl; // ясное дело, выводит бред
}
}
system ("pause");
return 0;
}