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, Супермодераторы



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

Сейчас этот форум просматривают: peg59


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

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