Вычислить и вывести на экран в виде таблицы значения функции, с заданной с помощью ряда Тейлора - C (СИ) (73413)
Формулировка задачи:
Посмотрите, пожалуйста мой код по рядам Тейлора, код явно не так считает ряд, что не так:?
double fun (double x, int k)
{
int i, a=1;
double total;
printf("\n X => ");
scanf("%lf", &x);
for (i=0; i<k; i++)
{
if(i==0)
a=1;
else
a*=(-1);
}
for(i=0; i<k; i++)
x*=(k+1);
for (i=0; i<k; i++)
total+=a*x/(i+1);
return total;
}Решение задачи: «Вычислить и вывести на экран в виде таблицы значения функции, с заданной с помощью ряда Тейлора»
textual
Листинг программы
double fun (double x, int k)
{
int i, a=1;
double xn=1, total=0;
for (i=1; i<=k; i++)
{
xn*=x;
total+=a*xn/i;
a=-a;
}
return total;
}
int main()
{
double x=0.5;//-1<x<=1
printf("fun(%lf,k)=%lf ln(1+%lf)=%lf\n",x,fun(x,100),x,log(1+x));
system("pause");
return 0;
}
Объяснение кода листинга программы
В данном коде реализован вычислительный процесс, который заключается в вычислении значения функции с помощью ряда Тейлора.
- В функции
funопределены следующие переменные:i- счётчик цикла;a- коэффициент перед членом ряда Тейлора;xn- член ряда Тейлора;total- итоговое значение ряда Тейлора.
- В функции
mainопределена переменнаяx, которая равна 0.5. - С помощью функции
printfвыводится следующая таблица:- значение функции
fun(x,100); - значение функции
log(1+x).
- значение функции
- В конце программы с помощью функции
systemприостанавливается выполнение программы до нажатия клавиши. - В конце программы возвращается 0, что означает успешное завершение работы программы.