|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.06.2015, 13:21 | #1 |
Регистрация: 26.05.2015
Сообщений: 8
|
решение уравнения методом итерации
Дана функция cos (x), необходимо найти корень функции методом последовательных приближений. Суть в следующем. вычислять надо с помощью ряда функции cos(x)
Итерационный характер процесса нахождения корня функции явно присутствует в методе последовательных приближений. Для того, чтобы найти корень функции f(x)=0, решается эквивалентное уравнение x = f(x) + x. Если для него значение x в правой части считать результатом итерационного цикла на предыдущем шаге (x1), а значение x в левой части - результатом текущего шага цикла, то такой цикл можно представить следующей схемой, а реализацию ее -программой: . x1 = x ________________ | | | x = f( x1 ) + x1 ------- x1 = x0 // Программа: x = x0; do { x1 = x; x = f(x1) + x1; } while( l(x,x1) ); вот попытки но вычисляет неправильно( Код:
Последний раз редактировалось mike1988; 08.06.2015 в 13:26. Причина: Коментарии на русском языке некорректно отображаються |
08.06.2015, 16:23 | #2 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Я не понял. Вы пишете про какую-то итерацию, а судя по коду - вычисляете не итерацией, а с помощью ряда Тейлора:
Код:
|
08.06.2015, 19:41 | #3 |
Регистрация: 26.05.2015
Сообщений: 8
|
Понял вас.
А как записать правильно с факториалом?
|
08.06.2015, 20:19 | #4 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Так вы хоть сами поняли, что вам надо ?
- методом итераций ( а именно последовательных приложений) - или через ряд Тейлора . Это разные вещи. Для разных целей. - Методом итераций ищется корень ( то есть решение) уравнения f(x)=0 Например cos(x)=0 или cos(x)=x То есть надо найти x - С помощью ряда Тейлора ищется значение функции f(x), например cos(x) То есть надо найти f(x) при известном x Мне кажется, вы просто скопировали ( точнее попытались скопировать) текст задания, не поняв его. А потом скопировали откуда-то первый попавшийся код на Си. Даже непонятно, что найти. Напишите хоть само уравнение. Вот, к примеру, поиск корня уравнения cos(x)=0 методом простых итераций ( последовательных приближений) Код:
Последний раз редактировалось type_Oleg; 08.06.2015 в 21:13. |
08.06.2015, 22:01 | #5 |
Регистрация: 26.05.2015
Сообщений: 8
|
с помощью ряда Тейлора.
Задание звучало следующим образом. Изучение итерационных процессов. Ряд Тейлора (-1)^n*(x^2n)/(2n!) и функция cos(x) она для проверки.
Вычисление степенного ряда для x в диапазоне от 0.1 до 1 с шагом 0.1 С математикой не очень дружу я почему то думал что вычисление ряда это и есть итерация)) |
08.06.2015, 23:07 | #6 | |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Цитата:
Если все же нужен ряд Тейлора, то лучше вычислять последующее слагаемое через предыдущее. 1 - первое слагаемое. Умножаете на (-x*x), делите на (1*2), получаете второе слагаемое - x^2 / 2! Умножаете на (-x*x), делите на (3*4), получаете третье слагаемое + x^4 / 4! И т.д. |
|
09.06.2015, 10:25 | #7 |
Регистрация: 26.05.2015
Сообщений: 8
|
сейчас дошло)
сейчас дошло.
Код HTML:
#include <stdio.h> #include <conio.h> #include <math.h> const double eps = 0.00001; double mycos(double x,double eps) { double s,an; int n; n=0; // начальное значение n an=1; // храним н-ый член ряда s=0; // сумма ряда while(fabs(an)>eps) { s+=an; // суммируем очередной член ряда n++; // переходим к следующему члену an*=-x*x/(2.*n-1.0)/(2.0*n); // пересчитываем a(n) через a(n-1) } return s; // получившаяся сумма } main() { double x; // аргумент функции printf("agr\tmyfunc\t\tcos(arg)\n\n"); for (x = 0.1; x < 1.0; x += 0.1) { printf("%0.1f\t%f\t%f\n", x, mycos(x, eps), cos(x)); // выводим строку таблицы } getch(); } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C#, решение уравнения методом итерации | yankel | Помощь студентам | 1 | 10.09.2014 22:00 |
"Решение системы линейных алгебраических уравнений методом простой итерации" и "Решение нелинейного уравнения методом итерации" | BORODA77 | Помощь студентам | 0 | 19.03.2014 17:31 |
Надо найти корни уравнения методом простой итерации! | smotra88 | Помощь студентам | 6 | 20.12.2012 12:31 |
Решение СЛАУ методом итерации | Dezolyator | Фриланс | 3 | 20.03.2012 19:04 |
Решение нелинейных уравнений методом хорд и методом простой итерации(С++) | Foralberg | Помощь студентам | 9 | 31.01.2011 01:33 |