Моделирование силовых линий электростатического поля
|
|
TRUE_GEEK | Дата: Суббота, 01.02.2014, 01:02 | Сообщение # 1 |
Сообщений: |
57 |
Награды: |
0 |
Статус: |
Offline |
|
Здравствуйте! Разработал программу моделирующую силовые линии электростатического поля. Программа компактна, не требует установки, не тащит кучу библиотек. Возможно сохранение результата работы в графический формат(картина силовых линий), или таблицу(можно открывать ms excel 2007 или lo calc, хранит координаты и эл. заряд), также можно загрузить данные из созданной ранее таблицы. Интересно узнать ваше мнение о возможность применения данной программы в учебном процессе и другие замечания по ее доработке. _http://rghost.ru/52104567
ps заранее извиняюсь если здесь запрещены ссылки на сторонние ресурсы pss завтра выложу под linux
01.02.2014
Сообщение отредактировал TRUE_GEEK - Суббота, 01.02.2014, 01:07
|
|
|
| |
|
Александр_Игрицкий | Дата: Суббота, 01.02.2014, 10:24 | Сообщение # 2 |
Сообщений: |
11095 |
Награды: |
129 |
Статус: |
Offline |
|
Цитата TRUE_GEEK ( ) Разработал программу моделирующую силовые линии электростатического поля. Цитата TRUE_GEEK ( ) Программа компактна, не требует установки Как можно увидеть её в работе? Поля от каких источников она моделирует?
01.02.2014
|
|
|
| |
|
NePsix | Дата: Суббота, 01.02.2014, 11:05 | Сообщение # 3 |
NePsix
Ранг: Аспирант (?)
Группа: Я - учитель
Должность: учитель информатики
|
Сообщений: |
879 |
Награды: |
26 |
Статус: |
Offline |
|
Цитата Александр_Игрицкий ( ) Как можно увидеть её в работе? Молодой человек привел ссылку на файлообменник, только не совсем верно оформил. Вот она. Скачиваем файл и запускаем. Чтобы указать источник, нужно щелкнуть мышкой по координатной плоскости.Добавлено (01.02.2014, 11:05) --------------------------------------------- TRUE_GEEK, а как с поля можно удалить только один выбранный заряд, не используя кнопку "Очистить"? Такая опция не предусмотрена или это мы ее не нашли?
01.02.2014
|
|
|
| |
|
Александр_Игрицкий | Дата: Суббота, 01.02.2014, 13:55 | Сообщение # 4 |
Сообщений: |
11095 |
Награды: |
129 |
Статус: |
Offline |
|
TRUE_GEEK, как я понял, возможны только точечные заряды. Тогда количество силовых линий, выходящих из каждого такого заряда или входящих в него, должно быть пропорционально его величине. Этого нет. И некорректно решен вопрос о линиях, уходящих в бесконечность. Как пример: разместите заряд -5 в (-150,0) +1 в (+150,0). Баланса нет.
01.02.2014
|
|
|
| |
|
TRUE_GEEK | Дата: Суббота, 01.02.2014, 15:52 | Сообщение # 5 |
Сообщений: |
57 |
Награды: |
0 |
Статус: |
Offline |
|
Цитата NePsix ( ) только не совсем верно оформил На многих ресурсах запрещено давать прямые ссылки без подчеркивания, т.к. они индексируются поисковиками и повышают page rank страницы на которую ссылаются Цитата NePsix ( ) а как с поля можно удалить только один выбранный заряд, не используя кнопку "Очистить"? Такая опция не предусмотрена или это мы ее не нашли? ее действительно пока нет, но в ближайшее время планируетсяЦитата Александр_Игрицкий ( ) возможны только точечные заряды да, но пользуясь принципом суперпозиции мы можем создавать и более сложные заряженные тела например $IMAGE1$ Цитата Александр_Игрицкий ( ) Тогда количество силовых линий, выходящих из каждого такого заряда или входящих в него, должно быть пропорционально его величине. Этого нет да, думал над этим, на данный момент из каждого заряда выходит одинаковое число линий, но в больший по величине заряд будет входить больше линий, чем в меньший если у нас будет 3 заряда например два из которых имеют одинаковый знак и разную величину Цитата Александр_Игрицкий ( ) некорректно решен вопрос о линиях, уходящих в бесконечность к сожалению эту проблему вряд-ли удастся решить, линия обрывается как только достигает конца рабочей области т.к. считать линию уходящую в бесконечность не хватит ресурсов
01.02.2014
Сообщение отредактировал TRUE_GEEK - Суббота, 01.02.2014, 15:53
|
|
|
| |
|
TRUE_GEEK | Дата: Суббота, 01.02.2014, 15:54 | Сообщение # 6 |
Сообщений: |
57 |
Награды: |
0 |
Статус: |
Offline |
|
не прикрепилось почему-то
01.02.2014
|
|
|
| |
|
Александр_Игрицкий | Дата: Суббота, 01.02.2014, 17:23 | Сообщение # 7 |
Сообщений: |
11095 |
Награды: |
129 |
Статус: |
Offline |
|
Цитата TRUE_GEEK ( ) к сожалению эту проблему вряд-ли удастся решить, линия обрывается как только достигает конца рабочей области т.к. считать линию уходящую в бесконечность не хватит ресурсов Я не о границах области и не о ресурсах. Я о том, что должен быть ВИДЕН баланс, зависящий от величины зарядов, между линями замкнутыми и линиями, уходящими на бесконечность. И непременно нужно избавиться одинакового числа линий, исходящих из разных по величине зарядов. И пустячок: нужно справить в окошечке: метод РунгЕ-Кутты.
01.02.2014
Сообщение отредактировал Александр_Игрицкий - Суббота, 01.02.2014, 17:31
|
|
|
| |
|
TRUE_GEEK | Дата: Суббота, 01.02.2014, 23:33 | Сообщение # 8 |
Сообщений: |
57 |
Награды: |
0 |
Статус: |
Offline |
|
Исправил с учетом вышеуказанных замечаний прога с фиксами с удалением все просто, а число линий выходящее из заряда считается следующим образом: пользователь задает n с помощью тракбара, из минимального по модулю заряда выходит n/2, а из максимального 3*n/2, прямая проходящая через эти две точки и есть зависимость n(abs(q)) + рассмотрен случай если все заряды одинаковы. Были мысли сделать два тракбара, чтобы пользователь мог задать сам сколько будет выходить из максимального, сколько из минимального, но решил, что это будет слишком не юзерфрендли.
01.02.2014
Сообщение отредактировал TRUE_GEEK - Суббота, 01.02.2014, 23:34
|
|
|
| |
|
Александр_Игрицкий | Дата: Воскресенье, 02.02.2014, 00:16 | Сообщение # 9 |
Сообщений: |
11095 |
Награды: |
129 |
Статус: |
Offline |
|
Цитата TRUE_GEEK ( ) число линий выходящее из заряда считается следующим образом: пользователь задает n с помощью тракбара, из минимального по модулю заряда выходит n/2, а из максимального 3*n/2, Что Вам сказать? В данном случае мне совершенно безразлично, с какими трудностями встречается программист, но грамотная программа должна быть грамотной с точки той науки, иллюстрациями к которой она занимается. Я не могу согласиться с тем, что число выходящих-входящих силовых линий определяется удобствами программиста, а не физическими соображениями. Если из заряда 1 выходит 10 линий, то из заряда 5 должно выходить 50. Вот и всё.Добавлено (02.02.2014, 00:16) ---------------------------------------------
Цитата TRUE_GEEK ( ) Были мысли сделать два тракбара, чтобы пользователь мог задать сам сколько будет выходить из максимального, сколько из минимального, но решил, что это будет слишком не юзерфрендли. У Вас есть нормальный удобный параметр - густота линий, только он должен работать грамотно: изменять густоту синхронно для всех зарядов с учетом их величины - пропорционально ей, а не "от фонаря".
02.02.2014
|
|
|
| |
|
TRUE_GEEK | Дата: Воскресенье, 02.02.2014, 00:43 | Сообщение # 10 |
Сообщений: |
57 |
Награды: |
0 |
Статус: |
Offline |
|
Цитата Александр_Игрицкий ( ) Я не могу согласиться с тем, что число выходящих-входящих силовых линий определяется удобствами программиста, а не физическими соображениями. Если из заряда 1 выходит 10 линий, то из заряда 5 должно выходить 50. Вот и всё. Вы предлагаете сделать зависимость n(q)=10*|q|, это действительно намного проще чем составлять уравнение прямой по двум точкам и программирование тут не при чем, но мне пришлось отказаться от этой идеи, представьте ситуацию, что у вас есть заряд 1 и 100, тогда из первого пойдет 10 линий, а из второго 1000, предположим, что произойдет чудо и программа не зависнет, мы увидим черный экран, на котором нельзя различить, что либо. Именно по этому я сделал так, чтобы из минимального заряда выходило всегда в три раза меньше чем из максимального.
02.02.2014
|
|
|
| |
|
Александр_Игрицкий | Дата: Воскресенье, 02.02.2014, 01:32 | Сообщение # 11 |
Сообщений: |
11095 |
Награды: |
129 |
Статус: |
Offline |
|
Цитата TRUE_GEEK ( ) Именно по этому я сделал так, чтобы из минимального заряда выходило всегда в три раза меньше чем из максимального. Тогда Вы моделируете одну-единственную ситуацию, когда заряды по модулю отличаются в три раза. И никакую другую. В этом случае это уже не очень интересно. Я ничего не предлагаю. Это был пример. Обратите внимание на ЕСЛИ: Цитата Александр_Игрицкий ( ) Еслииз заряда 1 выходит 10 линий, то из заряда 5 должно выходить 50. Если из заряда 1 выходит не десять, а N линий, то из заряда Q должно выходить NQ линий. Только в этом случае Вы моделируете реальную физику, а не воображаемую. Цитата TRUE_GEEK ( ) представьте ситуацию, что у вас есть заряд 1 и 100, тогда из первого пойдет 10 линий, а из второго 1000, предположим, что произойдет чудо и программа не зависнет, мы увидим черный экран, на котором нельзя различить, что либо. Представил. Ни зависание программы, ни чёрный экран никакого отношения к физике не имеют, а говорят лишь о том, что всё имеет свои пределы, а Вы должны предупредить пользователя о возможном разбросе входных параметров, при которых Ваша программа ещё выдает результаты. Нужно решить для себя вопрос, какое минимальное число силовых линий может дать хорошую и правильную визуализацию их реального поведения. Аналогично и с максимальным числом. Это и даст ответ на вопрос, во сколько раз могут отличаться заряды по модулю.
02.02.2014
Сообщение отредактировал Александр_Игрицкий - Воскресенье, 02.02.2014, 01:33
|
|
|
| |
|
TRUE_GEEK | Дата: Воскресенье, 02.02.2014, 10:42 | Сообщение # 12 |
Сообщений: |
57 |
Награды: |
0 |
Статус: |
Offline |
|
Цитата Александр_Игрицкий ( ) Если из заряда 1 выходит не десять, а N линий, то из заряда Q должно выходить NQ линий. Только в этом случае Вы моделируете реальную физику, а не воображаемую. Число силовых линий должно быть просто пропорционально величине заряда, почему коэффициент принят единицей? Допустим из заряда 1 выходит N линий, а из заряда Q тогда k*NQ разве это не верно? Где k=1/(Q_max-q_min)Цитата Александр_Игрицкий ( ) Нужно решить для себя вопрос, какое минимальное число силовых линий может дать хорошую и правильную визуализацию их реального поведения. Аналогично и с максимальным числом. Это и даст ответ на вопрос, во сколько раз могут отличаться заряды по модулю. Для разных систем зарядов эти значения могут отличатся, я не вижу тут однозначного решения
02.02.2014
|
|
|
| |
|
_miflin | Дата: Воскресенье, 02.02.2014, 14:09 | Сообщение # 13 |
_miflin
Ранг: Дошколенок (?)
Группа: Зарегистрированные
|
Сообщений: |
4 |
Награды: |
0 |
Статус: |
Offline |
|
Вопрос с "количеством силовых линий" нужно решать политкорректно. Скажем, имеем систему из двух разных по модулю зарядов ("+" и "-").
Силовые линии, рождённые в положительном заряде получают путевку в жизнь в соответствии с положением: "силовые линии имеют начало в положительном заряде и конец - в отрицательном".
Хорошо, если модуль отрицательного заряда больше модуля положительного. Тогда он может обеспечить места на кладбище для всех.
А если наоборот, то что тогда? - вывешивать "Оставь надежду всяк сюда входящий"? Ну, не "всяк", а с коэффициентом |q1|/|q2|? А куда девать "неприкаянные души"?
Не лучше ли модуль напряженности электростатического поля отображать толщиной силовой линии?
02.02.2014
|
|
|
| |
|
Александр_Игрицкий | Дата: Воскресенье, 02.02.2014, 14:19 | Сообщение # 14 |
Сообщений: |
11095 |
Награды: |
129 |
Статус: |
Offline |
|
Цитата TRUE_GEEK ( ) Число силовых линий должно быть просто пропорционально величине заряда, почему коэффициент принят единицей? Допустим из заряда 1 выходит N линий, а из заряда Q тогда k*NQ разве это не верно? Где k=1/(Q_max-q_min) Иван! Мне неловко объяснять Вам прописные истины - теорему Гаусса. Число силовых линий, умозрительно пересекающих любую замкнутую поверхность, окружающую источники (если они есть!) векторного поля, не просто пропорциональны интенсивности источников, заключенных внутри этой поверхности. Важно еще и то, что этот самый коэффициент пропорциональности для любой умозрительной попытки является величиной постоянной. В Вашем случае к=1 и только единице. И ничему другому! Ещё раз. Если из одного положительного заряда условной величины Q выходит N силовых линий, то из другого положительного заряда условной величины MQ обязательно должно выходить MN силовых линий. Если у Вас есть два заряда разного знака +Q1 и -|Q2|, и из Q1 выходит N1 силовых линий, то в Q2 обязательно должны входить N2=N1*|Q2|/Q1 силовых линий. Если N1>N2, то из N1 линий N2 линий входят в Q2, а (N1-N2) - уходят в бесконечность. Если N2>N1, то все N1 линий входят в Q2, и еще дополнительно из бесконечности должны войти в Q2 (N2-N1) линий. Только при строгом выполнении этих условиях Вы будете моделировать физику . Вы решите для себя один раз, что Вы делаете и для кого Вы это делаете. Если Вы хотите грамотно иллюстрировать физические явления, то для Вас требования физики обязательны для исполнения. Если Вы хотите выполнять экзерсисы в программировании графических задач, не обращая внимания на физику, тогда я Вам не советчик. И последнее. Цитата TRUE_GEEK ( ) Для разных систем зарядов эти значения могут отличатся, я не вижу тут однозначного решения А у Вас уже нет однозначного решения – у Вас есть возможность варьировать густоту линий. Только делать это нужно грамотно, соблюдая все изложенные выше требования ФИЗИКИ. Определите для себя, какое минимальное число силовых линий N(min) правильно и наглядно моделирует картину силовых линий от единичного заряда. Аналогично определите для себя максимальное число силовых линий N(max) с тем, чтобы линии на картинке отчётливо просматривались и не сливались в одно пятно. После этого Вы предупреждаете пользователя о возможных значениях зарядов |Q(max)| и |Q(min|:| Q(max)|/_Q(min)|<=N(max)/N(min). Если это условие не выполнено, то ни при какой густоте линий картинки не будет. Если реализуется знак равенства, то картинка будет при минимальной густоте линий и только при ней. Если имеет место строгое неравенство, тогда есть определенный диапазон густоты линий, в котором можно получать картинку. Вот и вся техника.Добавлено (02.02.2014, 14:15) --------------------------------------------- _miflin, пока, отрываясь, писал ответ, Вы уже написали свой. Добавлено (02.02.2014, 14:19) ---------------------------------------------
Цитата _miflin ( ) Не лучше ли модуль напряженности электростатического поля отображать толщиной силовой линии? Я думаю, что не лучше. Причин минимум две. 1. Привыкли к густоте. Но это мелочи. 2. Программно осуществить изменение толщины существенно сложнее. Но и это не главное. Главное - баланс, о котором Вы уже писали. На кладбище работы прибавится...
02.02.2014
|
|
|
| |
|
_miflin | Дата: Воскресенье, 02.02.2014, 15:15 | Сообщение # 15 |
_miflin
Ранг: Дошколенок (?)
Группа: Зарегистрированные
|
Сообщений: |
4 |
Награды: |
0 |
Статус: |
Offline |
|
Цитата Александр_Игрицкий ( ) Я не могу согласиться с тем, что число выходящих-входящих силовых линий определяется удобствами программиста, а не физическими соображениями. Цитата Александр_Игрицкий ( ) Программно осуществить изменение толщины существенно сложнее. А как сделать, подскажите - "и рыбку съесть" и "программиста не напрячь"? Мне в своё время приходилось программировать разнообразные задачи, в том числе и с графической визуализацией, и проблемы с "изменение толщины" не вижу никакой. Ну абсолютно. Может автор темы скажет по этому поводу...
02.02.2014
|
|
|
| |
|