Автор работы: Пользователь скрыл имя, 06 Мая 2013 в 02:01, курсовая работа
Для простых случаев, данное уравнение решается аналитически, но даже при небольших осложнениях решение задачи возможно лишь численно. Дальше их можно решать численно несколькими методами один из них прямой метод, разработанный для решения "трехдиагональных" систем. Однако на практике при численном решении эллиптических уравнений приходится использовать сетки, имеющие очень большое количество узлов, поэтому будет целесообразным применение итерационных методов. Мы воспользуемся методом Гаусса-Зейделя.
Введение 5
1Теоретическая часть 6
1.1Эквипотенциальные поверхности 6
1.2Распределение заряда 7
2Численная модель решения 8
3Проверка работоспособности численной модели 11
4Результаты решения поставленной задачи 14
Заключение 18
Список использованных источников 19
Приложение А 20
Рисунок 8 – Эквипотенциальные лини при потенциале заданном как x=0 y=10 U=100; x=10 y=15 U= -100.
Рисунок 9 – Векторы плотности тока в узлах сетки, при потенциале заданном как x=0 y=10 U=100; x=10 y=15 U= -100. Сопротивление для данных условий: R=0.51
Рисунок 10 – Эквипотенциальные лини при потенциале заданном как x=0 y=10 U=100; x=10 y=10 U= -100.
Рисунок 11 – Векторы плотности тока в узлах сетки, при потенциале заданном как x=0 y=10 U=100; x=10 y=10 U= -100. Сопротивление для данных условий: R=0.49
Рисунок 12 – Эквипотенциальные лини при потенциале заданном как x=0 y=10 U=100; x=10 y=5 U= -100.
Рисунок 13 – Векторы плотности тока в узлах сетки, при потенциале заданном как x=0 y=10 U=100; x=10 y=5 U= -100. Сопротивление для данных условий: R=0.51
Рисунок 14 – Эквипотенциальные лини при потенциале заданном как x=0 y=10 U=100; x=10 y=1 U= -100.
Рисунок 13 – Векторы плотности тока в узлах сетки, при потенциале заданном как x=0 y=10 U=100; x=10 y=1 U= -100. Сопротивление для данных условий: R=0.90
Оценивая результаты полученные в ходе исследования относительно R, можно говорить что мы наблюдаем очевидную зависимость R от расстояния. Притом видно, что в ситуации, когда точки с заданными потенциалами находятся на меньшем расстоянии, то сопротивление минимально, а в случаях, когда эти же точки стоят на большем расстоянии, оно начинает возрастать.
ЗАКЛЮЧЕНИЕ
В данной курсовой работе, было рассмотрено решение уравнение Пуассона, на примере распределения потенциала в однородной проводящей среде, а так же были проанализированы, физические величины, зависящие от начального распределения потенциала в проводнике.
В ходе
работы были проанализированы
полученные результаты, зависящие,
в рамках данной задачи, только
от граничных условий, что и
являлось объектом исследования.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ А
Листинг программы
#include <iostream>
#include <stdio.h>
#include <math.h>
float dx;
float dy;
int N;
int M;
int ns;
float w=0.9;
//структура Векторов
typedef struct {float x,y;} my_vector;
my_vector operator+( my_vector x1, my_vector x2)
{
my_vector res;
res.x = (x1.x+x2.x);
res.y = (x1.y+x2.y);
return res;
}
my_vector operator-( my_vector x1, my_vector x2)
{
my_vector res;
res.x = (x1.x-x2.x);
res.y = (x1.y-x2.y);
return res;
}
my_vector operator*( my_vector x1, float a)
{
my_vector res;
res.x = (x1.x*a);
res.y = (x1.y*a);
return res;
}
float operator*( my_vector x1, my_vector x2)
{
float res;
res=(x1.x*x2.x+x1.y*x2.y);
return res;
}
my_vector operator/( my_vector x1, float a)
{
my_vector res;
res.x = (x1.x/a);
res.y = (x1.y/a);
return res;
}
float Abs( my_vector x1)
{
return(sqrt(x1.x*x1.x+x1.y*x1.
}
float r(int i, int j)
{
return(sqrt(i*dy*i*dy+j*dx*j*
}
my_vector J[200][200];
int main()
{
float U[200][200],Us[200][200],Un[
bool Up[200][200];
int k, i, n,j;
FILE* potencial;
FILE* tok;
FILE* star;
star=fopen("c:/temp/003.txt","
potencial= fopen("c:/temp/001.txt","w+");
tok= fopen("c:/temp/002.txt","w+");
fscanf(star,"%f %f %i %i %i %f\n",&dx, &dy, &N, &M, &ns, &e);
for (i=0;i<=M;i++)
{
for (j=0;j<=N;j++)
{
Up[i][j]=false;
}
}
for (k=0;k<=ns;k++)
{
fscanf(star,"%i %i ",&j, &i);
fscanf(star,"%f\n", &U[i][j]);
Up[i][j]=true;
Un[k]=U[i][j];
}
//граничные условия
for (i=0;i<=M;i++)
{
for (j=0;j<=N;j++)
{
if(Up[i][j]!=true)
{
U[i][j]=1;
Us[i][j]=U[i][j];
}
}
}
//вычисление нулевого
c=e+1;
while(c>e)
{c=0;
for(i=0;i<=M;i++)
{
for(j=1;j<N;j++)
{
if(Up[i][j]==false);
U[i][j]=(1-w)*U[i][j]+(w/4)*(
if (c<fabs(U[i][j]-Us[i][j]))
c=fabs(U[i][j]-Us[i][j]);
Us[i][j]=U[i][j];
}
}
}// метод Зейделя Гаусса
for(i=0;i<=M;i++)
{
for(j=1;j<N;j++)
{
J[i][j].x=(U[i][j-1]-U[i][j+1]
J[i][j].y=(U[i-1][j]-U[i+1][j]
}
}//расчёт плотности тока
Js=0;
for(i=0;i<=M;i++)
{
Js=Js+J[i][N/2].x;
}
I=Js*M*dy;
R=0;
for(i=0;i<=M;i++)
{
for (j=0;j<=N;j++)
{
if(Up[i][j]==true)
R=R+fabs(U[i][j])/I;
}
}
b=N*dx;
a=M*dy;
printf("a=%f b=%f R=%f \n",a,b,R);
//расчёт тока и сопротивления
for(i=0;i<=M;i++)
{
for(j=0;j<=N;j++)
{
fprintf(tok,"%f\t %f\t %f\t %f\t\n",j*dy, i*dx, 0.01*J[i][j].x, 0.01*J[i][j].y);
}
}
for(i=0;i<=M;i++)
{
for(j=0;j<=N;j++)
{
fprintf(potencial,"%f\t %f\t %f\t\n", j*dy, i*dx,U[i][j]);
}
fprintf(potencial,"\n");
}
}