вопрос об аргументах

Форум пользователей пакета Maple

Модератор: Admin

tasha
Сообщения: 101
Зарегистрирован: Пт окт 27, 2006 7:00 pm

вопрос об аргументах

Сообщение tasha » Вт фев 19, 2008 9:18 am

необходимо подсчитать значение функции при помощи
f0:=0.:fn:=2*pi:
> stf:=pi/10:
> for f from f0 by stf to fn do rn:=solve(r0=(1/2)/(-10*sin(1/2*f0)+5*cos(1/2*f0)),r0); end do ;
выдает ошибку
Error, increment of for loop must be numeric
Если ставишь цифрами, то считает вот так
f0:=0.:fn:=6.28:
> stf:=3.14/10:
> for f from f0 by stf to fn do rn:=solve(r0=(1/2)/(-10*sin(1/2*f0)+5*cos(1/2*f0)),r0); end do ;

rn := .1000000000


rn := .1000000000


rn := .1000000000


Подскажите, пожалуйста, в чем ошибка.

aar
Сообщения: 100
Зарегистрирован: Чт авг 10, 2006 11:27 am

Сообщение aar » Вт фев 19, 2008 9:57 am

А что должно быть в rn? Могу предположить, что вместо f0 в формуле должно стоять f.

Irmantas
Сообщения: 589
Зарегистрирован: Ср апр 27, 2005 8:49 pm
Откуда: Литва, Каунас

Re: вопрос об аргументах

Сообщение Irmantas » Ср фев 20, 2008 10:34 am

tasha писал(а):необходимо подсчитать значение функции при помощи
f0:=0.:fn:=2*pi:
> stf:=pi/10:
....
Подскажите, пожалуйста, в чем ошибка.

pi пишетса с прописной буквы. Замените pi на Pi

aar
Сообщения: 100
Зарегистрирован: Чт авг 10, 2006 11:27 am

Сообщение aar » Ср фев 20, 2008 10:44 am

И все-равно, в цикле нельзя использовать Pi, надо evalf(Pi)

Irmantas
Сообщения: 589
Зарегистрирован: Ср апр 27, 2005 8:49 pm
Откуда: Литва, Каунас

Сообщение Irmantas » Ср фев 20, 2008 10:58 am

aar писал(а):И все-равно, в цикле нельзя использовать Pi, надо evalf(Pi)

Да уж :(
Патому что Pi не numeric типа
type(Pi,numeric); => false

Непанимаю жачем solve. Можно и так
f0:=0.:fn:=evalf(2*Pi):
stf:=evalf(Pi/10):
[seq((1/2)/(-10*sin(1/2*f)+5*cos(1/2*f)),f=f0..fn,stf)];

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: вопрос об аргументах

Сообщение алексей_алексей » Ср фев 20, 2008 11:03 am

tasha писал(а):Если ставишь цифрами, то считает вот так
f0:=0.:fn:=6.28:
> stf:=3.14/10:
> for f from f0 by stf to fn do rn:=solve(r0=(1/2)/(-10*sin(1/2*f0)+5*cos(1/2*f0)),r0); end do ;

rn := .1000000000


rn := .1000000000


rn := .1000000000


Подскажите, пожалуйста, в чем ошибка.

Вы же в цикле умножаете на f0, а его значение задали равным 0 и оно не меняется. Наверное, нужно бы f.