![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
matic |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Условие задачи:
Вычислить функцию y=ln(x), разложенную в степенной ряд, с заданной степенью точности. Помогите пожалуйства. Заранее благодарю. |
![]() ![]() |
Fanat |
![]()
Сообщение
#2
|
![]() Fanat ![]() ![]() ![]() Группа: Пользователи Сообщений: 261 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Условие задачи: Вычислить функцию y=ln(x), разложенную в степенной ряд, с заданной степенью точности. Помогите пожалуйства. Заранее благодарю. Всё работает. Сверял с Matcad, только вот точность с результатами Matcada совпадает если в программе взять точность выше. Может где-нибудь есть помарки. #include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#include<stdlib.h>
double F(int n,float x,double log1,float eps)
{
if (fabs(pow(-1,n-1)*pow(x-1,n)/n) < eps ) return log1;
log1+=(pow(-1,n-1)*pow(x-1,n)/n);
log1=F(n+1,x,log1,eps);
return log1;
}
int main()
{
clrscr();
float x,eps;
cout<<"X?"<<endl;
cin>>x;
cout<<"EPS?"<<endl;
cin>>eps;
double log=F(1,x,0,eps);
cout<<log;
getche();
return 0;
}
|
Fanat |
![]()
Сообщение
#3
|
![]() Fanat ![]() ![]() ![]() Группа: Пользователи Сообщений: 261 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Вот что получилось. Модуль числа (х-1) должен быть меньше 1. То есть х вводим от 0 до 2. Всё работает. Сверял с Matcad, только вот точность с результатами Matcada совпадает если в программе взять точность выше. Может где-нибудь есть помарки. if (fabs(pow(-1,n-1)*pow(x-1,n)/n) < eps ) return log1+(pow(-1,n-1)*pow(x-1,n)/n);
Вот так должно быть правильно, хотя проверить не могу щас. |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 20:15 |