matlab中ode15s函数的用法,matlab ode15s方程中两个参数怎么调用其他函数带入求解...

本人用ode15s算一个偏微分方程组,该方程组中有两个参数要通过另外一个隐函数方程组求解,不知道怎么调用,ode15s求该解偏微分方程组代码([t,y]=ode15s(@fangcheng,tspan,y0,options);)如下:

function dydt=fangcheng(t,y)

kf=200;a=0.363;u=0.361032/a;c0=7.03;L=8.31e-2;N=20;dz=L/N;p=436.8/(1-0.363);

q1=y(1:N);c1=y(N+1:2*N);q2=y(2*N+1:3*N);c2=y(3*N+1:4*N);

%-----------定义dq/dt-----------------------------

for j=1:N

dq1dt(j)=kf/p*(c1(j)-ce1(j));

dq2dt(j)=kf/p*(c2(j)-ce2(j));

end

%---------定义dC/dt-----------------------------------

dc1dt(1)=-u*(c1(1)-c0)/dz-(1-a)/a*p*dq1dt(1);

dc2dt(1)=-u*(c2(1)-c0)/dz-(1-a)/a*p*dq2dt(1);

for j=2:N

dc1dt(j)=-u*(c1(j)-c1(j-1))/dz-(1-a)/a*p*dq1dt(j);

dc2dt(j)=-u*(c2(j)-c2(j-1))/dz-(1-a)/a*p*dq2dt(j);

end

dydt=[dq1dt dc1dt dq2dt dc2dt]';

其中ce1(j)、ce2(j)、q1(j)和q2(j)的关系是q1(j)=0.45967ce1(j)^0.3839/(ce1(j)^0.0457+0.3*ce2(j)^0.0003206,q2(j)=0.17356*ce2(j)^(-1.55201)/(ce2(j)^(-2)+0.1*ce1(j)^(-1))

如果用q1、q2表示c1、c2带入,程序是可以解出的,但是这是个隐函数方程组,不知道该怎么办,求大神相助

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ode15s函数matlab的一个常用的求解刚性微分方程组的函数,它可以自动选择合适的数值方法来求解微分方程组,从而提高求解的精度和效率。使用ode15s函数时,需要输入微分方程组的函数句柄、初值、求解区间等参数函数会返回求解结果。同时,ode15s函数还可以设置一些选项来控制求解过程,比如求解精度、最大步长、输出格式等。 ### 回答2: ode15sMATLAB的一个用于求解刚性和非刚性微分方程组的函数。在科学计算和工程领域,微分方程组的求解是一个非常重要的问题,ode15s提供了一种高效、准确、稳定的方法来解决这个问题。 ode15s函数用法可以分为以下几个步骤: 1. 定义微分方程组 首先,需要将微分方程组定义为一个匿名函数,例如: fun = @(t,y) [y(1) - y(2); y(2)*cos(t)]; 其,t是自变量,y是因变量。这里给出的是一个简单的例子,实际可能需要根据具体问题定义更复杂的微分方程组。 2. 设定初始值和时间的范围 接着,需要设定微分方程组的初始值和时间的范围,例如: tspan = [0 10]; y0 = [1; 0]; 这里的tspan表示时间的范围,y0表示初始值。 3. 调用ode15s函数求解微分方程调用ode15s函数求解微分方程组,例如: [t, y] = ode15s(fun, tspan, y0); 其,fun是定义好的微分方程函数,tspan和y0是初始值和时间范围。求解得到的结果包括时间t和因变量y的值。 4. 可视化结果 最后,可以将求解得到的结果可视化,例如: plot(t, y(:, 1), '-o', t, y(:, 2), '-*'); 这里给出的是一个简单的二维图例,实际根据具体问题需要绘制更复杂的图形。 总的来说,ode15s函数MATLAB求解微分方程组的重要工具,具有高效、准确、稳定的特点。但是需要注意,在使用ode15s函数时需要根据具体问题设置好微分方程组、初始值、时间范围等参数,并且需要对求解结果进行验证和分析,确保结果的准确性和可靠性。 ### 回答3: 在MATLABode15s函数是用于求解刚性和非刚性微分方程函数之一。该函数使用了一个显式的龙格-库塔法,以求解有刚性需求的微分方程。尽管该函数主要用于上下文解决刚性问题,但它也可以用来处理非刚性微分方程ode15s函数带有多个输入参数,其最基本的是一个函数句柄,用于计算微分方程的导数。该函数应该返回一个列向量,表示给定时间和当前状态的导数。 函数还需要指定一个时间间隔,并将此间隔传递给ode15s函数作为其第二个输入参数。该时间间隔表示ODE(ordinary differential equation,普通微分方程求解器将要计算的时间点数量。 ode15s函数还接受初始状态参数。这个参数也是一个列向量,用来描述微分方程开始的状态。该参数会传递给ode15s函数作为第三个输入参数。 随后,用户还需输入一个可选的输出函数句柄。此函数将被调用以输出ODE解决方案的状态和时间步骤。此外,有一个选项,可以指定ODE求解器是否返回状态矩阵和时间向量的历史记录。 ode15s函数还带有其他可选参数和选项,包括误差容限和它的各种算法等。若用户要特别关注数值误差和精度,他们可以选择使用这些选项。 总之,ode15s函数MATLAB解决微分方程问题的重要工具,它基于龙格库塔法,可以求解刚性和非刚性微分方程。可以通过指定输入参数和选择选项来进一步指定ODE求解方式,从而获得精确的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值