26
Ноя
2016

Большая погрешность при разложении функции на степенной ряд

Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в трех случаях:

  • а) для заданного n;
  • б) для заданной точности e (e=0.0001);
  • с) для «точного» значения (по аналитической формуле).

Для сравнения найти относительную погрешность вычисления функции значение функции о_погр = ABS( (точ_знач – приближ_знач)/ точ_знач)

  • функция: y=-ln|2sinx/2|
  • диапазон изменения аргумента: pi/5<=x<=9pi/5
  • n=40
  • сумма: S=cosx+cos2x/2+...+cosnx/n

      package laboratornaya3; 
    import static java.lang.Math.*; 
    public class Laboratornaya3 { 
    public static void main(String[] args) { 
    double a = PI / 5, 
    b = 9 * PI / 5, 
    E = 0.0001, 
    pSN, pSE; 
    int n = 40; 
    double dx=(b-a)/10; 
    //Шапка 
    System.out.printf("%-15s %-30s %-30s %-30s %-30s %-30s", "x", "y", "SN", "SE", "pSN", "pSE"); 
    System.out.println(); 
    for (double x = a; x <= b; x += dx) 
    { 
    // Точное значение Y 
    double y = -log(abs(2*sin(x/2))); 
    // SN 
    double SN = 0; 
    for (int i = 1; i <= n; i++) 
    { 
    SN += cos(i*x)/i; 
    } 
    // SE 
    double SE = 0; 
    int i = 1; 
    double step; 
    do 
    { 
    step = cos(i*x)/i; 
    SE+=step; 
    i++; 
    } 
    while (abs(step)>E); 
    // погрешности 
    pSN = abs((y - SN) / y); 
    pSE = abs((y - SE) / y); 
    //вывод 
    System.out.printf("%-15s %-30s %-30s %-30s %-30s %-30s", 
    String.format("%.5f", x), y, SN, SE, pSN, pSE); 
    System.out.println(); 
    } 
    } 
    }
    

Источник: https://ru.stackoverflow.com/questions/596240/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F-%D0%BF%D0%BE%D0%B3%D1%80%D0%B5%D1%88%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%BF%D1%80%D0%B8-%D1%80%D0%B0%D0%B7%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B8-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0-%D1%81%D1%82%D0%B5%D0%BF%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D1%80%D1%8F%D0%B4

Тебе может это понравится...

Добавить комментарий