Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Итеративные вычисления 
:(
    Опции темы
Newchap
Дата 17.9.2013, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.9.2013

Репутация: нет
Всего: нет



Добрый день, к сожалению, не могу понять как дальше делать задание и был бы признателен, если бы вы мне помогли.
Само уравнение я приклеил к посту, задача же такова :
Написать программу вычисления приближенных значений функции, представленной в виде ряда, в десяти равноотстоящих друг от друга точках указанного диапазона возможных значений аргумента, как в таблице, которая будет в след посте, т.е. сначала посчитать Х от 10^-1 до 10^-6, затем перейти на следующий X 

Вот то, что я имею на данный момент, она считает х от -0.5 до 0.3, но только с одним параметром eps.

Большое спасибо!

Код

uses crt,math;
var xn,xk,x,dx,eps,s,t,p:real; fp:text;
begin
AssignFile(fp,'lab1.text');
Rewrite(fp);
Write('xn='); ReadLn(xn);
Write('xn=');ReadLn(xk);
dx:=(xk-xn)/9;
eps:=0.00001;
x:=xn;
writeln('----------------------------');
writeln('eps,     |  x  |    s    | (1+x)^-1 |');
writeln('----------------------------');
while x<=xk+dx/2 do
 begin
  s:=1; 
  t:=1;
  while abs(t)>eps do
   begin
    t:=-t*x;
    s:=s+t;
   end;
  writeln(',x:5:2,'|',s:8:4,' |',1/(1+x):9:4,' |');
    x:=x+dx;
 write(fp,'lab1.text');
 end;
writeln('----------------------------');
readln;
Closefile(fp);
end.                                     




Это сообщение отредактировал(а) Poseidon - 18.9.2013, 09:33

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Безымянный.png 4,22 Kb
PM MAIL   Вверх
Newchap
Дата 17.9.2013, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.9.2013

Репутация: нет
Всего: нет



Вот и табличка

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Безымянный1.jpg 48,61 Kb
PM MAIL   Вверх
Pawl
Дата 20.9.2013, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 14
Всего: 28



Вы неправильно поняли задачу. Тут не надо каждый раз считать х от 0.1 до 0.00001, тут надо для каждого х из заданого промежутка найти приближенное значение (1 + x)^-1 (т. е. 1 / (1 + х)) с заданой точностью. Делается это при помощи вложенного цикла:
Код

program Project2;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils;

const
  eps = 0.00001;
  b = -0.5;
  e = 0.3;

var
  x, fx, dx, a, u: real;
  k: integer;

begin
  dx := (e - b) / 9;
  a := b;
  while a <= e do
  begin
    x := 1;
    k := 1;
    fx := 1;
    repeat
      k := -k;
      x := x * (a);
      u := k * x;
      fx := fx + u;
    until eps > abs(u);
    write('x = ', a:3:3, ' (1 + x)^-1 = ', fx:5:5, ' ');
    writeln('proof: 1 / (1 + x) = ', (1 / (1 + a)):5:5);
    a := a + dx;
  end;
  readln;

end.


Это сообщение отредактировал(а) Pawl - 20.9.2013, 10:28


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0725 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.