Форум программистов, компьютерный форум CyberForum.ru

Метод простых итераций для СЛАУ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Конструктор http://www.cyberforum.ru/cpp-beginners/thread680656.html
Помогите написать конструкторы для класса матрицы для инициализации квадратной матрицы заданного размера с заданными компонентами; для инициализации прямоугольной матрицы заданных размеров с заданными компонентами; По идее надо использовать макросы va_start, va_list и va_end. Только я не очень понимаю. как это сделать. Элементы в матрице типа double
C++ Пользовательская функция О_О Ребят такое задание: необходимо вывести следующий текст на экран "Three blind mice", используя пользовательскую функцию. Ее нужно вызывать два раза в функции main() Вот мой код: #include <iostream> using namespace std; char three(int); int main () { int s; char count=three(s); http://www.cyberforum.ru/cpp-beginners/thread680649.html
Вставка элементов одной последовательности в другую так, чтобы вторая последовательность осталась невозрастающей C++
vector <int> vctavka(vector <int> posledovatelnost, vector <int> b) { for(unsigned i=0;i<=posledovatelnost.size()-1;i++) { if((posledovatelnost<=b)&&(posledovatelnost>=b)) { for(unsigned j=posledovatelnost.size()-1;j>i;j--) {posledovatelnost=posledovatelnost;} posledovatelnost=b; }
нарисовать оси координат на изображении C++
Помогите, как нарисовать оси координат на изображении, по щелчку мыши, начало координат (0,0) - точка на которую нажали левой кнопкой мыши.
C++ заполнить массив случайно буквами c++ http://www.cyberforum.ru/cpp-beginners/thread680628.html
как заполнить массив случайно буквами c++ . Можете дать простенький пример, я бы потом как-то разобрался.
C++ Найти элемент массива, наиболее близкий к среднему значению всех элементов массива Найти элемент массива, наиболее близкий к среднему значению всех элементов массива. Найти среднее арифметические положительных и отрицательных элементов массива. И все это в динамическом массиве( Пожалка помогите)) подробнее

Показать сообщение отдельно
ReUz
Сообщений: n/a
20.10.2013, 12:02     Метод простых итераций для СЛАУ
помогите написать программу в С++


Найдем корни уравнения:
1+9•sin(x)/2 = 0
Используем для этого Метод итераций.
Одним из наиболее эффективных способов численного решения уравнений является метод итерации. Сущность этого метода заключается в следующем. Пусть дано уравнение f(x)=0.
Заменим его равносильным уравнением x=φ(x).
Выберем начальное приближение корня x0 и подставим его в правую часть уравнения. Тогда получим некоторое число x1=φ(x0).
Подставляя теперь в правую часть вместо x0 число x1 получим число x2=φ(x1). Повторяя этот процесс, будем иметь последовательность чисел xn=φ(xn-1)
Если эта последовательность сходящаяся, то есть существует предел ξ = lim(xn), то переходя к пределу в равенстве и предполагая функцию φ(x) непрерывной найдем lim(xn) = φ(lim(xn-1)), n → ∞ или ξ=φ(ξ).
Таким образом, предел ξ является корнем уравнения и может быть вычислен по формуле с любой степенью точности.
Находим первую производную:
dF/dx = 9/2•cos(x)
Решение.
Представим уравнение в форме:
x = x - λ(1+9•sin(x)/2)
Найдем максимальное значение производной от функции f(x) = 1+9•sin(x)/2
y = 9/2*cos(x)
[-100;100]
Необходимое условие экстремума функции одной переменной.
Уравнение f'0(x*) = 0 - это необходимое условие экстремума функции одной переменной, т.е. в точке x* первая производная функции должна обращаться в нуль. Оно выделяет стационарные точки xс, в которых функция не возрастает и не убывает.
Достаточное условие экстремума функции одной переменной.
Пусть f0(x) дважды дифференцируемая по x, принадлежащему множеству D. Если в точке x* выполняется условие:
f'0(x*) = 0
f''0(x*) > 0
то точка x* является точкой локального (глобального) минимума функции.
Если в точке x* выполняется условие:
f'0(x*) = 0
f''0(x*) < 0
то точка x* - локальный (глобальный) максимум.
Решение.
Находим первую производную функции:
y' = -9/2•sin(x)
Приравниваем ее к нулю:
-9/2•sin(x) = 0
x1 = 0
Вычисляем значения функции на концах отрезка
f(0) = 9/2
f(-100) = 9/2•cos(100)
f(100) = 9/2•cos(100)
Ответ:
fmin = 9/2•cos(100), fmax = 9/2
max(dF/dx = 9/2•cos(x)) ≈ 4.5
Значение λ = 1/(4.5) ≈ 0.2222
Таким образом, решаем следующее уравнение:
x+0.2222(1+9•sin(x)/2) = 0
Уточним интервалы, в которых будут находиться корни уравнения. Для этого исходный интервал [-100;100] разобьем на 10 подынтервалов.
h2 = -100 + 2*(100-(-100))/10 = -60
h3 = -100 + (2+1)*(100-(-100))/10 = -40
Поскольку F(-60)*F(-40)<0, то корень лежит в пределах [-60;-40].
Остальные расчеты сведем в таблицу.

N x F(x)
1 -60 2.3716


Ответ: x = -60; F(x) = 2.372
Сходимость:

h4 = -100 + 4*(100-(-100))/10 = -20
h5 = -100 + (4+1)*(100-(-100))/10 = 0
Поскольку F(-20)*F(0)<0, то корень лежит в пределах [-20;0].
Остальные расчеты сведем в таблицу.

N x F(x)
1 -20 -3.1083


Ответ: x = -20; F(x) = -3.108
Сходимость:

h7 = -100 + 7*(100-(-100))/10 = 40
h8 = -100 + (7+1)*(100-(-100))/10 = 60
Поскольку F(40)*F(60)<0, то корень лежит в пределах [40;60].
Остальные расчеты сведем в таблицу.

N x F(x)
1 40 4.353


Ответ: x = 40; F(x) = 4.353
Сходимость:
 
Текущее время: 05:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru