- •1. Теоретическое занятие
- •Компьютерная алгебра.
- •Использование систем компьютерной алгебры.
- •2. Практическое занятие
- •Лабораторная работа 1.
- •Разложение в ряд Тейлора
- •Лабораторная работа 2
- •Сходимость ряда Тейлора
- •Лабораторная работа 3
- •Вычисление интегралов
- •3. Практическое занятие
- •Лабораторная работа 4
- •Метод наименьших квадратов
- •Лабораторная работа 5
- •Быстрое преобразование Фурье
- •4 Практическое занятие
- •Задачи:
- •Литература
> with(plots): display3d({surf,planes});
Для того, чтобы определить область интегрирования рассмотрим проекцию на плоскость XY
> polarplot((cos(theta)^2-sin(theta)^2)^2,theta=0..2*Pi);
Теперь очевидно, что область интегрирования имеет вид
0 < z < 2 , 0 < θ < 2π , 0 < r < (cos^2 (θ) -- sin^2 (θ) ^ 2
Таким образом,Объем тела равен
> v:=Int(Int(Int(rho,rho=0..(cos(theta)^2-sin(theta)^2)^2), theta=0..2*Pi),z=0..2);
2
v := ⌠2⌠2 π⌠( cos( θ)2 −sin( θ)2 ) ρ dρ dθ dz
⌡0 ⌡0 ⌡0
Вычислим этот интеграл
> value(v);
3 π
4
3. Практическое занятие
Лабораторная работа 4
Метод наименьших квадратов
Напомним, как найти аппроксимирующую функцию в классе полиномов, т.е. когда требуется функцию g, заданную в n точках xj , приблизить
многочленом степени m < n :
m
f = ∑ ai xi
i =0
Итак, нам необходимо найти полином, который обеспечивает минимум
суммы
∑m ρi ( yi − ai xi )2 i =0
Здесь ρi - вес, с которым в физике данное измерение влияет на выбор аппроксимирующей функции, т.е. если ρi = 0 , то i-тое измерение не
влияет на выбор аппроксимации. Для нахождения минимума достаточно продифференцировать это выражение по каждому из неизвестных коэффициентов ak . B результате, после преобразования, получим
m |
k m |
n |
|
( i +k ) |
|
∑ ρj yj xj |
|
|
xj |
|
k=0,..m |
= ∑ ai ∑ ρi |
|
||||
j =1 |
i =0 |
j =1 |
|
|
|
Таким образом, для определения коэффициентов ak необходимо решить
систему (m+1) линейных уравнений, которые называют нормальными уравнениями, с (m+1) неизвестными ai . B матричной форме эту систему
уравнений можно записать в виде с=Ba, где B - симметрическая
9
матрица размерности (m+1). |
|
|
|
|
Подчеркнем, что матрица |
B не зависит от |
значений |
исходной |
функции |
yi . Это было достаточно |
важным свойством |
данного |
метода, |
так как |
при обработке нескольких функций, заданных на одной сетке, достаточно было построить и обратить матрицу B только один раз. С развитием компьютеров это обстоятельство перестало быть определяющим при выборе метода аппроксимации.
Итак, предположим, что нам надо сдать лабораторную работу по закону Ома - сила тока прямо пропорциональна приложенному напряжению и
обратно пропорциональна сопротивлению проводника.
J = UR
Обычно, при фиксированном напряжении U изменяется сопротивление R и измеряется сила тока J.
Загрузим необходимые библиотеки
>restart:
with(plots): with(stats):
и смоделируем экспериментальную установку, используя известный нам по теории закон Ома,
> f:=r->U/r;
Для этого зададим напряжение
> U:=100:
и число измерений
> N:=10:
Пусть в эксперименте сопротивление реостата изменяется линейно, а сопротивление и ток мы измеряем идеальными приборами
> for i from 1 to N do
R[i]:=i; J[i]:=f(R[i]); end do:
Таким образом, мы построили график “идеальных” измерений
>Data:=[ [R[k],J[k]] $k=1..N]: plot([100/r,Data],r=R[1]..R[N],style=[line,point], symbol =circle,color=[red,maroon]);
В реальности и сопротивление, и ток мы измеряем с какой-либо погрешностью. Поэтому добавим к полученным данным случайную погрешность, которая удовлетворяет закону нормального распределения
>NoiseR:=stats[random, normald](N);
>NoiseJ:=stats[random, normald](N):
>for i from 1 to N do
Rn[i]:=R[i]*(1+0.03*[NoiseR][i]/max(NoiseR));
Jn[i]:=J[i]*(1+0.04*[NoiseJ][i]/max(NoiseJ)); end do:
Здесь сопротивление измеряется с погрешностью, не превосходящей 3%, а ток - 4% процентов. Эта погрешность указывается на реальных физических приборах.
10