![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Casio |
![]()
Сообщение
#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 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну, по твоему же алгоритму - вот так:
var |
Casio |
![]()
Сообщение
#3
|
Гость ![]() |
Огромное спасибо ;)
Я вот только не пойму зачем дана формула 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. Но мне мешают остальные три варианта при выводе. Собственно, помогите подправить программу. Возможно, где то условие не верно в цикле. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата Я вот только не пойму зачем дана формула q? Она ведь не используется? Формула q - это для рекурсивного вычисления "золотого сечения"... Посмотри, как она представлена: там итерацией даже и не пахнет ![]() Теперь по поводу второй программы: Цитата Дана система (так как там много символов я запишу уравнения в другом виде) Ты бы как-то объяснил по-другому, т.к. то, что ты написал - полный бред с математической точки зрения... Это значит, что Цитата x*sqrt(x-a) Одновременно??? Или все-таки так:W= x*sinx(a*x) ... Цитата W = x*sqrt(x-a) , если { 1-е дополнительное условие } W = x*sinx(a*x) , если { 2-е дополнительное условие } ... |
Guest |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата Ты бы как-то объяснил по-другому, т.к. то, что ты написал - полный бред с математической точки зрения... Это значит, что Вообщем одновременно. Цитата x*sqrt(x-a) W= x*sinx(a*x) ... После W= идет фигурная скобка и 3 уравнения |
Casio |
![]()
Сообщение
#6
|
Гость ![]() |
Ну, так что есть предложения?
![]() |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Так пойдет?
program sistema; |
Casio |
![]()
Сообщение
#8
|
Гость ![]() |
Да. Огромное спасибо.
|
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 14:16 |