Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

ArcCos x(квадрат)   Найти похожие ветки 

 
azl ©   (2006-12-13 18:31) [0]

Здравствуйте, мастера. Помогите правильно записать ArcCos x в квадрате. Использую модуль Math.
Пишу:
var
 z : Real; либо z: Extended;
begin
 z := ArcCos(sqr(x));
...
end;
Выдается ошибка Invalid floating point operation.

Даже если просто вычисляю ArcCos(x)

z := ArcCos(x) //тоже выдается ошибка

Как это побороть можно?
Спасибо.


 
Рамиль ©   (2006-12-13 18:35) [1]

Случаем abs(x)>1 ?


 
Jeer ©   (2006-12-13 18:36) [2]

x не инициализирован


 
azl ©   (2006-12-13 18:58) [3]

Да, забыл написать
Const
 x=10,093


 
azl ©   (2006-12-13 18:59) [4]

Почему ошибка? Я просто в пример забыл дописать X. А так я это писал в программе.


 
Alx2 ©   (2006-12-13 19:10) [5]

>azl ©   (13.12.06 18:59) [4]
>Const
> x=10,093

На вещественных числах косинус принимает значение от -1 до 1.
Вы же ищете вещественное число, на он бы принял значение 10 с хвостиком.
Т.е. желаете странного


 
SergP ©   (2006-12-13 19:12) [6]

abs(x) не может превышать 1 (в мирное время)
В военное может быть не более 4.
:-)


 
azl ©   (2006-12-13 19:35) [7]

Понимаю, так а как же быть? Задание такое мне дали.
Записать  арифметическое  выражение:

Z = ArcCosr(x)в квадрате -a* sqrt(корень)(x) + (sin в кубе(Pi/2+a))/lg2x
при  а = 0.94  и  х =10.093

На Visual Basic это выглядит так:

Private Sub Command1_Click()
Dim z As Single
Const a = 0.94, x = 10.093, p = 3.14
z = Cos(x) ^ 2 - a * Sqr(x) + (Sin(p / 2 + a) ^ 3) / Log(2 * x)
Text1.Text = z
End Sub

Private Sub Command2_Click()
End
End  Sub

Не знаю, работает это или нет, т.к. не знаю Visual Basic, но говорят, что работает.

Я пишу так:
const
  a = 0,94; b = 10,093;
var
 z: real;
begin
 z := ArcCos(sqr(x)) - a * sqrt(x) + (exp(3 * ln(Sin(Pi / 2 + a)))) / Log10(2 * x);
 Label1.Caption := FloatToStr(z);
end;
Если пишу вместо ArcCos - просто Cos, все работает.


 
Alx2 ©   (2006-12-13 19:43) [8]

>azl ©   (13.12.06 19:35) [7]

Именно ArcCosr? То есть "r" в конце?
Значит, имеется в виду вещественное значение главной ветви арккосинуса?
Или все-таки описка?


 
Alx2 ©   (2006-12-13 19:49) [9]

Если не описка, то это значение для abs(x)>1 есть 0.
При x по модулю больше единицы весь arccos(x) сидит на комплексной оси


 
Alx2 ©   (2006-12-13 19:50) [10]

Поправочка: не для abs(x)>1, а для x>1


 
Alx2 ©   (2006-12-13 20:12) [11]

Еще одна поправочка. arccos идет в квадрате. А это уже другой разговор.
Вот формула:
arccos(x)^2 = - ln(x+sqrt(x^2-1))^2


 
azl ©   (2006-12-13 20:23) [12]

Нет, это опечатка. правильно - ArcCos. А я и не писал нигде abs(x) и сразу написал, что в квадрате, ArcCos(x)^2. > ArcCos x в квадрате.

Т.е. на паскале это можно записать так:
sqr(ln(x+sqrt(sqr(x)-1)))?
или
так sqr(ln(x+sqrt(sqr(x-1))))?


 
azl ©   (2006-12-13 20:24) [13]

Забыл минус перед ln дописать


 
Alx2 ©   (2006-12-13 20:29) [14]

>azl ©  

Вместо ArcCos(x)^2
написать
- sqr(ln(x+sqrt(sqr(x)-1)))

Но важно еще и другое: возможно, в задании опечатка со значением x=10..
Правда, если с комплексными функциями уже работаете, то скорее всего, это нормально.


 
azl ©   (2006-12-13 20:35) [15]


> Alx2

Спасибо большое.
Это не мое задание, просто студентка одна попросила решить. А опечатка там или нет, я не знаю.
Вроде бы работает. Ответ выдает такой: -11,8442912098953

procedure TForm1.Button1Click(Sender: TObject);
const
 a=0.94; x=10.093;
var
 z: real;
begin
  z:=-sqr(ln(x+sqrt(sqr(x)-1))) - a * sqrt(x) + (exp(3 * ln(Sin(Pi / 2 + a)))) / Log10(2 * x);
  Label1.Caption := FloatToStr(z);
end;



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.037 c
15-1165399919
boriskb
2006-12-06 13:11
2006.12.31
Годовщина победы под Москвой


2-1165523356
ProgRAMmer Dimonych
2006-12-07 23:29
2006.12.31
Тормоз TMediaPlayer а


3-1160737584
Antoxa2005
2006-10-13 15:06
2006.12.31
Подскажите, а как сменить пароль пользователя SYSDBA программно?


1-1163424853
GEN++
2006-11-13 16:34
2006.12.31
Контролер сетевой активности


2-1165929833
kutuzov47
2006-12-12 16:23
2006.12.31
Изменение размеров формы на определенную величину





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский