Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
ВнизArcCos x(квадрат) Найти похожие ветки
← →
azl © (2006-12-13 18:31) [0]Здравствуйте, мастера. Помогите правильно записать ArcCos x в квадрате. Использую модуль Math.
Пишу:var
Выдается ошибка Invalid floating point operation.
z : Real; либо z: Extended;
begin
z := ArcCos(sqr(x));
...
end;
Даже если просто вычисляю 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,8442912098953procedure 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