Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.31;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.714 c
11-1142432146
Vladimir Kladov
2006-03-15 17:15
2006.12.31
Надо исправить линки на


15-1165903029
ан
2006-12-12 08:57
2006.12.31
Умер Аугусто Пиночет...


1-1163424580
DVM
2006-11-13 16:29
2006.12.31
Помогите с выбором предка для класса. Как сделать такое?


2-1165860520
M1sT
2006-12-11 21:08
2006.12.31
Как и где правильно хранить пароль администратора программы?


2-1165992803
031178
2006-12-13 09:53
2006.12.31
SaveDialog