lzth.net
当前位置:首页 >> mAtlAB解微分方程中程序问题 >>

mAtlAB解微分方程中程序问题

function dx=differential(t,x) dx = zeros(2,1);; dx(1)=x(1)*(1-x(1))*30; dx(2)=x(2)*(1-x(2))*(160*x(1)-20); end clc options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-5]); [T,Y]=ode45(@differential,[0 5],[0.5 0.5],options); figur...

楼主是要解析解吧 dsolve('Dy=A/V-B/V*sqrt(2*g*y)','y(0)=h0','t') ans = (2^(1/2)*A + 2^(1/2)*A*lambertw(0, (2^(1/2)*B*g^(1/2)*exp(-(A + B^2*g*(t/V - (A*(log(-(exp(-(A + 2^(1/2)*B*(g*h0)^(1/2))/A)*(2*B*(g*h0)^(1/2) + 2^(1/2)*A))/(...

>> syms x(t) y(t) r d a b r='1';d='0.5';a='0.1';b='0.02'; [x,y]=dsolve(diff(x)==(r-a*y)*x,diff(y)==-(d-b*x)*y,x(0)==25,y(0)==2) Warning: Explicit solution could not be found. > In dsolve at 194 x = [ empty sym ] y = [] 说明无解。

1、【求解常微分方程的表达式里并没有a、b的值代入】 常微分方程里面的a、b只是个符号量,与你输入的数据没有关联起来。 可以把输入的a、b转换为字符串,在dsolve的时候拼接成待求解的微分方程,但那样比较麻烦。 更可去的做法是直接求解,然后...

1、对于解析值,你可以用dsolve()函数求解。如求微分方程x*y''+x﹡(y')^2-y'=0的解析解 >> syms y(x) >>Dy = diff(y);D2y = diff(y, 2); >>dsolve(x*D2y+x*(Dy)^2-Dy==0,'x') 运行结果 2、对于数值解,你可以查看二阶常微分方程这个例子,http...

你这个程序明显不对。没看懂是什么意思。跟你说下错在哪吧: 你看下diff()的帮助,返回值是比输入的向量少一个元素的,你输入的是个标量(可以理解为长度为1),返回值当然是长度为0(即空元素【 】)。matlab中任何数与空【】计算得到空【】。...

1、对于求数值解的微分方程,你可以用ode45()函数求解。如求下列微分方程 func。m %自定义微分方程的函数 function z = func(t,y) z =[y(2);(1-y(1)^2)*y(2)-y(1)]; main。m %主程序 clear all;close all;clc y0 = [0.25;0]; h = 0.1; a = 0; b ...

好像没什么特别好的办法: >> syms t q y; q=4*t^3;>> syms Dy>> eq=Dy-(q-2*t);>> y=dsolve(char(subs(eq)),'y(0)=5','t')y = t^4-t^2+5 也就是要先移项把微分方程写成等号右端为零的形式(需额外定义Dy),然后subs代入,再求解。

function exer=yfun(t,x) exer = -x^3 exer为返回值;yfun为函数名称;(t,x)是函数的两个变量,t在函数内部没有使用,是个空变量。这个函数本身没有问题,可以作为一个子函数使用,换句话说:要想让其起作用,要有另外一个主程序或函数调用它...

参考代码: % 参数定义m1 = 1; m2 = 2; m3 = 3;k1 = 4; k2 = 5; k3 = 6; k4 = 7;P0 = 8; w = 9; % 微分方程A = [k1+k2 -k1 0; -k2 k2+k3 -k3; 0 -k3 k3+k4];dx = @(t,x)[x(4:6); (-A*x(1:3)+[P0*sin(w*t);0;0])./[m1;m2;m3]]; % 初始条件(x4~x6...

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com