Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2014
Тип роботи:
Розрахунково - графічна робота
Предмет:
Чисельні методи

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Розрахунково-графічна робота з курсу "Чисельні методи" Підготував: студент групи КН-23 Мельник Юрій Перевірив: к.т.н., доцент кафкдри САПР Денисюк П.Ю. Львів-2014 МЕТА РОБОТИ Мета роботи – закріпити знання отримані при вивченні курсу «Чисельні методи в інформатиці» та ознайомитися з новими відомими чисельними методами. Завдання: Розв'язати систему лінійних алгебраїчних рівнянь методом Гаусса за схемою Халецького наведену у Додатку 1 згідно варіанту індивідуального завдання отриманого у викладача. Навести хід розв’язку. Здійснити перевірку розв’язку СЛАР за допомогою 2 ітерацій методом простої ітерації. Написати програму. 19. Побудувати графік функції наведеної у додатку 2 згідно варіанту індивідуального завдання отриманого у викладача. На заданому інтервалі для 5 різних точок побудувати інтерполяційний поліном (степінь див. додаток 2). За допомогою інтерполяційного полінома дослідити вплив степені полінома на точність одержаних результатів. Написати программу  Дати розгорнуту відповідь на контрольні запитання наведені у додатку. 37. Метод простих інтерацій. Метод Зейделя. 9.Інтеполітаційний поліном Ерміта.Програмна реалізація. Хід роботи: I. Для виконання даного завдання нам потрібно виконати ряд дій: Спочатку заповнюємо таблицю коефіцієнтів і таблицю вільних членів, відповідно до завдання; Отримуємо розв’язок системи рівнянь за методом Гауса Задаємо точність обчислення для методу простих ітерацій; Знаходимо розв’язки системи рівнянь за допомогою методу простих ітерацій, а також ітерацію, на якій цей розв’язок було знайдено; Результати даних дій почергово виводяться на екран, для методу простих ітерацій на екран виводяться матриці знормованої системи; Аналізуємо отримані результати; Код програми в середовищі MATLAB: clear all; clc; disp('Таблиця коефіцієнтів:') A 11 -2 -2 -1; -1 -9 2 -3; -6 -1 -14 8; 2 -3 -1 15] disp('Таблиця вільних членів:') B=[ 3; 6; -10; -8] r=4; disp('Метод Гауса') Od=rref([A B]); %отримання одиничної матриці з розширеної X=Od(1:r,(r+1)) %корені системи рівнянь disp('Метод простих ітерацій') %зведення системи до нормальної AA=A'*A; BB=A'*B; e=0.00001; t=0; iter=0; % кількість ітерацій disp('Матриця A знормованої системи(A"A)'); disp(AA); %вивід матриці коефіцієнтів disp('Матриця B знормованої системи(A"B)'); disp(BB); %вивід матриці вільних членів NumIter=30; for i=1:4, for j=1:4, if i==j c(i,j)=0; else c(i,j)=-AA(i,j)/AA(i,i); end; end; end; for i=1:4, d(i)=BB(i)/AA(i,i); end; for i=1:4, sum1=0; for j=1:4, sum1=sum1+c(i,j); end; s1(i)=sum1; end; for i=2:4, if s1(i)>sum1 sum1=s1(i); end; end; ifabs(sum1)<1 for i=1:4, x0(i)=d(i); end; for i=1:4, s=0; for j=1:4, s=s+c(i,j)*x0(j); end; xk(i)=s; end; for i=1:4, xk(i)=xk(i)+d(i); end; while((t<4)||(t>4)) iter=iter+1; for i=1:4, x0(i)=xk(i); z(i)=x0(i); end; for i=1:4, s=0; for j=1:4, s=s+c(i,j)*z(j); xk(i)=s+d(i); z(i)=xk(i); end; end; t=0; for i=1:4, if(abs(xk(i)-x0(i))<e) t=t+1; end; if t==4 for j=1:4, disp(['X',num2str(j),' = ', num2str(xk(j))]); end; disp(['Ітерація ',num2str(iter)]); end; end; end; else disp('Система не вирішена'); end; Результат виконяння програми: Таблиця коефіцієнтів: A = 11 -2 -2 -1 -1 -9 2 -3 -6 -1 -14 8 2 -3 -1 15 Таблиця вільних членів: B = 3 6 -10 -8 Метод Гауса X = 0.1963 -0.4135 0.3043 -0.6219 Метод простих ітерацій Матриця A знормованої системи(A"A) 162 -13 58 -26 -13 95 3 -24 58 3 205 -131 -26 -24 -131 299 Матриця B знормованої системи(A"B) 71 -26 154 -221 Перевірка правильності розв'язків методом Гауса за схемою Халецького:    Ax=d , матриця С – нижня трикутна, В – верхня трикутна, причому діагональні коефіцієнти матриці В дорівнюють одиниці. Починаємо заповнювати матриці В та С., а також матрицю Y. Робимо це за такими загальними формулами:            Перевіривши обрахунки за даним методом ми отримали значення невідомих, які практично збігаються зі значеннями обрахованими у пограмі, оскільки при обрахунку вручну деякі значення були заокруглені. II. Для того щоб на заданому інтервалі для 5 різних точок побудувати інтерполяційний поліном 3 та 8 степенів, ми за допомогою середовища MATLAB, написали програму, де ми: Створюємо для зручності одразу два масиви точок для заданих проміжків, враховуючи точки інтерполяції та екстраполяції. Дані масиви при потребі будемо змінювати. Будуємо графік функції по точних значенням, враховуючи початкову умову: y = 0 при x < 2 та y = ln(x) при x >=2.; Створюємо також для зручності одразу два масиви точок для заданих проміжків для поліномів. Дані масиви при потребі будемо змінювати. Вибираємо наступні степені полінома n1 = 3; n2 =8; Обраховуємо за другою формулою Ньютона поліноми 3 та 8 степенів. Далі знаходимо абсолютні похибки поліномів різних степенів відносно точної функції; Знаходимо відносні похибки; Будуємо графік, де будуть зображені поліноми різних степенів та точна функція; Будуємо графік, де будуть відображатися абсолютні похибки. Повторюємо дії для другого інтервалу; Код програми: clear all; clc; format short; % Проміжок з точками екстраполяції [-3;5] x = [-3.15 -2 1 4 5.05]; % Проміжок з точками екстраполяції [5;10] % x = [4 6 7 9 11]; [r c] = size(x); for k = 1:c; T(k) = 1/(1+ 77*(x(k)).^2); end a =[-3 5]; % a =[5 10]; n =[3 8]; for ni = n; h = (a(2)-a(1))/ni; xi = a(1):h:a(2); [r1 c1] = size(xi); for m = 1:c1; y(m) = 1/(1+ 77*(x(m)).^2); end for j =1: c; for i=1:(ni+1); CH = x(j)-xi; ZN = xi(i) - xi; CH(i) = 1; ZN(i) = 1; L(i)=prod(CH)/prod(ZN)*y(i); end Li(j,ni) = sum(L) end % Абсолютна похибка AP(:,ni)=abs(T(:)-Li(:,ni)) % Відносна похибка VP(:,ni)=AP(:,ni)./T(:) end figure(1); plot(x,T,'b', x, Li(:,n(1)),'g-.', x, Li(:,n(2)),'rd--') legend('Точна функція','Поліном 4 степеня','Поліном 7 степеня') figure(2); plot(x, AP(:,n(1)),'g-.', x, AP(:,n(2)),'rd--') legend('Поліном 4 степеня','Поліном 7 степеня') title('Абсолютна похибка'); figure(3); plot(x, VP(:,n(1)),'g-.', x, VP(:,n(2)),'rd--') legend('Поліном 4 степеня','Поліном 7 степеня') title('Відносна похибка'); Результати: Для проміжку [5;10]  Рис. Графік точної функції та поліномів  Рис. Абсолютна похибка  Рис. Відносна похибка Для проміжку [-3;5]  Рис. Графік точної функції та поліномів  Рис. Абсолютна похибка  Рис. Відносна похибка Відповіді на контрольні запитання 37) . Метод простих інтерацій. Метод Зейделя. Використана література 1. Щуп Т. Решение инженерных задач на ЕВМ. – М.: Мир, 1982. – 235с. 2. Демидович Б. П., Марон И. А. Основы вычислительной математики. – М.: Наука, 1970. – 664 с. 3. Демидович Б. П., Марон И. А., Шувалова Е. З. Численные методы анализа. – М.: Мир, 1967Волков Е. А. Численные методы. – М.: Наука, 1988. 4. Мак – Кракен Д., Дрон У. Численные методы и програмирование на фортране. – М.: Мир, 1977. – 584 с. 5. Бахвалов Н. С. Численные методы . Т. И. Анализ, алгебра, обычные диференциальные уравнения. – М.: Наука, 1975. – 631 с.
Антиботан аватар за замовчуванням

23.05.2016 19:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!