Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Порядок решения задачи





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

1. Найдем сумму ряда S аналитически с использованием средств Matlab.

>>syms n
>>S_inf=symsum(3/(n^2+5*n+6),n,0,inf)
S_inf =
3/2
>>

Пояснения:

а) в MATLAB, как и в других аналогичных системах, сумма от ноля до бесконечности может быть вычислена только аналитически; с этой целью необходимо определить переменную суммирования (в нашем случае n) с помощью специальной конструкции syms;

б) функция суммирования числовых рядов в MATLAB имеет вид:

symsum(an, n, n1, n2), где an – член числового ряда, n – переменная суммирования, n1 – начальное значение переменной суммирования, n2 – конечное значение переменной суммирования;

в) в нашем случае в качестве n2 выступает бесконечнось; в MATLAB для обозначения бесконечности используется зарезервированное слово inf;

г) S_inf = 3/2 – так в MATLAB выводится результат расчетов; т.е. сумма ряда равна 1.5;

д) мы дали переменной, соответствующей сумме бесконечного ряда, имя S_inf, просто для удобства дальнейшего использования. Имена переменных, кроме зарезервированных, выбирает пользователь.

 

2. Для решения задачи сумм нам необходимо знать значение частичных сумм S(N). Решим эту задачу в общем случае:

>>syms N
>>S=symsum(3/(n^2+5*n+6),n,0,N)

и в результате получим:

S=
-3/(N+3)+3/2

Очевидно, что это означает: .

Пояснения:

а) здесь мы вели еще одну символьную переменную N, поскольку снова выполняли аналитические преобразования; кроме того, данную переменную мы могли бы определить в пункте 1, если бы сразу написали

>>syms n N;

б) в MATLAB переменные n и N различные, т.е. регистр символов имеет значение;

в) в ваших задачах могут быть получены более сложные выражения.

3. Сформируем вектор N={102, 103, 104, 105}.

>>N=[10^2, 10^3, 10^4, 10^5]
N=
100 1000 10000 100000
>>

Пояснения:

а) операция ^ означает возведение в степень;

б) в результате применения вышеприведенной команды мы потеряли символьную переменную N, вместо которой теперь мы имеем вектор N из четырех элементов.

4. Вычислим значения частичных сумм Si = S (Ni) ряда при соответствующих значениях Ni.

>>S=-3.0./(N+3)+3/2
S=
1.4709 1.497 1.4997 1.5

Данный результат необходимо интерпретировать следующим образом:

 

i Ni S(Ni)
    1.4709
    1.497
    1.4997
    1.5

 

Пояснения:

а) вместо выражения S(i)=-3.0./(N(i)+3)+3/2 для i=1,2,3,4 мы написали S=-3.0./(N+3)+3/2; это обычная практика в MATLAB – если в выражении участвует вектор, последовательно вычисляются значения для всех элементов вектора;

б) обратите внимание, написано -3.0./..., а не -3.0/.... Дело в том, что в MATLAB определены операции сложения или разности вектора с числом, но не определена операция деления числа на вектор [(N+3) есть вектор]; для таких случаев существует операция поэлементного деления./ (точка+слэш); как мы узнаем позднее, такие же особенности присущи и некоторым другим арифметическим операциям с участием векторов.

 

5. Для каждой величины S (Ni) вычислим абсолютную погрешность . Для вычисления абсолютной погрешности будем использовать встроенную функцию abs (хотя с метрологической точки зрения модуль не ставится):

>>D=abs(S-3/2)
D=
0.0291 0.0030 0.0003 0.0000

Пояснения:

a) поскольку в вычислениях участвует вектор S, в результате мы также получаем вектор из четырех элементов D={0.0291, 0.0030, 0.0003, 0.0000};

б) это неправильный результат, говорящий нам о том, что при N = 105 погрешность вычисления равна нулю; для понимания причин данного результата рассмотрим возможные форматы представления чисел в MATLAB.

При вычислениях в MATLAB используется режим двойной точности. Однако, при выводе результатов, по умолчанию выдаются числа с 4 цифрами после десятичной точки в действительной форме. Чтобы изменить данную форму вывода, необходимо в программе перед выводимой величиной использовать команду format name, где name – имя формата. Для числовых данных name может быть следующим:

  • short – короткое представление в фиксированном формате (5 знаков) – используется по умолчанию;
  • short е – короткое представление в экспоненциальной форме (5 знаков мантиссы и 3 знака порядка);
  • long – длинное представление в фиксированном формате (15 знаков);
  • long е – длинное представление в экспоненциальной форме (15 знаков мантиссы и 3 знака порядка).

В качестве примера рассмотрим 2 числа: x = 5/3, y = 1.2783e-7

format x y
format short 1.6667 0.0000
format short e 1.6667E+000 1.2783E–007
format long 1.66666666666667 0.00000012783000
format long e 1.66666666666667E+000 1.27830000000000E–007

 

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

>>format long
>>D

На экране мы увидим:

D
0.02912621359223 0.00299102691924 0.00029991002699 0.00002999910003

Хотя для отображения погрешности обычно пользуются следующим форматом:

>>format short e
>>D

На экране мы увидим:

 

D
2.9126e-002 2.9910e-003 2.9991e-004 2.9999e-005

Или, округляя (не в MATLAB) до одной значащей цифры, получим окончательный результат для абсолютной погрешности (в отчете):

Δ1 Δ 2 Δ 3 Δ 4
3*10-2 3*10-3 3*10-4 3*10-5

 

6. Для каждой величины S(Ni) вычислим относительную погрешность δ и определим количество верных цифр.

>>d=D./1.5

d=

1.9417e-002 1.9940e-003 1.9994e-004 1.9999e-005

Далее вам следует самостоятельно округлить полученный результат до одной значащей цифры и заполнить таблицу (в отчете):

δ 1 δ 2 δ 3 δ 4
2*10-2 2*10-3 2*10-4 2*10-5

 

7. Для каждой величины S(Ni) определим количество верных цифр.

Введем вспомогательный вектор a, который в нашем случае примет вид:

>> a=[1 1 1 1];

В ваших вариантах данный вектор будет другим, почему?

Вычислим количество верных цифр:

>> n=1-log10(a.*d)

n =

2.7118e+000 3.7003e+000 4.6991e+000 5.6990e+000

Здесь log10 – функция вычисления десятичного логарифма, .* означает операцию поэлементного умножения двух векторов в отличие от скалярного произведения векторов *.

Округлим полученные значения до целых меньших или равных n:

>> n=floor(n)

n =

2 3 4 5

8. Запишем численные значения найденных частичных сумм, округлив их до найденного ранее количества верных цифр.

Для этого нам необходимы более точные значения частичных сумм:

>> format long

>> S

S =

1.47087378640777 1.49700897308076 1.49970008997301 1.49997000089997

Окончательно округляем частичные суммы, оставляя только верные цифры:

S1 S2 S3 S4
1.5 1.50 1.500 1.5000

Анализ результатов проведите самостоятельно.

9. Построить график зависимости относительной погрешности в процентах от N. Отформатировать график (он будет являться приложением к отчету):

· подписать оси координат;

· нарисовать координатную сетку;

· дать графику название;

· и т.д.

Дополнительно, по указанию преподавателя.

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

11. Провести анализ рабочей области. Какие характеристики переменных здесь приведены. Привести 1 - 2 примера в отчете. Как добавить или удалить данные столбцы-характеристики (описать в отчете)?

ВАРИАНТЫ

     
     
     
     
     
     
     
     
    29
     

 

Date: 2015-07-17; view: 491; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию