Полезное

Численные методы решения уравнений в среде MatLab

Доброго времени суток! В этом посте я расскажу о численных методах решения уравнений, что очень удобно для их расчёта на компьютере. Приведу 3 вида и 3 примера кода, для каждого вида соответственно, а также расскажу о предостерегающих трудностях и путях их решения.

Иногда нам приходится решать уравнения, кому-то по работе, а кому-то понадобилась для домашних нужд — назовём это так. В школе нас учили, что для решения уравнения, необходимо выразить искомую переменную и тогда мы получим символьное решение уравнения, а если вместо букв поставить числа, то получим численное решение того или иного уравнения. Однако, бывают такие уравнения, в которых нельзя явно выразить искомую переменную, например, уравнение ниже.

Доброго времени суток! В этом посте я расскажу о численных методах решения уравнений, что очень удобно для их расчёта на компьютере. Приведу 3 вида и 3 примера кода, для каждого вида соответственно, а также расскажу о предостерегающих трудностях и путях их решения.

Иногда нам приходится решать уравнения, кому-то по работе, а кому-то понадобилась для домашних нужд — назовём это так. В школе нас учили, что для решения уравнения, необходимо выразить искомую переменную и тогда мы получим символьное решение уравнения, а если вместо букв поставить числа, то получим численное решение того или иного уравнения. Однако, бывают такие уравнения, в которых нельзя явно выразить искомую переменную, например, уравнение ниже.

sin(x)tg(x)ln(x)=4

 Решать такие уравнения приходиться численно, то есть получая ответ в виде числа, а если вам нужна зависимость, то придётся задать диапазон начальных условий и получить, соответственно, диапазон значений искомого параметра.  Предлагаю вам ознакомиться с моей презентацией, а после чего прочитать комментарии и пояснения к ней ниже. Также, в конце записи я опубликовал листинги программ для расчёта указанными методами в среде MatLab.

При решении уравнений 2 или 3 типа, может возникнуть ситуация , когда из большого шага между двумя значениями x и(или) y, мы можем не достичь требуемой точности и тогда результат будет не предсказуем. Для избежания таких случаев предлагаю использовать не сравнение результата с заданным уровнем точности, а сравнение точностей для каждого значения переменной и выбор значения с наибольшей точностью. Подробнее  расскажу на примере кода. Рекомендую использовать следующей алгоритм действий для уравнений типа f(x)=const:

  1. разбиваете заданный диапазон значений на n равных интервалов и получаете n+1 значений x
  2. решаете уравнение для каждого значения х
  3. выбираете то значение хi, при котором точность максимальна.
  4. из п. 3 следует, что точное решение находится между хi-1 и хi+1. Устанавливаете новый диапазон значений для x от хi-1 до хi+1 , сохраняя то же число интервалов.
  5. Вновь расчитываете уравнение для нового интервала с новым шагом
  6. Повторяете указанные действия до тех пор, пока интервал значений х не будет достаточно мал, чтобы получить требуемую точность вычислений.

Аналогичный алгоритм, лишь с некоторым поправками, можно использовать и для решения уравнений вида f(x,y)=y.

Листинг программы для решения уравнений вида f(x)=x в среде MatLab

Если кому интересно, то ниже производится решение следующего уравнения относительно γ.
dispersionnoe_sootnoshenie
[code lang=»matlab» collapse=»false»]% Задаём исходные данные
lamda=632.8*10^-9; % Длина волны излучения
k0=2*pi/lamda; % Расчитвыаем волновое число
d2=1*10^-6; % Толщина волноводного слоя
n1=1.335; % Показатель преломления чистого полимера
n2=1.7476; % Показатель преломления подложки CTK19
n3=1; % Показатель преломления среды — воздух

eps=10^-6; % Задаём точность
gamma_cp=1.3; % Задаём приближённое значение
razn=1; % Задаём начальное значение разности x(i+1)-x(i). Значение должно быть заведомо больше eps.
i=0; % Зададим начальное значение счётчика итераций.
% Зададим уравнение как функцию g(d2,gamma_cp,k0,n1,n2,n3), где все аргументы, кроме gamma_cp являются константами, т.е. по сути g(gamma_cp)=gammka_cp.
g=inline(‘sqrt(n2^2-((atan(sqrt((gamma_m^2-n1^2)/(n2^2-gamma_m^2)))+atan(sqrt((gamma_m^2-n3^2)/(n2^2-gamma_m^2))))/(k0*d2))^2)’);
// начинаем циклический подсчёт
while(razn>eps) { % выполняем цикл пока не достигнем требуемой точности
i=i+1; % увеличиваем на единицу количество выполненых итераций
gamma_temp=g(d2,gamma_cp,k0,n1,n2,n3); % расчитываем итерацию
razn=abs(gamma_temp-gamma_cp); % расчитываем погрешность
gamma_cp=gamma_temp; % Устанавливаем результат данной итерации как приближённое значение искомой переменной gamma_cp
}
gamma_cp % Выводим на экран результат вычислений
i % Выводим на экран количество пройденых итераций
[/code]

