Чисельні методи

Re: Чисельні методи

Повідомлення Bob Gubko » 15 листопада 2011, 01:08

Вась,посмотришь плиз
#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;


int main(int argc, char *argv[])
{
double * X = new double {6,6.1,6.4,6.9,7.41,7.65,8,8.56,8.9,9.51,9.9};
double * Y = new double ;
For( int i = 0;i = 11; i++)
{Y(i)=Math.sin(X(i))/X(i);
}
double x0=19;
double x1=19;
double x2=19;
int n0;
int n1;
int n2;
double Otvet1;
double Otvet2;
double Otvet3=0;
double Mnoznic=1;
double Mnoznic1=1;
double left=Math.sin(5.84)/5.84;
double derivativeleft=(5.84*Math.cos(5.84)-Math.sin(5.84))/((5.84)*(5.84));
For (double x= 6;x=10;x=x+0.16)// Основний цикл(походження всієї довжини з певним кроком)
{ Otvet4=x*Math.cos(x)-Math.sin(x))/((x)*(x));// перша похідна за формулою
Otvet5=(-x*x*x*Math.sin(x)-2*x*x*Math.cos(x)+2*x*Math.sin(x))/(x*x*x*x)//друга похідна за формулою
Otvet1=(Math.sin(x)/x); //Математичне знаходження функції від аргументу
for (i =0;x=>11;i++)
{
if(abs(x-X(i))< x0)// Для методу квадратичної апроксимації знаходження найближчих 3 вузлових точок
{n2=n1;
x2=x1;
n1=n0;
x1=x0;
x0= abs(x-X(i));
n0=i;
}
else
if(abs(x-X(i))<x1)
{x2=x1;
n2=n1;
x1=abs(x-X(i));
n1=i;
}
else
if(abs(x-X(i)<x2)
{ x2=abs(x-X(i));
n2=i;
}

}
double d=X(n0)*X(n0)(X(n1)-X(n2))-X(n0)(X(n1)*X(n1)-X(n2)*X(n2)) +
X(n1)*X(n1)*X(n2)-X(n2)*X(n2)*X(n1);
double d1=Y(n0)(X(n1)-X(n2))-X(n0)(Y(n1)-Y(n2))+
Y(n1)*X(n2)-Y(n2)*X(n1);
double d2=X(n2)*X(n2)(Y(n1)-Y(n2))-Y(n0)(X(n1)*X(n1)-X(n2)*X(n2))+
X(n1)*X(n1)Y(n2)-X(n2)*X(n2)*Y(n1);
double d3=X(n0)*X(n0)(X(n1)*Y(n1)-X(n2)*Y(n1))-
X(n0)((X(n1)*X(n1)*Y(n2)-X(n2)X(n2)Y(n1))+
Y(n0)(X(n1)*X(n1)*X(n2)-X(n2)*X(n2)*X(n1));//Математичне представлення методу Крамера(за знайденими точками)

Otvet2=d1*x*x/d +d2*x/d +d3/d;//Відповідь квадратичною апроксимацією
Otvet6 = (otvet2-left)/0.16//Ліва різницева похідна
Otvet7 = (otvet6-derivativeleft)/0.16//Друга ліва різницева похідна
left=otvet2;
derivativeleft=otvet6;
for (i =0;x=11;x++) Знахоження полінома Лагранжа(спочатку знаходжу кефіціент для Y(0),з я кого потім знаходжу й інші коефіціенти)
{Mnoznic= Mnoznic*(x-X(i))/((X(0)-X(i))
}

for (i =0;x=11;x++)

{ Otvet3=Otvet3+Y(i)*Mnoznic1* Mnoznic//;Знаходження відповід заопомого полінома Лагранжа
Mnoznic1=Mnoznic1*(X(0)-X(i+1));
}
cout << ("Znachennya argumenta",x) ;
cout << ("Vidpovid prostim obchislennyam",Otvet1) ;
cout << ("Vidpovid za kvadratichnoi aproksimacii",Otvet2) ;
cout << ("Vidpovid polinoma Lagrangdja",Otvet3) ;
cout << ("Перша похыдна за формулою",Otvet4) ;
cout << ("Друга похыдна за формулою",Otvet5) ;
cout << ("Перша похідна",Otvet6) ;
cout << ("Друга похідна",Otvet7) ;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Аватар користувача
Bob Gubko
 
Повідомлень: 9
З нами з: 13 січня 2011, 13:22

Re: Чисельні методи

Повідомлення Василь » 16 листопада 2011, 07:45

Код: Виділити все
#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;


int main(int argc, char *argv[])
{
double  X [11] =  {6,6.1,6.4,6.9,7.41,7.65,8,8.56,8.9,9.51,9.9};
double  Y [11];
for( int i = 0;i == 11; i++)
{
        Y[i]=sin(X[i])/X[i];
}
double x0=19;
double x1=19;
double x2=19;
int n0;
int n1;
int n2;
double Otvet1;
double Otvet2;
double Otvet3=0;
double Otvet4=0;
double Otvet5=0;
double Otvet6=0;
double Otvet7=0;
double Mnoznic=1;
double Mnoznic1=1;
double left=sin(5.84)/5.84;
double derivativeleft=(5.84*cos(5.84)-sin(5.84))/((5.84)*(5.84));
for (double x= 6;x=10;x=x+0.16)// Основний цикл(походження всієї довжини з певним кроком)
{ Otvet4=(x*cos(x)-sin(x))/((x)*(x));// перша похідна за формулою
Otvet5=(-x*x*x*sin(x)-2*x*x*cos(x)+2*x*sin(x))/(x*x*x*x);//друга похідна за формулою
Otvet1=(sin(x)/x); //Математичне знаходження функції від аргументу
for (int i = 0 ; x >= 11 ;i++)             // ШО ЗА НАХ?????????????????????????????
{
if(fabs(x-X[i])< x0)// Для методу квадратичної апроксимації знаходження найближчих 3 вузлових точок
{n2=n1;
x2=x1;
n1=n0;
x1=x0;
x0= fabs(x-X[i]);
n0=i;
}
else
if(fabs(x-X[i])<x1)
{x2=x1;
n2=n1;
x1=fabs(x-X[i]);
n1=i;
}
else
if(fabs(x-X[i]<x2))
{
        x2=fabs(x-X[i]);
        n2=i;
}

}
// ВОТ ТУТ СЕРЬЕЗНАЯ ОШИБКА... что-то зашло за диапазон масивва... РАЗБИРАЙСЯ
double d=X[n0]*X[n0]*(X[n1]-X[n2])-X[n0]*(X[n1]*X[n1]-X[n2]*X[n2]) +
X[n1]*X[n1]*X[n2]-X[n2]*X[n2]*X[n1];
double d1=Y[n0]*(X[n1]-X[n2])-X[n0] * (Y[n1]-Y[n2])+
Y[n1]*X[n2]-Y[n2]*X[n1];
double d2=X[n2]*X[n2]*(Y[n1]-Y[n2])-Y[n0]*(X[n1]*X[n1]-X[n2]*X[n2])+
X[n1]*X[n1]*Y[n2]-X[n2]*X[n2]*Y[n1];
                                // ДУЖКИ ПРОВЕРЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
double d3=X[n0]*X[n0]*(X[n1]*Y[n1]-X[n2]*Y[n1])-
(X[n0]*(X[n1]*X[n1]*Y[n2]-X[n2]*X[n2]*Y[n1]))+
Y[n0]*(X[n1]*X[n1]*X[n2]-X[n2]*X[n2]*X[n1]);//Математичне представлення методу Крамера(за знайденими точками)

Otvet2=d1*x*x/d +d2*x/d +d3/d;//Відповідь квадратичною апроксимацією
Otvet6 = (Otvet2-left)/0.16;//Ліва різницева похідна
Otvet7 = (Otvet6-derivativeleft)/0.16;//Друга ліва різницева похідна
left=Otvet2;
derivativeleft=Otvet6;
for (int i =0;x=11;x++) //Знахоження полінома Лагранжа(спочатку знаходжу кефіціент для Y(0),з я кого потім знаходжу й інші коефіціенти)
{
        Mnoznic= Mnoznic*(x-X[i])/((X[0]-X[i]));
}

for (int i =0;x==11;x++) // УСЛОВИЕ ПИШЕТЬСЯ ТАК " x == 11 ".  А нахер X если у нас И. исправ везде

{ Otvet3=Otvet3+Y[i]*Mnoznic1* Mnoznic;//;Знаходження відповід заопомого полінома Лагранжа
Mnoznic1=Mnoznic1*(X[0]-X[i+1]);
}
cout << ("Znachennya argumenta",x) ;
cout << ("Vidpovid prostim obchislennyam",Otvet1) ;
cout << ("Vidpovid za kvadratichnoi aproksimacii",Otvet2) ;
cout << ("Vidpovid polinoma Lagrangdja",Otvet3) ;
cout << ("Перша похыдна за формулою",Otvet4) ;
cout << ("Друга похыдна за формулою",Otvet5) ;
cout << ("Перша похідна",Otvet6) ;
cout << ("Друга похідна",Otvet7) ;
}
system("PAUSE");
return EXIT_SUCCESS;
}
//---------------------------------------------------------------------------

Программа запустилась, дальше ищи ошибки в ген. коде!
Аватар користувача
Василь
 
Повідомлень: 907
З нами з: 15 жовтня 2010, 02:08

Re: Чисельні методи

Повідомлення igor4uk » 04 грудня 2011, 18:41

що таке норма нев*язки і взагалі як його рахувати?
igor4uk
 
Повідомлень: 24
З нами з: 01 березня 2011, 14:20

Re: Чисельні методи

Повідомлення Виктор » 05 грудня 2011, 22:11

підтримую питання Ігоря.... самому треба... де не шукав фігня одна всюди... нормальних пояснень немає(((
Виктор
 
Повідомлень: 11
З нами з: 16 листопада 2011, 18:03

Re: Чисельні методи

Повідомлення igor4uk » 06 грудня 2011, 21:11

Виктор написав:підтримую питання Ігоря.... самому треба... де не шукав фігня одна всюди... нормальних пояснень немає(((

я пиво тому куплю)) або інший еквівалент
igor4uk
 
Повідомлень: 24
З нами з: 01 березня 2011, 14:20

Re: Чисельні методи

Повідомлення МАКС » 14 грудня 2011, 17:12

Для тих хто просив сфотографіровать варіанти лабок + білет №4
Приєднані файли
Chmo.rar
(2.56 Мб) Завантажено 589 разів
МАКС
 
Повідомлень: 44
З нами з: 12 квітня 2011, 19:03
Звідки: Прилуки

Re: Чисельні методи

Повідомлення Василь » 19 грудня 2011, 21:30

Контрольні запитання.
1. Класифікація похибок.
2. Пряма і обернена задача теорії похибок.
3. Поліноми Лагранжа. Похибка апроксимації поліномами Лагранжа.
4. Поліноми Чебишова.
5. Сплайни.
6. Метод мінімізації норми при наближенні поліномами.
7. Метод найменших квадратів.
8. Найпростіші формули чисельного диференціювання.
9. Чисельне диференціювання за допомогою інтерполяційного многочлену Ньютона. Порядок похибки.
10. Квадратурна формула.
11. Формули прямокутників, середніх точок, трапецій та Сімпсона.
12. Принцип Рунге оцінки похибки, уточнення за Річардсоном.
13. Методи обчислення кратних інтегралів.
14. Методи обчислення невласних інтегралів.
15. Відокремлення коренів.
16. Метод половинного ділення.
17. Метод простих ітерацій.
18. Метод дотичних (Ньютона).
19. Метод хорд, метод січних.
20. Метод парабол.
21. Методи покоординатного та найшвидшого градієнтного спуску.
22. Методи розв’язку лінійних систем : а) метод простої ітерації; б) метод Зейделя;
23. Міра обумовленості системи. Методи регуляризації.
24. Обернення матриці. Знаходження власних значень матриць.
25. Метод Ейлера. Неявна формула Адамса другого порядку точності.
26. Методи Рунге-Кутта.
27. Багатокроковий метод Адамса.
28. Застосування правила Рунге до оцінки похибки.
29. Поняття стійкості різницевих схем.
30. Поняття жорсткості задачі.
31. Зведення до задачі Коші двохточкової крайової задачі для лінійного рівняння другого порядку.
32. Метод скінченних різниць.
33. Квадратурний метод розв’язку інтегрального рівняння.
34. Метод простої ітерації, оцінка похибки.
35. Метод заміни ядра виродженим.
36. Варіаційні і проекційні методи.
37. Основна ідея різницевих методів. Апроксимація диференціального виразу, крайових умов та області.
38. Поняття стійкості і коректності різницевої схеми. Порядок апроксимації. Явні і неявні різницеві схеми. Шаблон.
39. Рівняння з частинними похідними другого порядку. Різницеві схеми для рівнянь параболічного, еліптичного і гіперболічного типів.

Перелік запитань на залік повністю співпадає зі списком контрольних запитань до змістовного модулю.

СПИСОК РЕКОМЕНДОВАНОЇ ЛІТЕРАТУРИ

а) основна:
1. Е.А. Волков. Численные методы: Учеб. пособие для вузов. – М.: Наука, 1987.- 248с.
2. Н.С. Бахвалов, Н.П. Жидков, Кобельков Г.М. Численные методы: Учеб. пособие. - М.: Наука, 1987 – 600с.
3. Н.Н. Калиткин Численные методы. М.: Наука, 1978
4. И.А. Гулин, А.А. Самарский. Численные методы. М.: Наука, 1989.
5. Березин И.С., Жидков Н.П. Методы вычислений. В 2–х т. М., 1959, т.1.– 464 с. т.2 – 602 с.
6. Н.С. Бахвалов, А.В. Лапин, Е.В. Чижонков. Численные методы в задачах и упражнениях. М., Высшая школа, 2000. – 190 с.
б) додаткова:
7. Д. Каханер, К. Моулер, С.Неш. Численные методы и программное обеспечение. – М.:Мир, 2001. – 575с.
8. В.А. Ильина, П.К. Силаев. Численные методы для физиков-теоретиков. – Москва-Ижевск:ИКИ, 2003. – т 1,2.
9. Л.П. Фельдман, А.І. Петренко, О.А. Дмитрієва. Чисельні методи в інформатиці. – К. :Видавнича група BHV, 2006. - 480 c.
10. Б.И. Волков. Математический практикум для физиков. М.: Изд-во МГУ, 1981. – 104 с.
11. Методические указания и учебные задания для самостоятельной работы над курсом «Методы вычислений» для студентов мех.-мат. факультета. Под ред. А.А. Глущенко К.:КГУ, 1989. – 124с.
12. Лабораторні роботи та домашні завдання для самостійної роботи з дисципліни «Методи обчислень» для студентів мех.-мат. факультету. – К., 2006 – 32с.
13. І.П. Гаврилюк, М.П. Копистира, В.Л. Макаров, М.М. Москальков. Збірник задач з методів обчислень.- К.:ВЦ «Київський університет», 2004. – т 1,2.
14. Я.К.Шмидский. Mathematica 5. Самоучитель.-М.:Издательский дом «Вильямс», 2004. – 529 с.
Аватар користувача
Василь
 
Повідомлень: 907
З нами з: 15 жовтня 2010, 02:08

Re: Чисельні методи

Повідомлення grebenyuk51 » 29 вересня 2015, 23:06

Ось знайшлась пропажа - перефоткані лекції СугАковой з ЧМОДУ
Приєднані файли
chmo.rar
(32.72 Мб) Завантажено 607 разів
grebenyuk51
 
Повідомлень: 7
З нами з: 19 вересня 2012, 21:17

Re: Чисельні методи

Повідомлення Василь » 01 жовтня 2015, 20:41

grebenyuk51 написав:Ось знайшлась пропажа - перефоткані лекції СугАковой з ЧМОДУ

Респект! Те що треба для всіх студентів без винятків!!!
Якщо Сугакова буде запитувати, чи ніхто не бачив її конспекту, впевнено відповідайте:"На радфізі не пробували шукати?"
ОФТОП: колись давно її конспект вкрали старшокурсники, які були старші на один рік від нас )))
Аватар користувача
Василь
 
Повідомлень: 907
З нами з: 15 жовтня 2010, 02:08

Re: Чисельні методи

Повідомлення Ortom » 08 грудня 2020, 16:33

ЧМОД лабки на С++
Приєднані файли
чмод.rar
(3.4 Мб) Завантажено 283 разів
Ortom
 
Повідомлень: 43
З нами з: 30 листопада 2020, 12:34

Поперед.Далі

Повернутись до Семестр 3

Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 2 гостей