matlab编程问题利用欧拉方法求常微分方程近似数值解
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/17 20:47:25
matlab编程问题利用欧拉方法求常微分方程近似数值解
取h=0.1,0.05,0.01,用欧拉显式方法求解一阶线性微分方程:
计算到y
![](http://img.wesiedu.com/upload/d/f9/df9fde394b763f4768b362fa2d97b730.jpg)
(2)并于精确解
比较
![](http://img.wesiedu.com/upload/7/f3/7f36b9c156c732be5b02f00e2366ccb7.jpg)
.
求本题完整matlab程序.
取h=0.1,0.05,0.01,用欧拉显式方法求解一阶线性微分方程:
计算到y
![](http://img.wesiedu.com/upload/d/f9/df9fde394b763f4768b362fa2d97b730.jpg)
(2)并于精确解
比较
![](http://img.wesiedu.com/upload/7/f3/7f36b9c156c732be5b02f00e2366ccb7.jpg)
.
求本题完整matlab程序.
%欧拉法解一阶常微分方程
% 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上运行它说不正确啊
再答: 什么错误?
再问: 可能是我command语句输错了 你在command窗口输入的啥子嘛
% 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;
![](http://img.wesiedu.com/upload/d/5b/d5b19498ca1e9087dcc0ed45090d6f31.jpg)
再问: 第三行是不是遗漏了什么啊 我在matlab上运行它说不正确啊
再答: 什么错误?
再问: 可能是我command语句输错了 你在command窗口输入的啥子嘛