IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Метод Итерраций, поправить код
geforse
сообщение 10.10.2009 10:09
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Мне нужно решить уравнение методом Итерраций
http://s42.radikal.ru/i098/0910/b5/0ea8b8a0c902.gif
(на отрезке [0-1])


program iterr;
uses crt;
var
x1,x2,e:real;
i:byte;
begin
textbackground(black);
repeat
clrscr;
textbackground(red);
window(5,5,40,15);
textcolor(white);
clrscr;
writeln('Enter [0-1]');
readln(x1)
until(x1>0)and(x1<=1);
i:=0;
e:=0.0001;
x2:=sqrt(exp(ln(1)*(-0.4)*sqr(X1)))-arctan(X1/sqrt(1-X1*X1));
while abs(x2-x1)>e do
begin
x1:=x2;

{ВОТ ТУТ ОШИБКА} x2:=sqrt(exp(ln(1)*(-0.4)*sqr(X1)))-arctan(X1/sqrt(1-X1*X1));

end;
textbackground(white);
window(40,20,70,30);
textcolor(red);
clrscr;
writeln('pechat x2=',x2:3:3);
writeln('Iterasii i=',i);
readln;
end.


Выдаёт ошибку Error 207: Invalid floating point opration

Помогите разобраться...

Сообщение отредактировано: geforse - 10.10.2009 10:45
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 10.10.2009 10:43
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(geforse @ 10.10.2009 11:09) *
Ссылка не работает.
Еще, пожалуйста:
1. делай нормальный линк (в форме ввода есть кнопка, либо просто подставь протокол)
2. пиши же наконец слово "итерация", как положено - с одним "р"..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 10.10.2009 10:44
Сообщение #3


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


1. Что такое ln(1)? Не проще сразу написать "0", а заодно убрать вычисления остальных сомножителей, которые впоследствии предполагается умножать на 0?
2. X1 может быть равно 1 (по условию), следовательно, подкоренное выражение, а вместе с нрм и знаменатель может быть равен 0.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
geforse
сообщение 10.10.2009 10:46
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Исправил)

картинка
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 10.10.2009 10:56
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(geforse @ 10.10.2009 11:46) *
Исправил)

картинка
А, это все та самая формула.. smile.gif
Ну-ну.. ))
Хорошо, если считать, что она верна, то все же лучше записать ее так:

|x| - arcsin(x) = 0

И тут видно, что у нее излом в х=0. Если решать при х>0, то производная левой части есть:

1 - 1/Sqrt(1-x2)

Отсюда и пляши..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
geforse
сообщение 10.10.2009 11:10
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Цитата(Lapp @ 10.10.2009 11:56) *

А, это все та самая формула.. smile.gif


да она))

Lapp, спасибо, попробую smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
geforse
сообщение 13.10.2009 18:14
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Помогите с этой прогой...уже нежелю сижу, всё никак ... кучу вариантов перепробовал sad.gif

узнал вот ещё что, приближённое значение корня (что в ответе должно получиться) 0.7672
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
-Lapp-
сообщение 14.10.2009 16:24
Сообщение #8


Гость






Цитата(geforse @ 13.10.2009 18:14) *
Помогите с этой прогой...уже нежелю сижу, всё никак ... кучу вариантов перепробовал sad.gif
узнал вот ещё что, приближённое значение корня (что в ответе должно получиться) 0.7672

Ты лучше бы узнал, как правильно записывается уравнение. В том виде, в котором ты его дал, решение х=0.
Перестань морочить голову себе и людям, подойди к препу и спроси точный вид уравнения.
 К началу страницы 
+ Ответить 
Lapp
сообщение 14.10.2009 16:35
Сообщение #9


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(geforse @ 13.10.2009 19:14) *
значение корня (что в ответе должно получиться) 0.7672
Ладно, я сегодня добрый..
Забирай свое решение, и лучше больше не приходи, если не можешь правильно написать условие.
const
Eps=0.0001;
var
k: integer;
a,b,x,y,y1: double;

function f(x: double): double;
begin
f:=Sqrt(1-0.4*x*x)-arctan(x/Sqrt(1-x*x))
end;

function f1(x: double): double;
begin
f1:=0.5/Sqrt(1-0.4*x*x)*(-0.8*x)-1/Sqrt(1-x*x)
end;

begin
a:=0;
b:=1;
x:=(a+b)/2;
y:=f(x);
while abs(y)>Eps do begin
y:=f(x);
x:=x-y/f1(x);
k:=k+1
end;
writeln('root is: x=',x:5:8,' iterarions: ',k);
readln
end.


Твое уравнение вот:

Sqrt(1-0.4*x2) - arcsin(x) = 0



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.10.2009 16:36
Сообщение #10


Гость






Цитата
узнал вот ещё что, приближённое значение корня (что в ответе должно получиться) 0.7672
Это для функции: sqrt(1 - 0.4*x2) - arcsin(x) = 0 такое значение получается. То есть, (-0.4) - не показатель степени.

P.S.
Андрей, опередил smile.gif

Сообщение отредактировано: volvo - 14.10.2009 16:38
 К началу страницы 
+ Ответить 
Lapp
сообщение 14.10.2009 16:39
Сообщение #11


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(volvo @ 14.10.2009 17:36) *
Андрей, опередил smile.gif
smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
geforse
сообщение 14.10.2009 17:37
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Андрей, большое тебе спасибо ... просто не человеческое спасибо )))

з.ы. не пойму как репутацию прибавлять ?)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.10.2009 18:24
Сообщение #13


Гость






Цитата
не пойму как репутацию прибавлять ?)
Это тебе пока недоступно: репутация

(+ Lapp-у добавлен от имени geforse)
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.04.2024 19:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"