Нелинейное уравнение (метод простых итераций) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Решить нелинейное уравнение методом простых итераций с точностью до

Е

=0,0001 cos(x+0,5)=x3 Что то вообще не получается а скоро уже нужно сдавать Буду благодарен за помощь
Язык С
что то типа такого
Листинг программы
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<math.h>
  4. void main()
  5. {
  6. float p,pd,y=2.1,x0=0.1,q=0.6359;
  7. int i=0;
  8. clrscr();
  9. pd=?????????;
  10. for(;fabs(y-x0)>0.0001;)
  11. {
  12. x0=y;
  13. y=????????????;
  14. i++;
  15. printf("y%i=%1.10f \n",i,y);
  16. }
  17. puts("\nResultat z tochnistyu E=0.0001 :");
  18. printf("y=%1.10f \n\n",y);
  19. p=((pow(q,i))*pd)/(1-q);
  20. printf("Pohubka=%1.20f",p);
  21. getch();
  22. }

Решение задачи: «Нелинейное уравнение (метод простых итераций)»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. double Phi (double x);
  5. double Oshibka(double x);
  6.  
  7. const double Eps = 0.0001;
  8.  
  9. int main ()
  10. {
  11.         double x=1.0; // начальное приближение
  12.         double y=0.0;
  13.         int i;
  14.         while (Oshibka(y)>Eps)
  15.         {
  16.                 y = Phi(x);
  17.                 x=y;
  18.         }
  19.  
  20.    printf("x= %f \n",x);
  21.         return 0;
  22. }
  23.  
  24. // Функция нахождения нового х зная старый
  25. double Phi (double x)
  26. {
  27.         double y;
  28.         if(x==0) return 0.0001;
  29.         y = pow(cos(0.5+x),1.0/3);
  30.         return y;
  31. }
  32.  
  33. // функция нахождения ошибки
  34. double Oshibka(double x)
  35. {
  36.         double y;
  37.         y = cos(x+0.5)-x*x*x;
  38.         if (y<0) y=-y;
  39.         return y;
  40. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с математическими функциями и для отладки.
  2. Объявляем функции Phi и Oshibka, которые будут использоваться в основной программе.
  3. Задаем константу Eps, которая определяет требуемую точность решения.
  4. В функции main инициализируем начальное приближение x=1.0 и y=0.0.
  5. Запускаем цикл while, который будет выполняться до тех пор, пока значение функции Oshibka не станет меньше заданной точности Eps.
  6. Внутри цикла вычисляем новое значение y с помощью функции Phi, используя текущее значение x.
  7. Затем присваиваем новое значение x старому значению y.
  8. После выхода из цикла while выводим найденное значение x на экран.
  9. В функции Phi вычисляем новое значение y с помощью формулы y=pow(cos(0.5+x),1.0/3).
  10. В функции Oshibka вычисляем ошибку с помощью формулы y=cos(x+0.5)-xxx.
  11. Если значение ошибки отрицательное, то умножаем его на -1, чтобы ошибка всегда была положительной.
  12. Возвращаем значение ошибки из функции Oshibka.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы