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

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

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

> Программа вычисление золотого сечения, Циклы
Casio
сообщение 5.11.2005 15:17
Сообщение #1


Гость






Здраствуйте. Помогите решить след. задачу:
Составить программу вычисления золотого сечения q с точностью Е=0.00001, используя представление q в виде:
Программа строится на вычислении предыдущего z1 и нового значения z2. Итерационный
Код

q=1 + ______1_________
      2 + ____1_______
           2 + ___1___
               2 + ...

цикл заканчивается, если |z2-z1|<=E
Z1 начальное =2+2/5
Z2=2+1/z1
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Casio
сообщение 5.11.2005 16:08
Сообщение #2


Гость






Огромное спасибо ;)
Я вот только не пойму зачем дана формула q? Она ведь не используется?
У меня вот еще одна проблема. Задача:
Составить таблицу ступенчатой функции
1.5<=a<=3; da=0.3; 6<x<=10; dx=2. Найти wmax и определить a, x, при которых оно определяется. Дана система (так как там много символов я запишу уравнения в другом виде)
Код

     x*sqrt(x-a)
W=   x*sinx(a*x)
                          Exp(x*Ln(a))
    ------------------------------------------------------
      cos(sqr(a*x-1))*cos(sqr(a*x-1))*cos(sqr(a*x-1))

P.S В системе 3 уравнения ^^. Я реализовал программу таким способом:
Код

program sistema;
uses crt;
const
da=0.3;                                      
dx=2;                                                                    
var                                                                        
a,p,w,w1,w2,w3,maximum,max: real;                                          
i,x: word;                                                                  
begin                                                                      
clrscr;                                                                  
a:=1.5;                                                                  
repeat {cikl po a}                                                    
x:=8;                                                                
repeat {cikl po x}                                                  
w1:=x*sqrt(x-a);                                                  
w2:=x*sin(a*x);                                                    
w3:= Exp(x*Ln(a))/cos(sqr(a*x-1))*cos(sqr(a*x-1))*cos(sqr(a*x-1));            
if w1>w2 then max:=w1 else max:=w2;                            
if max>w3 then maximum:=max else maximum:=w3;                  
if maximum>max then                                            
begin                                                          
maximum:=maximum;                                              
writeln('W max = ',maximum:2:1);                                
write(' a = ',a:2:0);                                          
writeln('; x = ',x);                                            
end;                                                            
x:=x+dx;                                                          
until(x>10);                                                        
a:=a+da;                                                            
until(a>3);                                                          
readln;                                                                  
end.    

Вообщем. Wmax я нашел. По условию надо найти "Найти wmax и определить a, x, при которых оно определяется.". Выше указанным моим кодом выдается несколько вариантов:
Код

W max = 356.9
a =  2; x = 10
W max = 2223.8
a =  2; x = 10
W max = 2301.2
a =  3; x = 8
W max = 34499.8
a =  3; x = 10

Где верный вариант только
W max = 34499.8
a = 3; x = 10
Как видно он находит и max и при каких a и x. Но мне мешают остальные три варианта при выводе. Собственно, помогите подправить программу. Возможно, где то условие не верно в цикле.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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