24小时热门版块排行榜    

查看: 463  |  回复: 1

lhdcyx

新虫 (初入文坛)

[求助] 帮忙看个简单的matlab程序 已有1人参与

一段求两点边值问题的matlab程序:
clc
clear all
f=@(t,x,v)[4*x(1)+v(1)*x(1)*x*(2);-2*x(2)+v(2)*x(1)*x(2)];
g=@(ya,yb,v)[ya(1)-2;ya(2)-1;yb(1)-4;yb(2)-2];
x1=[1;1];x2=[-1;1];
solinit=bvpinit(linspace(0,3,20),x1,x2);
sol=bvp5c(f,g,solinit);
sol.parameters
plot(sol.x,sol.y);
figure;
plot(sol.y(1,,sol.y(2,);
报错,出不来结果。不知道怎么回事?
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FMStation

至尊木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
CODE:
>> f

f =
    @(t,x,v)[4*x(1)+v(1)*x(1)*x*(2);-2*x(2)+v(2)*x(1)*x(2)]

>> g

g =
    @(ya,yb,v)[ya(1)-2;ya(2)-1;yb(1)-4;yb(2)-2]


>> sol=bvp5c(f,g,solinit);

??? Error using ==> bvparguments at 121
Error in calling BVP5C(ODEFUN,BCFUN,SOLINIT):
  The derivative function ODEFUN should return a column
  vector of length 2.

Error in ==> bvp5c at 137
[neqn,nparam,nregions,atol,rtol,Nmax,xyVectorized,printstats]
= ...

>> whos

  Name         Size            Bytes  Class              Attributes

  f            1x1                16  function_handle              
  g            1x1                16  function_handle              
  solinit      1x1              1146  struct                       
  x1           2x1                16  double                       
  x2           2x1                16  double         

https://www.mathworks.com/matlabcentral/fileexchange/3819-tutorial-on-solving-bvps-with-bvp4c
CODE:
dydt=@(x,y)[y(2); -6*y(2)+x];
bc=@(ya,yb)[ya(1)+1; yb(1)-4];
yinit=@(x)[exp(-x); -exp(-x)];
solinit=bvpinit(linspace(0,1,20),yinit);
sol=bvp4c(dydt,bc,solinit);
% "sol" callback you three part:x,y,y'
plot(sol.x,sol.y(1,:))

2楼2016-09-21 07:06:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lhdcyx 的主题更新
信息提示
请填处理意见