Для х изменяющегося от 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(); } } }
Свежие комментарии