Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2011, 18:13   #1
lubov_morkov
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 37
По умолчанию Нелинейное уравнение

решить нелинейное уравнение методом итераций x^4*e^x+(корень кубический из x-1)-2=0, исходные данные (интервал, точность вычислений)считываются с файла, результаты (корни уравнения) дописываются в исходный файл, нужна программа в Паскале

Последний раз редактировалось lubov_morkov; 10.05.2011 в 18:52.
lubov_morkov вне форума Ответить с цитированием
Старый 11.05.2011, 07:23   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,760
По умолчанию

проблема в чем?
p51x вне форума Ответить с цитированием
Старый 11.05.2011, 15:50   #3
lubov_morkov
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 37
По умолчанию

вот примерный код, но он не работает, в чем ошибка?
function solve(a,b,eps:real):real;
var x,y:real;
begin
x:=a;
y:=exp(ln(x)*4)*exp(ln(2.17)*x)+exp (ln(x-1)/3)-2;
while abs(y-x)>eps do begin
x:=y;
y:=exp(ln(x)*4)*exp(ln(2.17)*x)+exp (ln(x-1)/3)-2;
end;
solve:=x;
end;
var f:text; a,b,eps,r:real;
begin
assign(f,'input.txt');
reset(f);
readln( a, b, eps);
close(f);
r:=solve(a,b,eps);
assign(f,'input.txt');
append(f);
writeln(f,r:0:2);
close(f);
readln;
end.
lubov_morkov вне форума Ответить с цитированием
Старый 11.05.2011, 18:05   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,760
По умолчанию

ln(2.17) - зачем?
abs(y-x) - это не вычисление точности, погрешности...
p51x вне форума Ответить с цитированием
Старый 12.05.2011, 07:29   #5
lubov_morkov
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 37
По умолчанию

ln(2.17) - это число е,
а как будет правильнее написать
lubov_morkov вне форума Ответить с цитированием
Старый 12.05.2011, 09:49   #6
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

y:=exp(4*ln(x))*exp(x)+exp(ln(x-1)/3)-2
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 23.05.2011, 20:10   #7
lubov_morkov
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 37
По умолчанию

НУ в чем ошибка?подскажите...

function solve(a,b,eps:real):real;
var x,y:real;
begin
x:=a;
y:=exp(4*ln(x))*exp(x)+exp(ln(x-1)/3)-2;
while abs(y-x)>eps do begin
x:=y;
y:=exp(ln(x)*4)*exp(ln(2.17)*x)+exp (ln(x-1)/3)-2;
end;
solve:=x;
end;
var f:text; a,b,eps,r:real;
begin
assign(f,'input.txt');
reset(f);
readln( a, b, eps);
close(f);
r:=solve(a,b,eps);
assign(f,'input.txt');
append(f);
writeln(f,r:0:2);
close(f);
end.
lubov_morkov вне форума Ответить с цитированием
Старый 23.05.2011, 21:16   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,760
По умолчанию

Цитата:
НУ в чем ошибка?
В непонимании итерационных методов.

На каждом шаге должно быть: х = х + Dx, y = y(x). А вы считаете x = y(x), y = y(x), т.е. y = y(y(x)).
Про погрешность я вам уже говорил.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нелинейное уравнение (метод простых итераций) maloy-rom Общие вопросы C/C++ 4 14.02.2010 23:14
уравнение A*X=B CyberOrcX Помощь студентам 4 14.10.2009 16:12
линеализовать нелинейное уравнение Alis Помощь студентам 2 28.09.2009 22:22
Уравнение Paul_AG Общие вопросы C/C++ 19 10.05.2009 22:50
как решить нелинейное уравнение методом простых итераций??? Bonifaciy Помощь студентам 3 13.11.2008 17:30