Главная страница
    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.043 c
6-1155111662
Kiloper
2006-08-09 12:21
2006.12.31
как с помощью компонента IdHTTP передать PHP скрипту файл?


2-1165824681
Клара
2006-12-11 11:11
2006.12.31
Table


15-1163167195
Empleado
2006-11-10 16:59
2006.12.31
Любителям английского


15-1165500112
Gorlum
2006-12-07 17:01
2006.12.31
Помогите, пожалуйста, найти где купить эту скульптуру.


2-1165842609
DelphiLexx
2006-12-11 16:10
2006.12.31
Как через SetLength установить размерность дин. массива





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский