Учеба и наука
Решение задачи - вопрос №262140
Помогите пожалуйста решить задачу на языке Си: нахождение приближенного значения методом касательных.есть готовое решение, но оно не работает, не понимаю где ошибка((.вот задание С заданной точностью ε найти приближенное значение корня уравнения f(x)=0 методом касательных. Считать, что требуемая точность ε достигнута, как только получено такое приближение хm (при m>0), для которого |f(xm)|<ε. В качестве f(x) рассмотреть функцию f(x)=ax4 – sin(bx)
апрель 28, 2012 г.
-
Всего ответов: 1
-
#include <stdio.h>
#include <conio.h>
#include <math.h>
double a,b,c;
double f(double x){
return a*pow(x,4)-sin(b*x)+c;
};
double d1f(double x){
return 4*a*pow(x,3)-b*cos(b*x);
};
void main(){
double y, x;
double x0;
double eps;
clrscr();
printf(«a = „);
scanf(“%lf»,&a);
printf(«b = „);
scanf(“%lf»,&b);
printf(«c = „);
scanf(“%lf»,&c);
for (x0=-10; x0 < 10; x0+=1) {
printf(«x = %lf y = %lf\n», x0, f(x0));
}
getch();
printf(«x0 = „);
scanf(“%lf»,&x0);
printf(«eps = „);
scanf(“%lf»,&eps);
int i=1;
do{
x=x0;
printf("\nx%i=%8.5lf",i,x);
x0=x-f(x)/d1f(x);
}while(fabs(x-x0)>eps);
printf ("\n Kasatelnix: x=%.4lf y=%.6lf", x0, f(x0));
getch();
return;
}Программу оттестировала. Она рабочая, но из-за параметров a,b, c функция получается разная. Корни заранее не известны. Нужно задавать х0 поближе к реальному значению. Для этого выполняют операцию отделения корней. Нужно на определенном промежутке найти значения функции и проверить, есть ли смена знака у значения функции. Именно там имеется корень.
В данной программе сначала просматривается промежуток от -10 до 10.
Если ввести переметры а=-2 b=1 c=3
то видно, что в районе -1 и 1 есть корни.
После нажатия на Enter, можно вводить х0
Вводила -1
получила один корень
за следующим разом вводила 1
получила другой корень.
Исходные данные нужно вводить осторожно, с пониманием. Т.к. вообще может не быть корней или они будут на другом участке и первое значение х0 получится слишком далеким от реального значения, процесс вместо сходящегося превратится в расходящийся и результата не будет.
Надеюсь, что ответ будет отмечен.
Похожие вопросы
Помогите найти алгоритм решения задачи о ранце методом ветвей и границ
сентябрь 1, 2014 г.
Решено
В некоторой стране автомобильный номер длиной 6 символов составляется из заглавных букв
сентябрь 19, 2013 г.