Помощь - Поиск - Пользователи - Календарь
Полная версия: задача без массива
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Athen
Вот такая задачка... даж не знаю за что хвататься... помогите пожалуста!
Дано ε>0. С точностью до ε найти корень уравнения πx^3-ex^2+(2e+1)x+ π^2=0
КМА
Могу предположить, что здесь должен быть метод хорд и касательных. Попробуй через него.
Алена
Athen, написано же:
Цитата(Правила Раздела)
3. Прежде чем задавать вопрос, см. "FAQ"

Численные методы решения уравнений
NTL
Цитата(Athen @ 19.03.2007 15:05) *

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

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

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

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

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

Скажи, чем тебе не понравился метод Ньютона, например? Там отдельными функциями выделена только заданная функция (то есть в твоем случае πx^3-ex^2+(2e+1)x+ π^2) и ее производная, которую тоже не сложно найти.
При желании можно избавиться даже от этого выделения - просто в тексте программы заменить, например, F(prev) на pi*prev^3-e*prev^2+(2e+1)*prev+pi^2 (естественно, записав это выражение по паскалевским правилам)
Athen
Я просто не очень пока понимаю эти всякие функции... Лан, спасибо за подсказку! попробую сделать так...
Athen
Вроде сделала.... проверьте на правильность пожалуста!!
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
Во-первых, ты пользуешься переменной prev ДО того, как ей было присвоено какое-то значение. Это ошибка, у тебя начальные значения F и F1 будут непредсказуемы. А во-вторых, надо F и F1 вычислять и внутри цикла тоже - после изменения значения prev. Иначе результат будет неверен.
мисс_граффити
я бы не стала делать
Const pi=3.14; e=2.71;

в языке есть эти константы, заданные с большей точностью - почему бы не пользоваться ими?
Athen
Ну ладно, F и F1 я засуну в цикл... получается, если я правильно понимаю, что значение prev нужно ввести с клавиатуры?
Насчет констант пи и е... их вообще можно не описывать?
мисс_граффити
да.
они уже заданы.
Pi и exp(1) соответственно.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.