matlab数值解法求解二阶微分方程 ODE45函数
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/29 20:27:53
结果:代码:clearallclcf=@(x,y)([y(2); 0.357*y(1)-0.1905*y(1)*y(2)]);[x,Y]=ode45(f,[0100]
请参考ode45函数的用法将所求值设为终值即可
这个如果点列很密集的话,数值微分就是差分那你就用循环结构咯forii=1:mforjj=1:mdy(ii)=(y(ii+1)-y(ii))/(x(ii+1)-x(ii));endenddy这样每相邻两
使用quad有问题>>quad('0.0732*exp(-(x+0.02287).^2/64.90)',0,inf)Warning:InfiniteorNot-a-Numberfunctionvalu
……一定要用matlab吗,只会mathematica的路过.而且啊,你一面说要求方程的数值解,一面又只给一个全是字母系数的方程,你是要怎样……再问:呃,abcdef都是常量,可以随便假定的,就赋1、
symx;v=int(e^(x^2/(-2)),0,1)vpa(v)
[xy]=solve('a*x+b*y^2+c=0','c*x*y+d*y+e=0','x,y')
m=2;cnt=0;k=1;whileabs(m-k)>10e-10cnt=cnt+1;k=m;m=sqrt(m);s(cnt)=m;endformatlongcntS=s'运行结果:cnt=30S=
在Matlab下输入:editzhidao_feiying.m,然后将下面两行百分号之间的内容,复制进去,保存%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
trapz函数可以对只知道离散数值的函数做积分,示意:trapz(ts,ys);
clear;clc[T,Dxyz]=ode45('sdfd',[012],[0;1;1]);plot(T,Dxyz)--------------------------functiondxyz=sdf
1、把G=1/3*((5*Pp-2*P1)/(P1-2*Pp)-P1*c1^2/Pp*cp^2);改成G=1/3*((5*Pp-2*P1)/(P1+2*Pp)-P1*c1^2/(Pp*cp^2));表
[T,Y]=ode45('rigid',[012],[0;1;1]);%标点符号状态plot(T,Y)----------------------functiondy=rigid(t,y)dy=zer
改动:functionS=history(t)S=ones(3,1);改为S=ones(4,1);OVER!PS.多翻翻help!
第一个积分式很奇怪,被积变量到底是I还是y0?而按照第二个式子显示,y0应该是一个常数,只不过取值暂时未知.难道第一个式子在对一个常数做积分?再问:y0算中间变量再答:y0到底是中间“变量”还是中间函
试了一下,发现在一定的边界条件下,可以如:①设定每个变量的初值边界条件M文件functionres=ivbc(ya,yb)q=5;res=[ya(1)-qya(2)-2ya(3)-3ya(4)];②设
修改为solve('exp(-((-log(0.05))^(1/1.1)+(-log(x))^(1/1.1))^1.1)*((-log(0.05))^(1/1.1)+(-log(x))^(1/1.1)
fun=@(x,y)y.*log10(y)-x创建关于x,y的匿名函数log10(x)由于Matlab中自然对数的符号是log(与我们数学上的不同),以10为底的对数符号是log10,同理有log2,
因为你x=0时2/x是无穷大呀,然后y'又是0,然后(2/x)y'就是nan了,所以后面算的全是nan了.
matlab不会把q=acos((x.^2-1+x.^2.*i^2)./(2*x.^2.*i)); 代入f的改为下面的即可i=2;f=@(x)((x.^2-1).*x.^2.*i.*sin(