Физико-математический пакет “Граф ”

Автор работы: Пользователь скрыл имя, 12 Марта 2013 в 14:28, реферат

Описание работы

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

Содержание работы

Введение ………………………………………………………………………………..3
Раздел 1. Физико-математический пакет «Граф»
1.1. Базовые функции………………………………………………………………..4
1.2. Дополнительные функции………………………………………………….......6
1.3. Работа с комплексными числами…………………………………………..…..7
1.4. Графики функций……………………………………………………………….8
1.5. Параметры……………………………………………………………………….9
1.6. Функции комплексного переменного………………………………………..14
1.7. Несколько графиков, отличающихся параметром, на одном поле………...15
1.8. Анимация………………………………………………………………………16
1.9. Преобразование 3D координат……………………………………………….17
1.10. Несколько разных функций на одном поле………………………………...19
1.11. Построение кривых и фигур по точкам…………………………………….19
1.12. Построение прямой y=a+bx методом наименьших квадратов……………21
1.13. Функции двух переменных………………………………………………….22
Раздел 2. Примеры построения графиков при помощи "Граф"
2.1. RLC-фильтр……………………………………………………………………24
2.2. Эллиптическая орбита с эксцентриситетом 0.8……………………………..24
2.3. Фигуры Лиссажу………………………………………………………………25
2.4. АМ и FM гармонические сигналы …………………………………………...25
2.5. Резонанс тока в последовательном колебательном контуре………………..26
2.6. Интерферометр Фабри-Перо……………………………………………….…28
2.7. Распределение Планка………………………………………………………...29
2.8. Пример (Бруоновское движение частицы)…………………………………..30
2.9. Пример (Вращение сферы)…………………………………………………....31
Заключение……………………………………………………………………………32
Список литературы…………………………………………………………………..33

Файлы: 1 файл

Kursovaya_rabota17.doc

— 3.27 Мб (Скачать файл)

Алгоритм таков: Если в строчке нет знака равенства =, то смотрится есть ли там символ x. Если x есть, то нужно строить график функции, если нет, то вычислить число и показать его. Также смотрятся все остальные строчки, в которых содержится знак равенства. Ecли это например g(t)=.., то g - функция, t - переменная. Если f=.., то в строчке записана функция. Если это например с=5, то с - константа, а 5 - её значение. Также проверяется наличие x во всех остальных строчках. Если есть, то нужно строить график функции. В общем легче смотреть на примерах. В любом случае зарезервированы буквы f под функцию, a x под её аргумент (переменную). Как функция, так и её аргумент могут быть вещественными или комплексными. Если значение функции комплексно, то по вертикальной оси откладывается мнимое значение функции, а по горизонтальной - вещественное. При этом x линейно меняется от xmin до xmax. Как xmin, так и xmax могут тоже быть комплексными. Если строится комплексная функция, то левый нижний угол задаётся как комплексное fmin, а верхний правый угол - комплексное fmax. Если fmin или fmax отсутствует, то они вычисляются автоматически. Также для задания масштаба по вертикали можно использовать ymin и ymax. Есть 2 режима масштабирования комплексной функции ratio=0 или 1. Если ratio=0, то функция растягивается по горизонтали и вертикали до fmin, fmax. Если ratio=1, то масштабы по осям одинаковые и fmin и fmax выбираются автоматически (ввод не действует), чтобы отобразить всю функцию. Если у вас две функции одного переменного (например f и g) и вы хотите нарисовать их в осях XY, то выводите как cplx(f,g), или как f+i*g, или как  (f,g). Название функций и из аргумента могут быть любыми.

1.5. Параметры.

Все параметры и их значения по умолчанию приведены  в таблице 4.

 

Таблица 4. Параметры и их значения по умолчанию

Параметр

Значение по умолчанию

Пояснения

xmin

xmin=0

Минимальное значение аргумента. В случае комплексной функции  также может быть комплексным.

xmax

xmax=2*pi

Максимальное значение аргумента. В случае комплексной функции также может быть комплексным.

fmin

вычисляется

Минимальное значение функции. При отсутствии вычисляется. В случае, если функция комплексная, то fmin также должна быть комплексной. В этом случае fmin задаёт левый нижний угол графика.

fmax

вычисляется

Максимальное значение функции. При отсутствии вычисляется. В случае, если функция комплексная, то fmax также должна быть комплексной. В этом случае fmax задаёт правый верхний  угол графика.

ymin

вычисляется

Минимальное значение по координате Y. Используется при построении кривой по точкам, а также может заменить fmin для задания масштаба по вертикали.

