Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Maple] Вложенные циклы


Автор: PrettyGirl 23.10.2007, 17:42
Привет всем! Помогите пожалуйста с Maple!
Вот такой ФРАГМЕНТ КОДА для 2-х уравнений работает
Код

for j from 1 to 3 do
> y[1,j] :=y[1,j-1] + h * subs(y1 = y[1,j-1],y2=y[2,j-1],f[1]):
> y[2,j] :=y[2,j-1] + h * subs(y1 = y[1,j-1],y2=y[2,j-1],f[2]): 
>  end do;

начала переделывать для n уравнений,не могу понять в чем ошибка.
Код

y[1,0] := 3;
y[2,0] := 1; 
f[1] := y1^2 / (3 * y2); 
f[2] := 6 * y2 / y1;
h := 0.01;                                                           
for i from 1 to 2 do                                                                                         
for j from 1 to 3 do
y[i,j] :=y[i,j-1] + h * subs(y1 = y[i,j-1],y2=y[i+1,j-1],f[i]): 
end do:
end do;
print(y);

помогите пожалуйста! 

Автор: kali 24.10.2007, 10:08
Ошибка похоже в end do

попробуй так

Код

y[1,0] := 3;
y[2,0] := 1; 
f[1] := y1^2 / (3 * y2); 
f[2] := 6 * y2 / y1;
h := 0.01;                                                           
for i from 1 to 2 do                                                                                         
for j from 1 to 3 do
y[i,j] :=y[i,j-1] + h * subs(y1 = y[i,j-1],y2=y[i+1,j-1],f[i]): 
od:
od;
print(y);


maple под рукой к сожалению нет, так что проверить немогу.

Автор: aurealat 9.6.2009, 23:17
Плиз спасите утопающих
Мучаем вложенные циклы в Maple но почему-то совсем ничего не работает 

Код

restart;   
with(plots):    
a:=4: b:=5: 
 for l from 1 to 10 do  for k from 0 to 15 do
m=(Pi*l/a)^2-(Pi*k/b)^2;
plot3d(cos((Pi*l/a)*x)*cos((Pi*k/b)*y),x = -a .. a, y = -b .. b, style = patch, scaling = constrained, axes = boxed);
od:
od;

Автор: cardinal 9.6.2009, 23:39
Попробуй end do вместо od
http://books.google.ru/books?id=rt9xKPLCFcgC&pg=PA214&lpg=PA214&dq=maple+inner+loop&source=bl&ots=jr_2N25s4j&sig=n4-FJY8bqs-7PwCdxQm2QDsbp6c&hl=ru&ei=7cQuSrfFPMvu_AbDq9TKCg&sa=X&oi=book_result&ct=result&resnum=8

Автор: aurealat 9.6.2009, 23:41
пробовала при end do тоже не работает

Автор: cardinal 10.6.2009, 00:41
Код

restart;   
with(plots):    
a:=4: b:=5: 
for l from 1 to 10 do
   for k from 0 to 15 do
      m=(Pi*l/a)^2-(Pi*k/b)^2;
      plot3d(cos((Pi*l/a)*x)*cos((Pi*k/b)*y),x = -a .. a, y = -b .. b, style = patch, scaling = constrained, axes = boxed)
   end do
end do;

Вот это один в один скопируй, может пойдет...

Автор: aurealat 10.6.2009, 01:19
Цитата(cardinal @ 10.6.2009,  00:41)
Вот это один в один скопируй, может пойдет...

неа, ничего не рисует, может это глюк самой программы?

Автор: cardinal 10.6.2009, 02:29
Цитата(aurealat @  9.6.2009,  23:19 Найти цитируемый пост)
неа, ничего не рисует, может это глюк самой программы? 

Да не он все рисует, но т.к. паузы нет между командами, то увы ничего не видно smile

Можно так сделать (но это вариант для одного значения l)
Код

a:=4: b:=5: 
l:=1:
animate( plot3d, [cos((Pi*l/a)*x)*cos((Pi*k/b)*y),x = -a .. a, y = -b .. b], k=0..15, frames=100);

Покопай в этом направлении, может можно второй параметр в animate добавить...

Автор: Khanty2012 23.3.2014, 18:55
with(linalg); with(plots); 
a := [0, 0, 0]; b := [1, 1, 1]; 
N := 10; MMM := 5;
t := [[1/3, 1/2, 2/3, 3/4, 4/5], [1/3, 1/2, 2/3, 3/4, 4/5], [1/3, 1/2, 2/3, 3/4, 4/5]]; 

for i to nops(a) do

if i = 1 then reshen[x, i] := piecewise(x <= t[i, 1], x^2, x <= t[i, 2], (1/3)*x, t[i, 2] <= x and x <= t[i, 3], x^3+1/24, t[i, 3] <= x and x <= t[i, 4], .3379629630, t[i, 4] <= x and x <= t[i, 5], x^2-97/432, t[i, 5] <= x and x <= b[i], 4487/10800, 0); 
p[x, i] := piecewise(a[i] <= x and x <= b[i], 1, 0) fi; 

if i = 2 then reshen[x, i] := piecewise(a[i] <= x and x <= b[i], (4487/10800)*x^2, 0); p[x, i] := piecewise(a[i] <= x and x <= b[i], 1, 0); Q[x, i] := 1 fi;

 if i = 3 then reshen[x, i] := piecewise(a[i] <= x and x <= b[i], -(13461*(1/10800))*x^2+(4487/2700)*x, 0); p[x, i] := piecewise(a[i] <= x and x <= b[i], 1, 0); Q[x, i] := 1 fi;

 for r to MMM do fs[r, i] := limit(diff(reshen[x, i], x), x = t[i, r], left) end do: end do:

Maple неправильно считает предел справа!!! Где я ошибся?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)