Листинг программы для решения уравнений вида f(x,y)=y в среде MatLab

Этот код решает следующее уравнение относительно θ. eff_refractive_index
[code lang=»matlab»]
gamma=[1:0.0001:1.33]; % Задаём диапазон значений гаммы
for i=[1:length(gamma)] % Выполняем тело цикла для каждого значения гаммы от первого до последнего
% Задаём вспомогательные и служебные переменные
razn=100;
tetz=0;
raz=100;
run=1;
teta_n=61.6*pi/180; % Задаём начальное значение угла (определено приближениями)
% Высчитываем значение с точностью до 1/10 угловой секунды
while(run)
teta_n=teta_n+pi/(180*60*60*10);
razn=abs(gamma(i)-np*sin(beta+asin(sin(teta_n)/np)));
% Если текущее значение имеет более высокую точность, чем предыдущее, то записываем это значение и его погрешность.
if razn<raz
tetz=teta_n;
raz=razn;
end
% Прерываем расчёт при угле больше 61,7 градусов, т.к. за пределами указанного диапазона (61.6-61.7) решений нет
if teta_n>=(61.7*pi/180)
run=0;
end
end
teta_m(i)=tetz*180/pi; % Переводим результат в градусы и записываем в массив ответов
end
[/code]
На выходе данной программы получаем массив значений угла θ. Границы диапазона θ от 61.7 до 61.8 найдены путём последовательных приближений. Сначала уравнение решалось для всех гамма в пределах угла от 1 до 90 с шагом в 1 градус, затем диапазон сужался по тому же принципу, что и в случае с предыдущем кодом, и действия повторялись до достижения требуемой точности.

Если у вас есть какие-либо вопросы, замечания или предложения, то их в комментариях к данному посту! Удачных вам математических расчётов! До скорых встреч!

Полезное

Бесплатная легальная музыка в Интернет

Здравствуйте! Сегодня в мире не существует человека, который пользуясь Интернет, ни разу не использовал какие-либо произведения искусства нелегально. На это есть множество причин и я не буду обвинять или оправдывать таких людей (думаю, что тут можно смело сказать — Нас). Кто-то «берёт» пиратский контент просто потому, что можно получить бесплатно то, что обычно стоит денег. Кто-то предпочитает использовать только то, что он легально получил (купил), и почти не использовать пиратский контент. Ну а кто-то зашёл ещё дальше и использует только свободный контент, который изначально распространяется бесплатно и создаётся, иногда, абсолютно бесплатно на одной лишь инициативе. Скажу сразу: этот пост никак не затрагивает юридическую или моральную сторону авторского права.

Всё больше и больше копирастии вырастает вокруг нас. Она появляется даже там, где раньше мы её даже представить не могли, поэтому даже заядлые «пираты» рано или поздно должны будут задуматься, как им дальше быть и что делать. Несколько лет назад, всеми известный Youtube ввёл систему, которая отслеживает использование в загружаемом вами видео материалов, принадлежащих третьей стороне. Для бизнеса это конечно хорошо, но для искусства — ничего хорошего!

Постоянные посетители и частые гости моего блога знают, что время от времени я путешествую по различного рода историческим и просто красивым местам родного края или даже региона, например, моя поездка в Выборг. Обо всех своих поездках я рассказываю в блоге, где же делюсь фотографиями, а с лета 2011 ещё и видео-роликами, целью которых, я считаю, заинтересовать Вас тоже посетить эти места, или вообще совершить поездку куда-либо по окрестным местам своего места жительства. Чтобы не утомлять пользователя и просто для придания видеоролику хорошего вида, я всегда использую фоновую музыку. Здесь меня и ждала проблема чужих произведений. К счастью, при закачке своих видео на Youtube, я получил лишь рекламу внутри видео и запрещение показа моих видеозаписей (с учётом географии и целевой аудитории — запрет просмотра в Германии мне не повредит), вместо полного удаления звуковой дорожки.