ymax

вычисляется

Максимальное значение по координате Y. Используется при построении кривой по точкам, а также может заменить fmax для задания масштаба по вертикали.

points

points=100

Количество точек по которым строится каждый график функции. Чем больше points, тем более гладкая  кривая. но тем больше времени требуется  для её расчёта. Если points велико, то отведённого на сервере лимита времени  может не хватить для выполнения скрипта и возникнет ошибка. В этом случае уменьшите количество точек.

fbox

fbox=1

Параметр fbox может принимать  значение 0 или 1. Если fbox=0, то рамка графика  не строится. Если fbox=1, то рамка строится. По умолчанию рамка строится.

spline

spline=0

Этот параметр может  принимать два значения 0 и 1. Если spline=0, то график строится отрезками  прямых. Если spline=1, то график строится параболами. В некоторых случаях  это может быть использовано для  получения более гладкой кривой при небольшом количестве точек. С другой стороны это увеличивает время расчёта.

ratio

ratio=0

Если строится комплексная  функция, то она автоматически растягивается  до границ отображаемого прямоугольника (ratio=0). В некоторых случаях это  может быть неудобным, так как нарушает пропорции между действительной и мнимой частью функции.

 

Например, если мы хотим  построить график функции exp(i*x), то ожидаем  увидеть окружность, а не эллипс. В этом случае используйте ratio=1.

 

Масштаб по обоим осям будет одинаковым, а график растянется автоматически по одному направлению (исходя из пропорций графика и окна отображения).

nmax

nmax=1

При построении на одном  поле нескольких функций отличающихся одним параметром nmax задаёт максимальное количество графиков на поле. При этом переменная n будет меняться от 0 до nmax-1.

n

-

Если задано nmax, то переменная n  меняется от 0 до nmax-1.

roots

roots=1

Параметр roots может принимать  два значения 0 и 1.  Если roots=0, то корни уравнения f(x)=0 не вычисляются. Если roots=1, то корни вычисляются. По умолчанию корни вычисляются. Если имеется несколько функций, то корни вычисляются у главной (без цифровых индексов).

width

width=300

Ширина окна в пикселях.

height

height=200

Высота окна в пикселях.

animated(time,transparent)

animated(0,0)

Задаёт построение GIF анимации. Каждый кадр отличается параметром n. Поэтому также необходимо указать nmax. time задаёт время между кадрами  анимации в миллисекундах. time=0 задаёт максимальную скорость смены кадров анимации. transparent=1 задаёт прозрачный фон. В этом случае кривые накладываются друг на друга. чтобы получить анимацию параметр animated должен быть установлен в 0.

Относящееся только к построению по точкам

begin

-

Начало массива точек.

end

-

Конец массива точек

polygon

-

Построение по точкам фигуры с заливкой. Идёт сразу после begin.

polyline

включён

Построение кривой по точкам фигуры без заливки. Идёт сразу  после begin. Используется по умолчанию.

stat

-

Построение наилучшей  прямой методом наименьших квадратов. Идёт сразу после begin.

points

включён

Если идёт сразу после begin, то помимо кривой (прямой, залитой  фигуры) отображаются точки, по которым  они были построены.

inv

-

При наличие inv в любом месте кода не показываются точки с z<0


 

Пример 1:

xmin=0 %% Минимальное значение аргумента (по умолчанию xmin=0) 
xmax=5 %% Максимальное значение аргумента (по умолчанию xmax=2*pi) 
fmin=-2 %% Минимальное значение функции (если пусто, то вычисляется) 
fmax=10 %% Максимальное значение функции (если пусто, то вычисляется) 
points=50 %% Количество точек на кривой (по умолчанию - 100) 
width=400 %% Ширина рисунка в пикселях (по умолчанию - 300) 
height=200 %% Высота рисунка в пикселях (по умолчанию - 200) 
fbox=1 %% Наличие внешней рамки (по умолчанию - 1, т.е. присутствует) 
a=x^4 %% Вспомогательная функция 
b=10*x^3 %% Вспомогательная функция 
c=35*x^2 %% Вспомогательная функция 
d=50*x %% Вспомогательная функция 
e=24 %% Вспомогательная функция 
a-b+c-d+e %% Уравнение функции 
 
f=a-b+c-d+e; xmin=0, xmax=5 
fmin=-2, fmax=10 пример на (рис.2) 

 Рис. 2 f=a-b+c-d+e с параметрами xmin=0, xmax=5 fmin=-2, fmax=10

 
