Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите с программой на Паскале (http://www.tehnari.ru/f41/t82543/)

Kampuchiec 19.12.2012 16:26

Помогите с программой на Паскале
 
Всем привет, помогите с программой.
Дана формула:f(x)=2/pi-4/3*pi(cos2x+cos4x/5+cos6x/7+....)
Нужно найти f(x),введя x c консоли и сравнить результат с Eps. Eps тоже ввести с консоли, условие f(x)<eps. Желательно через циклы while или repeat. Заранее благодарю.

Vladimir_S 19.12.2012 16:44

Нет, ну положительно - пора мне на свалку истории. Второе за день задание - и ни бельмеса понять не могу!
1. Не улавливаю закономерности членов суммы в скобках. Вот если бы первый член был cos2x/3 - тогда другое дело, тогда это было cos(2*k*x)/(2*k-1), k=1,2,3... А так :tehnari_ru_325:.
2. Откуда следует, что эта функция вообще сходится к чему бы то ни было, тем более к какой-то малой величине? Почему Вы считаете, что функция, в зависимости от количества слагаемых, будет монотонно уменьшаться? Странно. Так, при x = π/2
f(x) = 2/π-4*π/3*(π/4-1) ≈ -0.41

А вот если х = 0, то ряд и вовсе расходится.
Ну и как прикажете это самое "Eps" задавать?

Kampuchiec 19.12.2012 17:43

Eps любое. там есть закономерность только что бы её задать нужно две переменных делать. Может мне скинуть код, с ним может по понятнее будет, я просто набросал там, но считает не правильно

Kampuchiec 19.12.2012 17:47

И еще это разложение Фурье на косинусы.(по моему)

Vladimir_S 19.12.2012 19:18

Цитата:

Сообщение от Kampuchiec (Сообщение 835846)
Eps любое. там есть закономерность только что бы её задать нужно две переменных делать.

Цитата:

Сообщение от Kampuchiec (Сообщение 835855)
И еще это разложение Фурье на косинусы.(по моему)

Час от часу не легче! Теперь еще и Фурье с какого-то боку. Что же, прикажете систему интегральных уравнений решать, чтобы восстановить по коэффициентам разлагаемую периодическую функцию? Или как?
Цитата:

Сообщение от Kampuchiec (Сообщение 835846)
Может мне скинуть код, с ним может по понятнее будет, я просто набросал там, но считает не правильно

Ну скиньте, что Вы там "набросали", посмотрим.

Kampuchiec 20.12.2012 02:57

Ну вот как то так))
Цитата:

program def;
uses crt;
var s,a,i,fx,t,g,x,eps:real;
begin
write('X=');
readln(x);
write('eps=');
readln(eps);
i:=3.0;
s:=2.0;
t:=(2.0/pi)-(4.0/(3.0*pi));
fx:=0;
g:=cos(2*x);
repeat
a:=cos((2.0*s*x)/(2.0*i-1.0));
fx:=fx+a;
i:=i+1.0;
s:=s+1.0;
writeln('fx=',fx:0:5);
until ((fx+g)*t<eps);
readln;
end.

Kampuchiec 20.12.2012 13:42

Вложений: 1
Вот функция.
Идет до бесконечности с периодом равным pi и ограниченной снизу нулем, а сверху единицей.

Kampuchiec 23.12.2012 10:13

Помогите если не сложно..

Vladimir_S 23.12.2012 11:08

Вложений: 1
Цитата:

Сообщение от Kampuchiec (Сообщение 837625)
Помогите если не сложно..

Не только сложно, но и вовсе невозможно.
Прежде всего - почему вы считаете допустимым и правильным выкладывать задания, написанные не рукой с участием головы, а левой задней ногой? Как, скажите на милость, мы должны догадаться, что запись
f(x)=2/pi-4/3*pi(cos2x+cos4x/5+cos6x/7+....)
следует понимать (а это следует из Вашего кода), как
f(x)=(2/pi-4/3*pi)*(cos2x/3+cos4x/5+cos6x/7+....)?
Теперь дальше. Ранее я Вам пытался объяснить, что задание в том виде, как оно выложено (с учетом или без учета вышеприведенного исправления) - некорректно. Рассуждал о сходимости, примеры приводил... Всё - мимо. Напишите, да и всё. Хорошо. Вот Вам программа, написанная по Вашему заданию, протестированная при х=0 (см.рисунок), в которой на экран выведены результаты суммирования ряда в зависимости от количества учтенных членов. Как я Вам и писал раньше, налицо - медленная логарифмическая расходимость, и ни к какому малому пределу указанная сумма сходиться не желает.
Код:

Var
 x,eps,t,Sum,a:real;
 k:Integer;
Begin
 Write('x= ');
 Readln(x);
 Write('eps= ');
 Readln(eps);
 t:=2.0/Pi-4.0*Pi/3.0;
 k:=0;
 Sum:=0;
 Repeat
  Inc(k);
  a:=Cos(x*2*k)/(2*k-1);
  Sum:=Sum+a;
  Writeln('k=',k:2,'  f(x)=',Sum*t:8:5);
 Until (Abs(Sum*t)<Eps) or (k=22);
 Readln;
End.

Такая ситуация может IMHO иметь два объяснения:
1. Вы, как обычно, напрочь переврали формулировку задания и допустили несколько ошибок в постановке задачи. Тем более, что подобные перлы в Ваших сообщениях появляются не впервые. Если так, сверьте задание и исправьте.
2. Ваши преподаватели - это сборище безграмотных идиотов. В таком случае, примите мои соболезнования.
Всё.

Kampuchiec 23.12.2012 13:40

Спасибо. Насчет заданий учту. Исправлюсь.


Часовой пояс GMT +4, время: 09:38.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.