Ютьюб «пометил» с 8 из 29 моих видео. В конце концов я задумался — а можно ли продолжать делать видео также, как я делал это ранее, но не нарушая чьих то прав? Ведь делают же зарубежные пользователи множество видео с музыкой и ничего не нарушают? Ответ на этот вопрос я нашёл достаточно быстро — нужно искать музыку, распространяющуюся по свободной лицензии Creative Commons. И оказалось, что существуют огромные архивы такой музыки, различных стилей и направлений, и вся она доступна для скачки абсолютно бесплатно. Именно такую музыку я использовал в своём последнем видеоролике из путешествия в Псков и ютьюб принял такое видео без каких-либо вмешательств. Я был рад тому, что «обрёл свободу» в ещё одном виде деятельности.

Вот список некоторых крупнейших архивов Creative Common музыки:

Этого списка вам хватит вполне, даже первых двух ссылок, скорее всего, Вам будет предостаточно. Надеюсь, что мой длинный пост поможет и Вам, избавиться от использования нелегальной музыки в своём творчестве. Расскажите о данном списке своим друзьям, не поленитесь, поделитесь ссылкой на эту статью. ;-) Удачи!

JavaScript и jQuery, Полезное

Как вставить яндекс карты на сайт

Как вставить яндекс карты на сайт Доброго времени суток! В прошлой статье я поведал о том, как генерировать YMapsML файл с гео-данными для яндекс карт. Однако, не все имеют опыт работы с яндекс картами, поэтому сегодняшний пост я посвящу тому, как вставить карты на свой сайт, то есть, для тех кто никогда не работал с API ЯК.

(далее…)

Полезное

Думай о других!

Несколько месяцев назад, когда свободного времени было больше, чем сейчас , я получил очередной заказ html-вёрстки одного макета в формате PSD. Однако, макет оказался ужасным.

Я сам не дизайнер и судить других дизайнеров не собираюсь, а тем более не обсуждаю дизайн заказчиков. А что же тогда было столь ужасного в этом макете? Его устройство! Посмотрите сами, как были организованы слои. Названия некоторых слоёв вообще написанны на Китайском языке — тут дизайнер отжог.
(далее…)

Полезное

Переносим настройки Mozilla, делаем бэкап.

Давно не писал я в блог. Последний пост был написан аж 9 дней назад. Учёба съела моё время, а затем ещё и фриланс помог ей. :mrgreen: С учёбой я уже разобрался, теперь буду чаще писать новые посты в блог. Даже писать разучился за это время. Прочитал предыдущие предложения и не фига сам не понял.

Вчера я наконец-то решился поставить  Windows 7 и получил новые проблемы. Сначала драйвера не подходили, хотя на сайте производителя чётко было написанно «для вин 7 ульимэйт 32бит», затем были проблемы с устаноквой ПО, а потом с его настройкой. Просидев много времени за компьютером, удалось уладить проблему совместимости драйверов и ПО, но вновь выполнять настройку ПО (Mozilla Thunderbird и Firefox) мне не хотелось. Тогда я стал искать решение.

Поскольку моим браузером и почтовым клиентом по умолчанию являются Mozilla Firefox и Mozilla Thunderbird соответственно, то в эти программы очень хорошо «заточены» под меня. Если в Firefox можно экспортировать закладки и т.д., а затем импортировать их на другом компьютере или ОС, то Thunderbird не предоставляет ни каких возможностей экспорта\импорта, что делает невозможным простой перенос настроек. Однако, не всё так страшно. На помощь приходит небольшая программка — MozBackup, которая позволяет экспортировать и импортировать все настройки любого продукта Mozilla (и не только Mozilla) и очень гибко настраивается.

Программа позволяет импортировать и экспортировать множество настроек. Если взять как пример браузер Firefox, то MozBackup позволяет перенести от сохранённых паролей и файлов куки, до плагинов и их настроек. Проще говоря — очень удобная программа. Благодаря ей, я смог побороть в себе фобию настройки Thunderbird. :mrgreen:

JavaScript и jQuery, Полезное

Шпаргалка по Jquery

Шпаргалка по Jquery Очень полезная шпаргалка по jQuery для дизайнеров и кодеров на 6 страницах. Она содержит полное описание jQuery API с подробным описанием, а некоторые элементы содержат примеры кода. Простое оформление шпаргалки позволяет быстро найти всё, что вам необходимо. Шпаргалки представлены ниже, все картинки кликабельны.

Я распечатал эту шпаргалку и буду держать её «под рукой», что поможет мне в изучении jQuery. Рекомендую сделать тоже самое вам, если вы заинтересованы в этом.

Antonio Lupetti.

Полезное

Хитрость: Как быстрее «прикручивать» домены?

