Помощь в написании студенческих работ
Антистрессовый сервис

Напряженность и потенциал проводящего шара с зарядом q, размещенного в центре проводящей сферы

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Программа в системе Matlab состоит из пяти функций. Интерфейс (function kursovaja ()), function kursmain1() — загрузка файла с данными из С a0001.txt, расчет сигнала при a=0.05, обращаясь к функциям function f=F (a) — расчет сигнала с помехой и function h=H (f) — сигнала после фильтра и построение данных, полученных из С и Matlab. Аналогичная функция function kursmain2() — загрузка файла… Читать ещё >

Напряженность и потенциал проводящего шара с зарядом q, размещенного в центре проводящей сферы (реферат, курсовая, диплом, контрольная)

КУРСОВОЙ ПРОЕКТ (РАБОТА)

Напряженность и потенциал проводящего шара с зарядом q, размещенного в центре проводящей сферы

ЗАДАНИЕ Проводящий шар с зарядом q размещен в центре полой проводящей сферы.

a1 — радиус шара;

a2, a3 — радиусы сферы;

1, 2 — абсолютные диэлектрические проницаемости внешнего пространства (вакуум) и внутреннего сферы (диэлектрик).

Элекрическое поле (E) и потенциал () определены следующими соотношениями:

q q q 1 1

E =; = + (-); при a1 <= r <= a2;

42 r2 41a3 42 r a2

q

E= 0; =; при a2 <= r <= a3 ;

41a3

q q

E=; =; при r >= a3 ;

41r2 41r

r — расстояние от центра шара до точки определения поля.

Вычислить E, и построить зависимости от r при:

1) a2 = 2a1; a3 = 2.5a1 ;

2) a2 = 10a1; a3 = 15a1 ;

2 = 1,81 .

АННОТАЦИЯ Данная курсовая работа предназначена для расчета напряженности электрического поля и потенциала в любой точке проводящего шара с зарядом q, размещенным в центре полой проводящей сферы с использованием средств C++ и Matlab.

ВВЕДЕНИЕ

РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ. МЕТОДЫ ПРОСТЫХ ИТЕРАЦИЙ Для решения математических задач используются основные группы методов: графические, аналитические, численные.

Графические методы позволяют в ряде случаев оценить порядок искомой величины. Основная идея этих методов состоит в том, что решение находится путем геометрических построений. Например, для нахождения корней уравнения f (x)=0 строится график функции y=f (x), точки пересечения которого с осью абсцисс и будут искомыми корнями.

При использовании аналитических методов решение задачи удается выразить с помощью формул.

Основным инструментом для решения сложных математических задач в настоящее время являются численные методы, позволяющие свести решение задачи к выполнению конечного числа арифметических действий над числами; при этом результаты получаются в виде числовых значений. Многие ЧМ разработаны давно, однако при вычислениях вручную они могли использоваться лишь для решения не слишком трудоемких задач.

Численное решение нелинейных (алгебраических) уравнений вида f (x)=0 заключается в нахождении значений x, удовлетворяющих (с заданной точностью) данному уравнению. Сначала происходит нахождение отрезков из области определения функции f (x), внутри которых содержится только один корень решаемого уравнения. Далее вычисляется приближенное значение корня с заданной точностью. Часто вместо отрезка локализации достаточно указать начальное приближение к корню.

В данной курсовой работе мы рассмотрим численный метод решения нелинейных уравнений — метод простых итераций. Этот метод можно применить к уравнениям, которые могут быть представлены в виде F (x)=f (x)-x=0

y

y=x

y=f (x)

x0 x1 x2xs x

Рисунок 1 — Геометрическая интерпретация Сначала мы вводим первую итерацию х0 — т.0 (х0,f (x0)), последующая итерация находится с помощью итерационного соотношения x=f (x) (новая через старую). Т. е. следующие итерации (x1,f (x1)), (x2,f (x2)) и т. д. до тех пор, пока истинно |f (x)-x|<=eps, где eps — это точность. Рассмотрим решение нелинейного уравнения методом простых итераций на примере.

Пример. Начнем с постановки задачи.

Задача: решить нелинейное уравнение F (x)=lg (x)+2x-3=0 методом простых итераций, вычислить корень с заданной точностью eps.

Исходные данные: уравнение, точность, первая итерация.

Результат: вывод на экран (корень, точность, количество итерации, контрольное число (|f (x)-x|).

БЛОК-СХЕМА напряженность электрическое поле заряд matlab

aлгоритма решения нелинейного уравнения с помощью метода простых итераций с точностью eps

Правило остановки итерации: F (xs)>0, F (x1)?eps, |x1-x0|?eps. Для того, чтобы правильно найти корень, мы будем продолжать итерации, пока будут истинны оба итеранта.

СЛОВЕСНЫЙ АЛГОРИТМ

1. Начало.

2. Ввод с клавиатуры первой итерации x и точности eps.

3. n=1

4. |x-f (x)|>=eps, если да — на 5, нет — на 8

5. Нахождение следующей итерации x=f (x)

6. n=n+1

7. на 4

8. вывод на экран x, eps, n, F (x), |f (x)-x|

9. подпись

10. конец

ТЕКСТ ПРОГРАММЫ

#include «stdafx.h»

#include

#include

double F (double);

double F (double a)

{

return -(3*log10(a*a)+3)/6;

}

int _tmain ()

{double x, e;

int n, t;

do

{

printf («x=»);

scanf_s («%le» ,&x);

printf («e=»);

scanf_s («%le» ,&e);

n=1;

do

{

x=F (x);

n=n+1;

}

while (fabs (x-F (x))>=e);

printf («x=%le e=%le n=%in F (x)=%le |x-F (x)|=%len», x, e, n, F (x), fabs (x-F (x)));

printf («Repeat?1/0n»);

scanf_s («%i» ,&t);

}

while (t==1);

printf («Koturginan»);

_getch ();

return 0;

}

АНАЛИЗ ЗАДАНИЯ

Данная курсовая работа позволяет рассчитать потенциал и напряженность электрического поля в любой точке относительно проводящего шара с зарядом q, размещенным в центре полой проводящей сферы, с использованием средств C++ и Matlab.

СЛОВЕСНЫЙ АЛГОРИТМ

1. Начало

2. Создание файла kursov1. txt;

3. Вычисление E, fi при a1=1, a2=2*a1, a3=2,5*a1, dr=0,01*a1;

4. Запись E, fi, r в файл kursov1. txt;

5. Закрытие файла kursov1. txt;

6. Создание файла kursov2. txt;

7. Вычисление E, fi при a1=1, a2=10*a1, a3=15*a1;

8. Запись E, fi, r в файл kursov2. txt;

9. Закрытие файла kursov2. txt;

10. Конец.

ПОЯСНЕНИЯ К БЛОК-СХЕМЕ

E — напряженность электрического поля;

fi — потнциал;

a1 — радиус шара;

а2, а3 — радиусы сферы;

r — расяние от центра шара до точки определения напряженности и потенциала;

dr — шаг увеличения расстояния;

eps1, eps2 — абсолютные диэлектрические проницаемости внешнего пространства (вакуум) и внешнего (сфера);

БЛОК-СХЕМА

Функция main

Функция f1(a1,a2,a3,r)

СТРУКТУРА И РАБОТА ПРОГРАММЫ

Программа на языке C состоит из двух функций: main () и f1(a1,a2,a3,r), вычисляющая напряженность электрического поля и потенциал в точке на расстоянии r от центра шара с зарядом q, размещенного в центре полой проводящей сферы. Функция main ()

Работа программы начинается с функции main, содержащей один оператор цикла for и один оператор многовариантного деления switch, вложенный в цикл, так как параметр a в программе имеет два значения и обознается a=0.01 и a1=0.05. При расчете происходит обращение сначала к функции F, в которую передается значение параметра a. Функция F имеет два оператора цикла for, один из которых вложен в другой. После выполнения функции F происходит обращение к функции H, имеющей два оператора цикла for, как и в предыдущей функции один вложен в другой.

В конце выполнения программы значения массивов f и h записываются в файл: при а=0.05 в файл a0_001.txt, при a1=0.01 — в файл a0_01.txt

ТЕКСТ ПРОГРАММЫ НА С

#include «stdafx.h»

#include

#include

#include

#include

double f[300];

double n[300];

double q[300];

double h[300];

int x, N;

double F (double);

double F (double a)

{

for (x=0; x<=N-1; x=x+1)

{

f[x]=0;

int i;

double z, ni;

for (i=1; i<=12; i=i+1)

{

z=(double)rand ()/RAND_MAX;

ni=-0.5-(-0.5−0.5)*z;

n[x]=n[x]+ni;

}

f[x]=exp (-a*x)+0.1*n[x];

}

return 0;}

double H ();

double H ()

{

int x1;

q[0]=q[10]=0;

q[1]=q[9]=0.2;

q[2]=q[8]=0.4;

q[3]=q[7]=0.6;

q[4]=q[6]=0.8;

q[5]=1;

for (x=0; x<=N-1; x=x+1)

{

h[x]=0;

for (x1=0; x1<=N-1; x1=x1+1)

{

h[x]=h[x]+f[x1]*q[x-x1];

}

}

return 0;

}

int _tmain (int argc, _TCHAR* argv[])

{

double a, F1, H1,a1;

int t;

N=300;

for (t=1; t<=2; t=t+1)

{

switch (t)

{

case 1 :

a=0.01;

F1=F (a);

H1=H ();

FILE *m;

fopen_s (&m," a0_01.txt" ," w+");

for (x=0; x<=N-1; x=x+1)

{

fprintf (m, «%le %len», f[x], h[x]);

}

fclose (m);

break;

case 2:

a1=0.05;

F1=F (a1);

H1=H ();

fopen_s (&m," a0_001.txt" ," w+");

for (x=0; x<=N-1; x=x+1)

{

fprintf (m, «%le %len», f[x], h[x]);

}

fclose (m);

break;

}

}

_getch ();

return 0;

}

фрагмент файла из С++ (левый столбец f (x), правый столбец h (x))

9.66 6952e-001 9.35 9999e+000

8.68 5273e-001 9.33 5505e+000

8.74 5356e-001 9.73 1244e+000

9.64 2603e-001 1.8659e+001

9.33 8099e-001 1.9 4563e+001

8.74 3329e-001 1.19 3945e+001

8.95 6874e-001 1.27 5390e+001

5.70 5165e-001 1.31 4451e+001

6.73 6160e-001 1.32 6044e+001

7.91 5757e-001 1.28 3504e+001

6.77 7456e-001 1.21 9029e+001

РАБОТА В СИСТЕМЕ MATLAB

Программа в системе Matlab состоит из пяти функций. Интерфейс (function kursovaja ()), function kursmain1() — загрузка файла с данными из С a0_001.txt, расчет сигнала при a=0.05, обращаясь к функциям function f=F (a) — расчет сигнала с помехой и function h=H (f) — сигнала после фильтра и построение данных, полученных из С и Matlab. Аналогичная функция function kursmain2() — загрузка файла с данными из С a0_01.txt, расчет сигнала при a=0.01, обращаясь к тем же расчетным функциям, построение графиков по данным из С и Matlab.

Работа начинается с запуска function kursovaja (), появляются два графических окна. На каждом имеется значение параметра a и кнопка, при нажатии которой выводятся графики из функции, соответствующей значению, а (при a=0.05 из function kursmain1(), при a=0.01 из function kursmain2()).

ТЕКСТ ПРОГРАММЫ НА MATLAB

function kursovaja ()

global a a1 h1 h2;

h1=figure (1);

set (h1,'color',[0.25 0.3 0.2]);

set (h1,'numbertitle','off','name','Курсовая a=0.05');

pos='position';

nor='normalized';

un='units';

p0=[0.2 0.95 0.28 0.04];

tt=uicontrol ('style','text', un, nor, pos, p0,'string','значение паремтра a');

p1=[0.50 0.95 0.08 0.04];

a=uicontrol ('style','edit', un, nor, pos, p1,'string','0.05');

p4=[0.6 0.95 0.15 0.04];

uicontrol ('style','pushbutton', un, nor, pos, p4,'string','a=0.05','callback','kursmain');

h2=figure (2);

set (h2,'color',[0.25 0.3 0.2]);

set (h2,'numbertitle','off','name','Курсовая a=0.01');

tt1=uicontrol ('style','text', un, nor, pos, p0,'string','значение паремтра a');

a1=uicontrol ('style','edit', un, nor, pos, p1,'string','0.01');

uicontrol ('style','pushbutton', un, nor, pos, p4,'string','a=0.01','callback','kursmain2');

function kursmain ()

global a h1

figure (h1)

load a0_001.txt;

f=a0_001(, 1);

h=a0_001(, 2);

subplot (2,2,1);

plot (f), grid, xlabel ('сигнал с помехой C++');

subplot (2,2,2)

plot (h), grid, xlabel ('сигнал после фильтра C++');

pos='position';

nor='normalized';

un='units';

a=get (a,'string');

a1=str2num (a);

f=F (a1);

subplot (2,2,3)

plot (f), grid, xlabel ('сигнал с помехой matlab');

h=H (f);

subplot (2,2,4)

plot (h), grid, xlabel ('сигнал после фильтра matlab');

function kursmain2()

global a1 h2

figure (h2)

load a0_01.txt;

f1=a0_01(, 1);

h1=a0_01(, 2);

subplot (2,2,1);

plot (x, f1), grid, xlabel ('сигнал с помехой C++');

subplot (2,2,2)

plot (x, h1), grid, xlabel ('сигнал после фильтра C++');

pos='position';

nor='normalized';

un='units';

a=get (a1,'string');

a1=str2num (a);

f=F (a1);

subplot (2,2,3)

plot (x, f), grid, xlabel ('сигнал с помехой matlab');

h=H (f);

subplot (2,2,4)

plot (x, h), grid, xlabel ('сигнал после фильтра matlab');

function f=F (a)

clc;

for x=1:300

n (x, 1)=0;

for i=1:12

ni (i, 1)=0.5.*randn (1,1);

n (x, 1)=n (x, 1)+ni (i, 1);

end

f (x)=exp (-a.*x)+0.1.*n (x);

end

function h=H (f)

clc;

q=zeros (300,1);

q (10,1)=0.2;

q (9,1)=0.4;

q (8,1)=0.6;

q (7,1)=0.8;

q (2,1)=q (10,1);

q (3,1)=q (9,1);

q (4,1)=q (8,1);

q (5,1)=q (7,1);

q (6,1)=1;

for x=1:300

h (x, 1)=0;

for x1=1:300

hi (x1,1)=0;

if (x-x1)>0

hi (x1,1)=f (x1)*q (x-x1);

else

hi (x1,1)=0;

end

h (x, 1)=h (x, 1)+hi (x1,1);

end

end

ЗАКЛЮЧЕНИЕ

Для того, чтобы программы и результаты попали на бумагу было сделаны следующие действия. Тексты программ на С++ и matlab и результаты, полученные в ходе программы на С++ выделялись, затем копировались из файла сочетанием клавиш ctrl+c и вставлялись сочетанием клавиш ctrl+v. Графические окна копировались клавишей Print Screen и вставлялись сочетанием клавиш ctrl+v. Затем все было распечатано.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Березин Б. И. Базовый курс / Симанович С. В. и др. — СПб: Издательство «Питер», 2000. — 640с

2. Кетков Ю. Л. Matlab 7: Программирование, численные методы / Кетков Ю. Л. и др. — СПб: Издательство «БХВ Петербург», 2005. — 752с

3. Потемкин В. Г. Система инженерных и научных расчетов MATLAB / Потемкин В. Г. — М: Издательство «Диалог МИФИ», 1999

4. Романова Г. Н. Информатика: Методические указания по курсовой работе / Г. Н. Романова — Красноярск: ИПЦ КГТУ, 2003. — 38с

5. Романова Г. Н. Курс лекций по С++ и Matlab / Г. Н. Романова — Красноярск: ИПЦ КГТУ, 2003

Показать весь текст
Заполнить форму текущей работой