0
4 개의 시스템을 해결하기 위해 bvp4c를 사용하려고합니다. 문제는 경계 중 하나를 알 수 없다는 것입니다.BVP4c가 알 수없는 경계를 해결합니다.
bvp4c에서 처리 할 수 있습니까? 내 코드에서 L은 내가 알지 못하는 부분이다.
아래에 오류 메시지가 표시됩니다.
function mat4bvp
L = 8;
solinit = bvpinit(linspace(0,L,100),@mat4init);
sol = bvp4c(@mat4ode,@mat4bc,solinit);
sint = linspace(0,L);
Sxint = deval(sol,sint);
end
% ------------------------------------------------------------
function dtdpdxdy = mat4ode(s,y,L)
Lambda = 0.3536;
dtdpdxdy = [y(2)
-sin(y(1)) + Lambda*(L-s)*cos(y(1))
cos(y(1))
sin(y(1))];
end
% ------------------------------------------------------------
function res = mat4bc(ya,yb,L)
res = [ ya(1)
ya(2)
ya(3)
ya(4)
yb(1)];
end
% ------------------------------------------------------------
function yinit = mat4init(s)
yinit = [ cos(s)
0
0
0
];
end
불행히도 다음과 같은 오류 메시지가 표시됩니다.
>> mat4bvp
Not enough input arguments.
Error in mat4bvp>mat4ode (line 13)
-sin(y(1)) + Lambda*(L-s)*cos(y(1))
Error in bvparguments (line 105)
testODE = ode(x1,y1,odeExtras{:});
Error in bvp4c (line 130)
bvparguments(solver_name,ode,bc,solinit,options,varargin);
Error in mat4bvp (line 4)
sol = bvp4c(@mat4ode,@mat4bc,solinit);
로 구현 될 수 scipy 파이썬에서 나는 쉽게 사용할 수 matlab에없는
은, 그래서 첫 번째 트릭은 매우 유용했다. 나는 이것을했고, 나는 또한 두 번째 속임수를 구현했다고 믿는다. 여전히 입력 인수가 충분하지 않다고 주장합니다. – user3532764