Корни: 1; 2; 3; 4

Пример 2: 
 
f=sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(x))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 
xmin=0, xmax=6.28; fmin=-0.215, fmax=0.215 
 
Корни: 0; 3.14159265358979; 6.28318530717959

Пример 3: 
 
fbox=0; width=700; points=500; roots=0 
sin(6*sin(5*x)) 
 
f=sin(6*sin(5*x)); xmin=0, xmax=6.28, fmin=-0.997, fmax=0.9967 (рис.3) 
 
                                Рис. 3 функция f=sin(6*sin(5*x)); с параметрами xmin=0, xmax=6.28, fmin=-0.997, fmax=0.9967

 

Пример 4: 
Затухающие гармонические колебания.

xmax=4*pi; ratio=1 
exp(-0.5*x)*exp(i*x)  
 
f=exp(-0.5*x)*exp(i*x); xmin=0, xmax=12.566 
fmin=(-0.234 + i*-0.207); fmax=(1 + i*0.615) (рис.4) 

          Рис. 4 функция f=exp(-0.5*x)*exp(i*x); с параметрами xmin=0, xmax=12.566

1.6. Функции комплексного переменного.

Можно также строить  графики комплексных функций  от комплексной переменной. Пусть, например, x меняется от i до 1. Найдём как выглядит функция x^n для нескольких произвольных n. Результат ниже.

f=x; xmin=i, xmax=1, fmin=(-1 + i*-1), fmax=(1 + i*1)  (Рис.5.1)

f=x**2; xmin=i, xmax=1, fmin=(-1 + i*-1), fmax=(1 + i*1) (Рис.5.2)

f=x**3; xmin=i, xmax=1, fmin=(-1 + i*-1), fmax=(1 + i*1) (Рис.5.3)

f=x**4; xmin=i, xmax=1, fmin=(-1 + i*-1), fmax=(1 + i*1) (Рис.5.4)

f=x**9; xmin=I, xmax=1, fmin=(-1 + i*-1), fmax=(1 + i*1) (Рис.5.5)

f=0.5*(1-x**2); xmin=1, xmax=-1, fmin=-1, fmax=1 (Рис.5.6)

             Рис.5.1 функция f=x        Рис.5.2 функция f=x**2                      Рис.5.3 функция f=x**3

            Рис.5.4 функция f=x**4    Рис.5.5 функция f=x**9           Рис.5.6 функция f=0.5*(1-x**2)

 

xmin=i; xmax=1; fmin=-1-i; fmax=1+i;  
roots=0; points=2; width=200 
x

Проверка для f=x^2: x=t+i*(1-t), где t=0..1 
f=x^2=(2t-1)+i*2t(1-t) 
Re(f)=2t-1; Im(f)=2t(1-t)

 
   Нетрудно видеть, что Im(f)=0.5(1-Re(f)^2) Т.е. если построить эту зависимость в координатах XY, то это будет y=0.5(1-x^2), x=-1..1. Построим эту функцию и видим что получили то же самое, что и для комплексного представления.

1.7. Несколько графиков, отличающихся параметром, на одном поле.

 

Следующий пример демонстрирует  построения графиков, отличающихся параметром n. Задано максимальное количество графиков на одном поле (nmax=5). При этом переменная n меняется от 0 до nmax-1.(рис.6)

 
roots=0; nmax=25 
a=(n+1)/nmax 
xmin=-pi  
xmax=pi 
f=a*(sin(2*x))*1/(x)+0.3*(cos(2*x))

f=a*(sin(2*x))*1/(x)+0.3*(cos(2*x));  
xmin=-3.14, xmax=3.14, fmin=-0.574, fmax=2.3

 
       

 

                                     Рис. 6 построения графиков, отличающихся параметром n.

 

1.8. Анимация.

Для анимации графиков используется функция animated(time,transparent). Построенное изображение сохраняется в файл изображения формата Animated GIF. Параметр time задаёт задержку между кадрами в миллисекундах. Параметр transparent может принимать два значения - 1 и 0. Если 1, то устанавливается прозрачный фон и видны все построенные графики. Если 0, то фон белый и кадры последовательно заменяют друг друга. Графики на разных кадрах анимации отличаются параметром n, который изменяется от 0 до nmax-1.(рис.7)

 

nmax=20; animated 
fi=2*pi*n/nmax 
a1=sin(x) 
a2=sin(2*x+fi)  
f=(a1,a2)

 

