matlab编程问题利用欧拉方法求常微分方程近似数值解

取h=0.1,0.05,0.01,用欧拉显式方法求解一阶线性微分方程:计算到y(2)并于精确解比较。求本题完整matlab程序。... 取h=0.1,0.05,0.01,用欧拉显式方法求解一阶线性微分方程:
计算到y

(2)并于精确解比较

。求本题完整matlab程序。
展开
 我来答
jimtien
推荐于2016-08-07 · TA获得超过7654个赞
知道大有可为答主
回答量:2146
采纳率:88%
帮助的人:1118万
展开全部
%欧拉法解一阶常微分方程
% y'=xy^(1/3)

f = inline('x*y^(1/3)','x','y');
figure; hold on;
for h = [0.1 0.05 0.01]       %三个步长
    xleft = 1;     %区域的左边界
    xright = 5;     %区域的右边界
    xx = xleft:h:xright;   %一系列离散的点
    n = length(xx);    %点的个数

    y0 = 1;
    Euler = y0;
    for i = 2:n
     Euler(i)=Euler(i-1)+h*f(xx(i-1),Euler(i-1));
    end
    plot(xx,Euler,'LineWidth',2);
end

%精确解
y = ((xx.^2+2)/3).^(3/2);
plot(xx,y,'r','LineWidth',2);
grid on;

更多追问追答
追问
第三行是不是遗漏了什么啊 我在matlab上运行它说不正确啊
追答
什么错误?
噜噜晗寶
2014-12-20 · TA获得超过462个赞
知道小有建树答主
回答量:295
采纳率:87%
帮助的人:86.5万
展开全部

clear all;clc

odefun=inline('x*y^(1/3)','x','y');

[t,y]=Euler(odefun,[0,6],1,0.01) 

%[t,y]=Euler(odefun,tspan,y0,h)

%odefun——微分方程函数f(x,y)

%tspan——(x0,xf)初值x0,终值xf

%y0——初始值

%h——步长

%t——节点向量

%y——数值解

x1=0:0.1:6;

y1=((x1.^2+2)/3).^1.5;

plot(t,y,'r-',x1,y1,'k*-'),grid on,xlabel('x'),ylabel('y'),legend('解曲线','精确解')

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式