2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Как интерполировать коэфф.преломления от длины волны
Сообщение26.03.2010, 13:31 


10/07/09
49
Есть табличка, в которой указаны значения (комплексного) коэффициента преломления $n(\lambda)$ для конечного количества значений длины волны $\lambda$. Хочется использовать эту табличку для расчета зависимости отражательной способности от частоты. Для этого нужно уметь вычислять $n(\lambda)$ для всех $\lambda$, а не только для указанных в табличке, то есть интерполировать исходные данные. Как это проще всего сделать (программа пишется в Wolfram Mathematica 7)? Есть ли что-то не очень сложное и более хорошее, чем линейная интерполяция, подходящее для этого случая?

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

Привожу пример линейной интерполяции реальных данных (по горизонтали $\lambda$ в микронах, по вертикали --- вещественная часть коэффициента преломления теллурия). Данные взяты с http://luxpop.com/RefractiveIndexList.html.
Точки --- данные из таблички, линия --- их линейная интерполяция.
Изображение

 Профиль  
                  
 
 Re: Как интерполировать коэфф.преломления от длины волны
Сообщение26.03.2010, 22:59 
Аватара пользователя


05/08/09
1658
родом из детства
fiktor в сообщении #302642 писал(а):
(комплексного) коэффициента преломления

Для комплексной функции-комплексная плоскость, полярные координаты($r,\varphi$).

 Профиль  
                  
 
 Re: Как интерполировать коэфф.преломления от длины волны
Сообщение27.03.2010, 00:00 


10/07/09
49
В оптике для описания поглощающих веществ используется коэффициент поглощения $k(\lambda)$, а также комплексный коэффициент преломления $N(\lambda) = n(\lambda) + i k(\lambda)$. (Длина волны $\lambda$ при этом всегда вещественна и положительна)

Я хотел бы узнать, какой метод интерполяции этой функции $N(\lambda)$ используется: есть много программ, в которых используются какие-то (не знаю какие) методы интерполяции этой функции. Например, такой программой является программа FilmMgr, позволяющая подбирать пленки с заданным коэффициентом отражения/пропускания. Меня интересует, какой алгоритм там используется и/или какие алгоритмы логично использовать для этого типа задач.

Не думаю, что использование полярных координат здесь оправдано. Скорее, имеет смысл интерполировать функции $n(\lambda)$ и $k(\lambda)$ по отдельности. Это связано с тем, что часто коэффициент $k$ достигает очень больших значений (10-50) в тех точках, где $n(\lambda)$ меняется достаточно плавно.

Вопрос в том, какие алгоритмы интерполяции логично использовать для функций $n$ и $k$, принимающих вещественные значения.

 Профиль  
                  
 
 Re: Как интерполировать коэфф.преломления от длины волны
Сообщение27.03.2010, 00:03 
Аватара пользователя


28/06/08
1706
Цитата:
Как это проще всего сделать (программа пишется в Wolfram Mathematica 7)? Есть ли что-то не очень сложное и более хорошее, чем линейная интерполяция, подходящее для этого случая?

интерполировать нельзя,
лучше найдите коэффициенты Sellmeier, стандартный подход при определении кривой для показателя преломления.
http://en.wikipedia.org/wiki/Sellmeier_equation

комплексная часть `n` и действительная сязаны между собой через соотношение Kramers-Kronig
[url]http://en.wikipedia.org/wiki/Kramers–Kronig_relation[/url]
если эти отношения не вополнить то решение будет абсолютно неверное! это первое что вы должны учесть.

Осталось составить систему уравнений и найти неизвестные коэффициенты описывающие вашу кривую `n`

 Профиль  
                  
 
 Re: Как интерполировать коэфф.преломления от длины волны
Сообщение27.03.2010, 14:23 


10/07/09
49
Спасибо, Вы правы. Модель$$n^2(\lambda) = 1 
+ \frac{B_1 \lambda^2 }{ \lambda^2 - C_1}
+ \frac{B_2 \lambda^2 }{ \lambda^2 - C_2}
+ \frac{B_3 \lambda^2 }{ \lambda^2 - C_3},$$ и более общая модель с произвольным количеством слагаемых в правой части указанные в википедии дают хорошее приближение к исходным данным, если константам $C_i$ разрешить быть комплексными (с положительной вещественной частью). Кроме того, действительно, вещественная и мнимая части $n(\lambda)$ связаны. По крайней мере если с помощью этой формулы приблизить вещественную, то мнимые части (данных и приближения) также окажутся похожими. Буду думать, как написать программу, подбирающую количество слагаемых и коэффициенты $B_i, \text{Re}(C_i), \text{Im}(C_i)$.

 Профиль  
                  
 
 Re: Как интерполировать коэфф.преломления от длины волны
Сообщение27.03.2010, 20:53 
Аватара пользователя


28/06/08
1706
нужно посчитать действительную часть с помощью формулы Селмеера, получить кривую, а мнимую часть найти использую полученную кривую и формулы Крамера-Кронига.
Комплексная и действительная части связаны, если эту связь нарущить будет неверный ответ.

 Профиль  
                  
 
 Re: Как интерполировать коэфф.преломления от длины волны
Сообщение27.03.2010, 21:09 


10/07/09
49
Можно просто взять действительную и мнимую части от формулы Сельмеера (точнее от формулы, получающейся из нее взятием квадратного корня). Тогда формулы Крамера-Кронига будут выполнены автоматически.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: photon, whiterussian, profrotter, Jnrty, Aer, Парджеттер, Eule_A, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group