求助!Matlab四阶R-K法求解一个二阶非线性微分方程;x’’+x^3/(1+x^2)=0;初始条件 x(0)=A x’(0)=0

希望能够给出matlab的程序,和x(t)的图像... 希望能够给出matlab的程序,和x(t)的图像 展开
 我来答
lccever
2014-05-18 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:67
采纳率:0%
帮助的人:53.6万
展开全部

clc

A=1;

h=0.01;

x=[A 0]

X=[];

t=0:h:20;

for i=1:length(t)

    X_1 = Runge_Kutta_4(t(i),x,@matlab4rk,h);

    X=[X;t(i),X_1];

    x=X_1;

end

string1=['A=',num2str(A)];

A=2;

h=0.01;

x=[A 0]

X1=[];

t=0:h:20;

for i=1:length(t)

    X1_1 = Runge_Kutta_4(t(i),x,@matlab4rk,h);

    X1=[X1;t(i),X1_1];

    x=X1_1;

end

plot(X(:,1),X(:,2),'-k',X1(:,1),X1(:,2),'-b','linewidth',2);

hold on

grid on

xlabel('t-time','fontsize',14)

ylabel('x','fontsize',14)

tstring=['x"+x^3/(1+x^2)=0'];

title(tstring,'fontsize',14);


string2=['A=',num2str(A)];

legend(string1,string2)

    

function Y = Runge_Kutta_4(t,X,f,h)

    K1=f(t,X);

    K2=f(t+h/2,X+h/2*K1);

    K3=f(t+h/2,X+h/2*K2);

    K4=f(t+h,X+h*K3);

    Y=X+h/6*(K1+2*K2+2*K3+K4);


function dx=matlab4rk(t,x)

% x1=x;x2=x'

dx=zeros(1,2);

dx(1)=x(2);

dx(2)=-x(1)^3/(1+x(1)^2);

追问
真的很感谢你,这个问题已经苦恼我很久了,thank you very much!!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式