|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.10.2010, 15:49 | #1 |
Пользователь
Регистрация: 25.10.2010
Сообщений: 42
|
метод простых итераций
Всем добрый вечер!!!!
пожалуйста помогите с методом простых итераций. Проблемма в том что он должен вывести решение от 1 до 0, а у меня получаются слишком мелкие значения, не пойму где ошибка(((((( Задача Коши для ДУ -y"+y=e^x y(0)=1 y(1)=0 Вот мой код: #include<iostream.h> #include<conio.h> #include<math.h> #include<windows.h> #include<string.h> main() { char text[30]; strcpy(text," Iaoia i?inouo eoa?aoee\n "); strcat(text,"Aey ?aoaiey AO 2-iai ii?yaea -y^(2)+y=e^x\n"); CharToOem(text,text); cout<<text; double y[100]={0},vek[100]={0},h=0.001,x=0,a,b,eps=1e-4; for(int i=0;i<100;i++) { if(i==0) { y[i]=-(1/((2/pow(h,2))+1))*(-(1/pow(h,2))*vek[i+1]-((pow(2.7182818,x)+(1/pow(h,2))))); x+=0.001; cout<<y[i]<<endl; continue; } y[i]=-(1/((2/pow(h,2))+1))*(-(1/pow(h,2))*vek[i-1]-(1/pow(h,2))*vek[i+1]-pow(2.7182818,x)); x+=0.001; cout<<y[i]<<endl; if(i==99) { y[i]=-(1/((2/pow(h,2))+1))*(-(1/pow(h,2))*vek[i-1]-pow(2.7182818,x)); cout<<y[i]<<endl; a=y[i-1]-y[i-2]; b=y[i]-y[i-1]; if(b>a) a=b; if(a<=eps) break; for(int j=0;j<100;j++) { vek[j]=y[j]; } x=0; i=0; } if(i!=1) { a=y[i-1]-y[i-2]; b=y[i]-y[i-1]; if(b>a) a=b; } } getch(); } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метод простых итераций (паскаль) | Никита Бо | Помощь студентам | 5 | 06.06.2010 13:57 |
Нелинейное уравнение (метод простых итераций) | maloy-rom | Общие вопросы C/C++ | 4 | 14.02.2010 23:14 |
Метод простых итераций в Delphi | Tomoyo | Помощь студентам | 21 | 26.12.2009 19:11 |
Метод простых итераций | church | Общие вопросы C/C++ | 3 | 06.06.2009 15:26 |
Решение СЛАУ (метод простых итераций) | XeN0N | Помощь студентам | 2 | 15.02.2009 21:33 |