Как моделировать и рисовать электрические поля в Matlab с контуром? - PullRequest
1 голос
/ 15 декабря 2011

Я хотел бы знать, как нарисовать график с двумя электрическими зарядами Q и -Q и их общим E для конкретной точки (например, (4,5)) с контуром f .. Мой M-файл на самом делесканирует область (от -3x до 3x) и вычисляет E для каждого пятна, сохраняет его в таблице, но после этого я не знаю, как использовать контур для его рисования ..

syms i
syms j
syms d
d=input('dwse thn timi tou d,ths apostashs')
j=0
i=0
for j=-d:d/1000:d

    j=j+1

for i=-d:d/1000:d

    i=i+1
    z=(i,j)

end, end

Ответы [ 2 ]

3 голосов
/ 16 декабря 2011

На основании закона Кулона электрическое поле, создаваемое одним дискретным зарядом q на расстоянии r, определяется как:

E = q / (4 * pi * e0 * r. ^ 2);

Если у вас есть несколько зарядов, вы можете использовать принцип суперпозиции и добавить вклад каждого заряда.

Осталось только создать сетку для вычисления электрического поля.Для этого вы можете использовать функцию Matlab meshgrid.

Простой пример в Matlab:

k=1/4/pi/8.854e-12;
d=2;
q=[-1 1];
x=[-d/2 d/2];
y=[0 0];

dx=0.01;
X=(-d:dx:d);
Y=(-d:dx:d);
[X Y]=meshgrid(X,Y);

E=zeros(size(X));

for i=1:numel(q)
    r=sqrt((X-x(i)).^2+(Y-y(i)).^2);
    E=E+k*q(i)./r.^2;
end

E(isinf(E))=NaN;

figure;
contourf(X,Y,E);
axis image;

Надеюсь, он вам поможет.Вы можете прочитать документацию contourf, чтобы настроить сюжет под свои нужды.

1 голос
/ 15 декабря 2011

Вам нужно дать больше информации в своем вопросе: с какой проблемой вы столкнулись?Что вы пробовали?

Однако, предполагая, что z(i,j) - это ваше электрическое поле, рассчитанное на 2-мерной сетке, просто позвоните contourf после того, как ваш for зациклится как

contourf(z)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...