24小时热门版块排行榜    

查看: 1146  |  回复: 1
当前主题已经存档。

lxllyf

铜虫 (小有名气)

[交流] 【求助】请教高人matlab求解隐函数微分方程问题

请教高人,希望能够帮忙

代码是:

a=2;
b=6;
a0=0.5;
b0=1.5;
a1=1.5;
b1=0.5;
c=1.5;
x=0;
zd=0;
z=0;
if x>=a&&x<=b
syms y x;
%  f1=1+y;
f1=(((1-a0)*(0.5*b1))+a0*(y-z(1)-c)+(b0-a0)*(y-z(1)-c-0.5*b1*exp(-(y-a1)^2/b1^2))/((y-a1)*exp(-(y-a1)^2/b1^2)))*((y-a1)/b1)*exp(-(y-a1)^2/b1^2)-0.5*(b0-a0)*exp(-(y-a1)^2/b1^2);
g1=int(f1,y,x,b);
p1=0.5*((b0-a0)*exp(-(x-a1)^2/b1^2));
% f=@(x,z,zd)[zd(1)*(g1+p1*(x-z(1)-c-(0.5*b1*exp(-(x-a1)^2/b1^2))/((x-a1)*exp(-(x-a1)^2/b1^2))))];
f=(g1+p1*(x-z(1)-c-(0.5*b1)));
elseif x=0
syms y x;
%  f2=y-2;
f2=(((1-a0)*(b1*(1-0.5*exp(-(y-a1)^2/b1^2)))/((y-a1)*exp(-(y-a1)^2/b1^2)))+a0*(y-z(1)-c)+(b0-a0)*(y-z(1)-c-0.5*b1*exp(-(y-a1)^2/b1^2))/((y-a1)*exp(-(y-a1)^2/b1^2)))*(-(y-a1)/b1)*exp(-(y-a1)^2/b1^2)-(b0-a0)*(1-0.5*exp(-(y-a1)^2/b1^2));
g2=int(f2,y,x,b);
p2=(b0-a0)*(1-0.5*exp(-(x-a1)^2/b1^2));
% f=@(x,z,zd)[zd(1)*(g2+p2*(x-z(1)-c+(b1*(1-0.5*exp(-(x-a1)^2/b1^2)))/((x-a1)*exp(-(x-a1)^2/b1^2))))];
f=(g2+p2*(x-z(1)-c+(b1*(1-0.5*exp(-(x-a1)^2/b1^2)))/((x-a1)*exp(-(x-a1)^2/b1^2))));
end

% z0=5;
% zd0=0.1;
% z0F=0;
% zd0F=1;
% [z0,zd0]=decic(f,0,z0,z0F,zd0,zd0F);
% r=ode15i(f,[0,0.1],z0,zd0);
% plot(r.x,r.y)
l=@(x,z)inv(f)*0;
opt=odeset;
opt.RelTol=1e-6;
[x,z]=ode45(l,[0,0.1],0,opt);
plot(x,z)

总是报错

??? Error using ==> odearguments
Inputs to odearguments must be floats, namely single or double.

Error in ==> odearguments at 136
  dataType = superiorfloat(t0,y0,f0);

Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

Error in ==> fangzhen1 at 40
[x,z]=ode45(l,[0,0.1],0,opt);
回复此楼

» 猜你喜欢

原来我们还是那么好
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baiyalei163

铁虫 (小有名气)

昨天都看到了 咋没人回答吖
2楼2010-02-22 08:25:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lxllyf 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见