Здравствуйте. Сегодня я расскажу об одном способе, который я не давно для себя открыл, благодаря которым ДНС записи о доменах обновляются быстрее, в следствии чего ваш домен начнёт работать раньше. Ни для кого не секрет, что каждый день регистрируется множество доменных имён. Кто-то регистрирует 1-2 домена в год, для своих блогов, а кто-то регистрирует «пачками» по 10-100 доменов, а то и больше. Ладно, а вот и сама хитрость.
(далее…)

Полезное

Убираем визуальные закладки Яндекс в Firefox 3.5 и выше

Здравствуйте уважаемые зрители. Добро пожаловать на шоу волшебника. :mrgreen: Решил написать очередную статью про очищение firefox от назойливой фигни. Да, именно так я называю яндекс. Всё началось с обновления яндекс.бара, я его обновил, перезапустил браузер и увидел, что при открытии новой пустой вкладки, у меня не белый лист, а поиск от яндекса и 9 последних посещённых сатйов (визуальные закладки). Прямо точная копия стартовой страницы Google Chrome, только наверху около поля для поиска красуется не Google, а Яндекс. Это меня слегка разозлило т.к. отключить эту хрень конечно нельзя, а назойливых людей, который силой пихают всякую абсолютно НЕ нужную фигню лишь бы сделать вид, что они что-то делают. Итак, начнём убирать визуальные закладки Яндекс в Firefox 3.5?

Короче, я опять стал искать решение этой проблемы, в прямом смысле этого слова. Искал я, искал и нашёл аж целых 3 выхода. Первый, самый простой, удалить или отключить яндекс.бар, но он мне не подходит т.к. иногда приходится смотреть ТиЦ того или иного сайта, а там его можно быстро посмотреть. Второй способ, чуть-чуть по сложнее и не хороший, хотя он единственный в своём роде, но с ним справиться любой, — этот способ позволяет избавиться от визуальных закладок яндекса, но оставить яндекс.бар.  С первым способом мы уже разобрались, а кто не знает, как отключить плагин, то отправляйтесь в меню «Инструменты», затем «Дополнения», там в списке находите «яндекс.бар» и отключаете его или удаляете. Перейдём ко второму способу. Отправляемся туда же, куда и в первом способе но только вместо кнопок «отключить» или «удалить» мы нажимаем кнопку «Настройки». На самой первой вкладке «Поведение», в самом низу, отключаем галочку рядом с надписью «Показывать визуальные закладки при открытии новой вкладки или окна», затем нажимаем «ок».  Всё, мы избавились от визуальных закладок яндекса. Теперь запускаете браузер и нажимаете «Ctrl+T» и не каких визуальных закладок больше нет. Аплодисменты и цветы летят в мою сторону, а низкие поклоны расходятся от меня к зрителям, но тут зрители вспомнинают о третьем способе, о котором я говорил, но так и не показал. Третий способ — это изменение программного кода «яндекс.бар», но этот способ я оставлю в тайне. Во-первых эффект будет такой-же, как и от второго способа, а во-вторых, изменив программный код, вы нарушаете соглашения, с которым сами же согласились при установке «яндекс.бар». Нарушение соглашения, может привести к ответственности, в том числе и уголовной, а я не хочу подвергать своих читателей такой «опасности».

Полезное

Возвращаем поиск Google в Firefox

Возвращаем поиск google в Firefox 3.5

Добавлено: способ работает во всех следующих версиях Firefox начиная с 3.5

Как вам, наверное, уже известно — 30 июня 2009 года Mozilla Foundation выпустила новую версию быстро набирающего популярность браузера — Firefox 3.5 Сегодня утром, я скачал с официального сайта русскую версию firefox 3.5, установил, и после установки сразу-же заметил что что-то не так, как было раньше. О_о На домашней страничке Firefox , где поиск в интернет в форме Firefox, был логотип Яндекса, вместо привычного Google. У меня сразу возник вопрос: «Как вернуть поиск Google в Firefox 3.5?«.

(далее…)

Полезное

Убираем видео-рекламу в ЖЖ

Логотипа Live Journal Live Journal — самый популярный блог-сервис в рунете. Многие из вас имеют или имели там блог. Я не исключение, ссылка в конце поста. Не забываем френдиться. Однако, в последнее время, в Живом Журнале (далее ЖЖ) стало появляться множество рекламы. Кроме платных аккаунтов, ЖЖ решил монетизировать себя с помощью рекламы размещаемой в наших блогах. Но я нашёл способ, как избавиться от видео-рекламы. Избавиться от рекламы в вашем журнале не получиться, но как отключить её показ, я вас научу. Только безлимитчикам на это будет пофигу, а вот если у вас платный трафик или вас просто запарила данная реклама, то этот пост для вас.

(далее…)