XY=cplx(a1,a2); xmin=0, xmax=6.283 
fmin=(-1 + i*-1 ), fmax=( 1 + i*1 )

    Рис. 7  функция  XY=cplx(a1,a2) с анимацией

 

Точки и построенные  по ним кривые графики также могут  быть преобразованы в GIF анимацию с  меняющимся параметром n.

В примере ниже строится наилучшая прямая по точкам, к координатам  которых посредством функции rand добавлена случайная величина, имитирующая  погрешность измерения.(рис.8)

nmax=50; animated(10,0) 
begin stat points 
0 0; 1 1; 2 2; 3 3; 4 4;  
5 5; 6 6; 7 7; 8 8; 9 9 
end 
x=x+rand 
y=y+rand

xmin=0.018121094411935, xmax=9.96057783549489 
fmin=0.00498491452561467, fmax=9.94779613951097

                             Рис. 8   Наилучшая прямая по точкам

1.9. Преобразование 3D координат.

 

Имеются следующие 3D функции преобразования координат :

 ($rho, $theta, $z) = cartesian_to_cylindrical($x, $y, $z); 
($rho, $theta, $phi) = cartesian_to_spherical($x, $y, $z); 
($x, $y, $z) = cylindrical_to_cartesian($rho, $theta, $z); 
($rho_s, $theta, $phi) = cylindrical_to_spherical($rho_c, $theta, $z); 
($x, $y, $z) = spherical_to_cartesian($rho, $theta, $phi); 
($rho_c, $theta, $z) = spherical_to_cylindrical($rho_s, $theta, $phi);  

В следующем примере  используется функция преобразования 
сферических координат в декартовы. (рис.9)

animated(10,0) 
roots=0; nmax=10; points=50; width=200 
R=1 
THETA=pi*n/nmax 
PHI=x 
(X,Y,Z)=spherical_to_cartesian(R,THETA,PHI) 
f=(X,Z)

 

Рис. 9   функция преобразования сферических координат в декартовы

       

f=cplx(X,Z); xmin=0, xmax=6.28318530717959 
fmin=(-0.998 + i*-1 ), fmax=( 0.998 + i*1 )

Преобразование вращения в декартовых координатах

nmax=50; animated(10,0) 
width=200  
xmin=-2; xmax=2 
ymin=-2; ymax=2 
begin 
 1  1  1 
 1 -1  1 
-1 -1  1  
-1  1  1 
 1  1  1 
 1 -1  1 
 1 -1 -1 
 1  1 -1 
 1  1  1 
 1  1 -1 
 1 -1 -1 
-1 -1 -1 
-1  1 -1  
 1  1 -1 
-1  1 -1 
-1 -1 -1 
-1 -1  1 
-1  1  1  
-1  1 -1 
end 
(x,y,z)=rotate(x,y,z,pi/10,pi/10) 
(x,y,z)=y_rotate(x,y,z,2*n*pi/50)

Функции вращения в декартовых координатах: 
 
    (x,y,z)=rotate(x,y,z,φ,θ) 
    (x,y,z)=x_rotate(x,y,z,φ) 
    (x,y,z)=y_rotate(x,y,z,φ) 
    (x,y,z)=z_rotate(x,y,z,φ) 

xmin=-2, xmax=2, fmin=-2, fmax=2

1.10. Несколько разных функций на одном поле.

 

Основная функция f должна быть без номера. Остальные функции  должны начинаться с той же буквы f, а затем идут произвольные числовые номера. Если основная функция переопределена как например g(t)=..., то остальные должны быть g1=.., g2=.., g101=.. и т.д. При этом дополнительные функции тоже будут иметь в качестве аргумента переменную t. Корни вычисляются только у основной функции. Цвет каждой кривой задаётся как color0=.., color1=... Далее значение цвета покомпонентно (RGB) в шестнадцатиричном выражении. color0 задаёт цвет графика основной функции. Если значение цвета не пишется, то по умолчанию выбирается тёмно-синий цвет кривой.(рис.10)

 

points=50; width=200; roots=0 
f=exp(i*x); color0=0000FF 
f1=0.3*exp(i*x); color1=FF0000 
f2=sin(2*x)*exp(i*x); color2=00AA00

 

f=exp(i*x); xmin=0, xmax=6.28318530717959 
fmin=(-1 + i*-0.998 ), fmax=( 1 + i*0.998 )

 

          Рис. 10 Несколько разных функций  на одном поле

                               

1.11. Построение кривых и фигур по точкам

 

