Проблема с решением системы нелинейных уравнений

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

Модератор: Admin

white flomaster
Сообщения: 37
Зарегистрирован: Сб май 18, 2013 11:48 am

Проблема с решением системы нелинейных уравнений

Сообщение white flomaster » Вт дек 09, 2014 10:30 pm

Здравствуйте.

Пытаюсь в цикле решить систему, состоящую из шести нелинейных уравнений с помощью функции fsolve, но она не срабатывает.
Подскажите, пожалуйста, в чем кроется ошибка?

Код: Выделить всё

restart;
 B:=1:
 q:=1000:
 l:=1:
 n:=3:
 V:=0.05:
 N:=100:
 
 
 kappa:=Vector(N+1,[]):
 theta:=Vector(N+1,[]):
 u:=Vector(N,[]):
 M:=Vector(N,[]):
 Z:=Vector(N,[]):
 
  M_F:=q*(2*l*(z-l)-z^2/2):
  M_1:=piecewise((z<l), l-z,  0):
  M_2:=piecewise((z<2*l), 2*l-z,  0):
  M_3:=piecewise((z<3*l), 3*l-z,  0):
  M_4:=piecewise((z<4*l), 4*l-z,  0):
  M_5:=piecewise((z<5*l), 5*l-z,  0):
  M_6:=6*l-z:
  M_finish:=M_1*X_1+M_2*X_2+M_3*X_3+M_4*X_4+M_5*X_5+M_6*X_6+M_F:
 
 
 kappa_old:=0:
 theta_old:=0:
 u_old:=0:
 M_old:=0:
 
 
 step:=6*l/N:
 u[1]:=0:
 kappa[1]:=0:
 theta[1]:=0:
 
 
 for i from 2 to N do
 kappa_new:=kappa_old+B/V*(M_finish)^n*step:
 theta_new:=theta_old+1/2*(kappa_old+kappa_new)*step:
 u_new:=u_old+1/2*(theta_old+theta_new)*step:
 sol1:=fsolve({u_new(l)=0,u_new(2*l)=0,u_new(3*l)=0,u_new(4*l)=0,u_new(5*l)=0,u_new(6*l)=0},{X_1,X_2,X_3,X_4,X_5,X_6}):
 u_temp:=subs(sol1,u_new):
 u[i]:=temp(i*step):
 M_temp:=subs(sol1,M_finih):
 M_new:=1/2*(M_old+M_temp(i*step)):
 M[i]:=M_new:
 Z[i]:=i*step:
 kappa_old:=kappa_new:
 theta_old:=theta_new:
 u_old:=u_new:
 M_old:=M_new:
 
 end do;