Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ задача без массива

Автор: Athen 19.03.2007 19:05

Вот такая задачка... даж не знаю за что хвататься... помогите пожалуста!
Дано ε>0. С точностью до ε найти корень уравнения πx^3-ex^2+(2e+1)x+ π^2=0

Автор: КМА 20.03.2007 4:05

Могу предположить, что здесь должен быть метод хорд и касательных. Попробуй через него.

Автор: Алена 20.03.2007 4:13

Athen, написано же:

Цитата(Правила Раздела)
3. Прежде чем задавать вопрос, см. "FAQ"

http://forum.pascal.net.ru/index.php?showtopic=3789

Автор: NTL 21.03.2007 2:23

Цитата(Athen @ 19.03.2007 15:05) *

найти корень уравнения πx^3-ex^2+(2e+1)x+ π^2=0

Начал решать, но так и не понял, что это за уравнение: п=pi?, ex^2=exp(x*x)?

Автор: Athen 21.03.2007 18:31

Цитата(NTL @ 21.03.2007 0:23) *

Начал решать, но так и не понял, что это за уравнение: п=pi?, ex^2=exp(x*x)?

п = pi=3,14, e=e=2,71

x^2 и все подобное значит, что х в квадрате

Автор: Athen 24.03.2007 14:59

Здесь метод по-проще должен быть!! это точно! с использованием циклов и условий.... здесь хитрость нужна, но я все равно не знаю, как решить! Помогите пожалуста! надо лабу сдавать!

Автор: мисс_граффити 24.03.2007 16:15

Ты бы посмотрела, на что тебе ссылку дали.
Там готовый код для нескольких способов, некоторые из которых ОЧЕНЬ простые.

Автор: Athen 24.03.2007 20:17

Там же написано: пол: ЖЕНСКИЙ
Я канеш понимаю... кому-то эти задачи кажутся ОЧЕНЬ простыми... а вот кому-то.... nea.gif Мне нужна прога без подпрограмм, функций, массивов и всякого другого такого! должно быть решение с одними условиями и циклами! Заранее огромное спасибо тому, кто хотя бы попытается!

Автор: мисс_граффити 24.03.2007 20:38

Ой. За пол - извини. Отредактировала сообщение.

Скажи, чем тебе не понравился метод Ньютона, например? Там отдельными функциями выделена только заданная функция (то есть в твоем случае πx^3-ex^2+(2e+1)x+ π^2) и ее производная, которую тоже не сложно найти.
При желании можно избавиться даже от этого выделения - просто в тексте программы заменить, например, F(prev) на pi*prev^3-e*prev^2+(2e+1)*prev+pi^2 (естественно, записав это выражение по паскалевским правилам)

Автор: Athen 25.03.2007 20:06

Я просто не очень пока понимаю эти всякие функции... Лан, спасибо за подсказку! попробую сделать так...

Автор: Athen 25.03.2007 22:25

Вроде сделала.... проверьте на правильность пожалуста!!

Program zadacha5;
Uses crt;
Const pi=3.14; e=2.71;
Var Eps,x,prev,newton,F,F1:real;
Begin
Clrscr;
writeln('Vvedite tochnost Eps');
readln(Eps);
F:=pi*prev*prev*prev-e*sqr(prev)+(2*e+1)*prev+sqr(pi);
F1:=3*pi*sqr(prev)-2*e*prev+2*e+1;
Repeat
prev:=x;
x:=prev-F/F1;
Until Abs(x-prev)<=Eps;
newton:=x;
writeln('x= ', newton:10:7);
readln;
End.

Автор: volvo 25.03.2007 22:57

Во-первых, ты пользуешься переменной prev ДО того, как ей было присвоено какое-то значение. Это ошибка, у тебя начальные значения F и F1 будут непредсказуемы. А во-вторых, надо F и F1 вычислять и внутри цикла тоже - после изменения значения prev. Иначе результат будет неверен.

Автор: мисс_граффити 25.03.2007 23:23

я бы не стала делать

Const pi=3.14; e=2.71;

в языке есть эти константы, заданные с большей точностью - почему бы не пользоваться ими?

Автор: Athen 26.03.2007 0:04

Ну ладно, F и F1 я засуну в цикл... получается, если я правильно понимаю, что значение prev нужно ввести с клавиатуры?
Насчет констант пи и е... их вообще можно не описывать?

Автор: мисс_граффити 26.03.2007 0:20

да.
они уже заданы.
Pi и exp(1) соответственно.