Линии и закрашенные  фигуры можно строить по точкам. Массив точек задаётся в столбик через пробел. Начинается с заголовка begin и заканчивается end. Можно строить несколько линий на одном поле. Линия – polyline или пусто. Закрашенная фигура – polygon. Цвет: black, white, red, green, blue и darkblue (по умолчанию). xmin ,xmax,ymin,ymax задают рамку. В случае polyline иногда полезно использовать spline=1. В этом случае кривая строится не отрезками линии, а параболами (см. нижний пример).

 

В этом примере строится 3 фигуры: две закрашенные (polygon) и одна незакрашенная (polyline).

begin polygon blue 
0 23 
 5 30 
 12 32 
 16 31 
 20 28 
 22 25 
 23 20 
 21 11 
 16 1 
 0 -17 
 -16 1 
 -21 11 
 -23 20 
 -22 25 
 -20 28 
 -16 31 
 -12 32 
 -5 30 
 0 23 
 5 30 
 end

begin polygon red 
 24 8 
 29 15 
 36 17 
 40 16 
 44 13 
 47 5 
 40 -14 
 24 -32 
 8 -14 
 3 -4 
 1 5 
 4 13 
 8 16 
 13 17 
 19 15 
 24 8 
 29 15 
 end

begin 
 -32 -6 
 -29 -2 
 -25 0 
 -19 -3 
 -17 -8 
 -19 -14 
 -22 -20 
 -32 -32 
 -43 -20 
 -46 -14 
 -47 -8 
 -45 -3 
 -40 0 
 -35 -2 
 -32 -6 
 -29 -2 
 end


 

xmin=-47, xmax=47, fmin=-32, fmax=32

 

В данном примере кривая построена по 3-м точкам, но не отрезками  прямой, а параболами. Это занимает несколько больше процессорного  времени, но делает строку запроса очень  компактной и в ряде случаев позволяет  хорошо сглаживать кривую при недостаточности точек.(рис.11)

begin 
spline=1 
0 5 
5 0 
0 -5

xmin=0, xmax=5, fmin=-5, fmax=5 
                                                                                                              

   Рис. 11 Кривая построена по 3-м точкам, но не отрезками прямой, а параболами. 

                   

Координаты точек могут  быть преобразованы по правилу: 
x = f(x); y= g(y); z=h(z) 
Например: x=x**2; y=log10(y); z=2*z;

1.12. Построение прямой y=a+bx методом наименьших квадратов.

Для построения прямой y=a+bx методом наименьших квадратов необходимо ввести свои данные (точки). Для этого можно использовать форму http://physics.nad.ru/stat.html. Данные вводятся в столбик парами x y через пробел между строками "begin stat points" и "end". Параметры width и height определяют размеры окна по горизонтали и вертикали. fbox=0 отключает отображение рамки и сетки графика. В результате работы скрипта отображается прямая y=a+bx, построенная методом наименьших квадратов, а также в текстовом виде значение коэффициентов a и b, а также их среднеквадратичные ошибки (стандартное отклонение)  ±a и ±b. Точки отображаются крестиками (размер крестика не имеет отношения к погрешностям). Красными крестиками отображаются выпадающие точки, для которых отклонение от прямой превышает 3σ. Чтобы задать масштаб по осям нужно написать минимальное и максимальное значение x и y в столбик или через точку с запятой: xmin=...; xmax=...; ymin=...; ymax=...; Если минимальные и максимальные значения x и y не заданы, то они вычисляются автоматически.

Если зависимость между x и y носит нелинейный характер, то это можно её можно "распрямить", используя функции преобразования координат x=f(x)  и y=g(y), которые помещаются внизу окна ввода. Пусть, например, известно, что зависимость между измеренными величинами x и y имеет вид y=kx(закон Стефана-Больцмана) и требуется найти значение коэффициентов k и n.Прологарифмируем уравнение и получим log10(y)=log10(k)+n*log10(x).  Записываем пары x y в столбик и внизу окна пишем функции преобразования x=log10(x); y=log10(y). В результате на графике получаем прямую с наклоном b=n, которая отсекает на оси y значение коэффициента a=log10(k).

Или другой пример. При небольших напряжениях на p-n переходе его сопротивление R будет постоянным и пропорциональным exp(eV/kT). Пусть измерена зависимость этого сопротивленияy=R от температуры x=T и требуется найти высоту потенциального барьера V p-n перехода. Вводим значения сопротивления и температуры в форму и записываем внизу преобразование x=1/x; y=ln(y). По наклону прямой находим V.

Информация о работе Физико-математический пакет “Граф ”