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

Метод простых итераций - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Инкремент и преинкремент http://www.cyberforum.ru/cpp-beginners/thread687995.html
Здравствуйте. Я вот решил протестить в чем разница между инкрементом и преинкрементом, и как-то не увидел разницы... В чем же разница? :) #include <iostream> using namespace std; int main(){ int l=0; for(int i=0;i<10;i++){ l+=i; cout<<l<<endl; }
C++ invalid conversion from "const char*" to "char" Помогите, пожалуйста, найти проблему. Arguments.h #include<iostream> class Arguments { public: Arguments(int iArgc, const char** iArgv); http://www.cyberforum.ru/cpp-beginners/thread687970.html
Многократный сдвиг массива влево C++
У меня есть массив , к примеру : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Проходя по нему я проверяю является ли число не четным.Если нет , сдвигаю массив влево и освобождаю память занятую последним числом. for (int i = 0 ; ilosc2 != i ; i++ ) // запускаем счетчик { g = p; // считываем число k = g%2; // проверяем делится ли оно на 2 if (k==1) // если...
Как это можно реализовать? C++
Строка состоит из слов, разделенных ровно одним пробелом, пробелов перед первым и после последнего слова нет. Получить новую строку, в начале которой на нечетном месте должно стоять слово только из цифр, а на четном – другое слово. В конце новой строки поместить те слова, которые не могут быть записаны согласно приведенному правилу. Дополнительно можно использовать не более одной вспомогательной...
C++ вывести первый ненулевой элемент в строке http://www.cyberforum.ru/cpp-beginners/thread687924.html
если ввод без пробелов, работает норм, если впереди поставить пробелы, собственно выводит пробел, а мне надо первую букву вывести + как можно сделать проверку, чтобы можно было только буквы вводить? cout<<"enter simbol:"<<endl; char str1; cin.getline(str1,100); char i=str1; cout<<"You entered: "<<i<<endl<<endl;
C++ Блочный шифр tea (xtae) Здорова всем. Помогите пожалуйста написать программу по криптографии (блочный шыфр tea или Xtea), а то у меня с программированием на C++ дела обстоят крайне плохо. подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
06.11.2012, 01:17     Метод простых итераций
pavel1992, отвечаю на твой вопрос
Цитата Сообщение от pavel1992 Посмотреть сообщение
почему за c вы взяли 0,5 а не 35, не -0,751
- как я уже указывал ранее
метод простых итераций предполагает схему
xk = g(xk-1) где g(x) = x + b*f(x) где b - произвльное число
Это не надо доказывать - это суть метода.
Теперь поясню почему я взял 0,5 - есть рекомендации в ряде источников брать 0,5 либо 0,05 либо 5 и т.д. Также в некоторых учебниках предлагают вводиьт допусловие остановки итераций основанное на характере изменения функции. Поясню - скажем при х1 значение функции отрицательно тобишь f(x1) < 0 а в точке х2 значение f(х2 = g(x1)) > 0 положительно, т.е получается на интервале х1...х2 функция пересекла числовую ось - вот такую стоп точку + коєффициент 0,05 я дополнительно ввёл в алгоритм и вот что получил
C++
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
40
41
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
 
double f(double x)
{
//  return pow(2.0,x) - 2*pow(x, 2.0) - 1;
    return pow(x,6.0) - 3*pow(x, 2.0) + x - 1;
}
 
double g(double x)
{
    return x + 0.05*f(x);
}
 
int main()
{
    double x;
    double eps;
    cout<<"Enter initial root value   : ";cin>>x;
    cout<<"Enter error of calculation : ";cin>>eps;
    for(double iter = 1; eps < fabs(f(x)); iter = iter + 1)
    {
        system("cls");
        //*ÈòåðГ*öèé ìîæåò áûòü î÷åГ*Гј Г¬Г*îãî, ïîýòîìó ðåêîìåГ*äóþ Г§Г*áûòü
        //Г® öåëûõ Г* èñïîëüçîâГ*ГІГј Г¤Г*ГЎГ« ГЄГ*ГЄ Г±Г·ВёГІГ·ГЁГЄ, õîòÿ Гў ïðèГ*öèïå åñëè 
        //ðåøåГ*ГЁГҐ Г*ГҐ Г*Г*øëè Г§Г* 10-100 ГЁГІГҐГ°Г*öèé ГІГ® ðåøåГ*ГЁГї äëÿ Г¤Г*Г*Г*îãî êîýôôèöèåГ*ГІГ*
        //ïðè f(x) Гў g(x) Г*ГҐГІ ГЁ Г*Г*äî ГҐГЈГ® ìåГ*ГїГІГј
        cout<<"Iteration : "<<setprecision(0)<<iter<<endl;
        cout<<"x    = "<<x   <<endl;
        cout<<"g(x) = "<<g(x)<<endl;
        cout<<"f(x) = "<<f(x)<<endl;
        if(f(x)*f(g(x)) > 0)
            x = g(x);
        else
            break;      
    }
    system("pause");
    return 0;
}
Миниатюры
Метод простых итераций  
 
Текущее время: 18:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru