用matlab求y=f(x),y''=y^2的数值解,
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 20:30:05
用matlab求y=f(x),y''=y^2的数值解,
待解方程为:y=f(x),y''=y^2,即y的二阶导等于y的平方
边界条件:y(0)=1,y'(100)=0
用matlab函数ode45求解
function dy=test(x,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=[y(1)]^1;
end
[X,Y]=ode45('test',[0 100],[1 ]); 这个地方就不会写了
看教程这个‘?’地方应该是填y'(0)的值,由于不知道y'(0)的值,只知道y'(100)=0
待解方程为:y=f(x),y''=y^2,即y的二阶导等于y的平方
边界条件:y(0)=1,y'(100)=0
用matlab函数ode45求解
function dy=test(x,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=[y(1)]^1;
end
[X,Y]=ode45('test',[0 100],[1 ]); 这个地方就不会写了
看教程这个‘?’地方应该是填y'(0)的值,由于不知道y'(0)的值,只知道y'(100)=0
分析
这是个边值问题(BVP),不是初值问题.求解边值问题不能用ode系列函数,需要用专门的求解器.下面给你参考代码,涉及到的函数主要有bvpinit、bvp4c、deval,请自行参阅相关函数的说明.
参考代码
dydx = inline('[y(2); y(1)^2]', 'x', 'y');
bc = inline('[ya(1)-1; yb(2)]', 'ya', 'yb');
sol = bvpinit(linspace(0,100,50),[0 0]);
sol = bvp4c(dydx, bc, sol);
x = linspace(0,100);
y = deval(sol,x);
subplot 211
plot(x,y(1,:));
xlabel('Time (s)'); ylabel('y');
subplot 212
plot(x,y(2,:));
xlabel('Time (s)'); ylabel('y''');
结果
这是个边值问题(BVP),不是初值问题.求解边值问题不能用ode系列函数,需要用专门的求解器.下面给你参考代码,涉及到的函数主要有bvpinit、bvp4c、deval,请自行参阅相关函数的说明.
参考代码
dydx = inline('[y(2); y(1)^2]', 'x', 'y');
bc = inline('[ya(1)-1; yb(2)]', 'ya', 'yb');
sol = bvpinit(linspace(0,100,50),[0 0]);
sol = bvp4c(dydx, bc, sol);
x = linspace(0,100);
y = deval(sol,x);
subplot 211
plot(x,y(1,:));
xlabel('Time (s)'); ylabel('y');
subplot 212
plot(x,y(2,:));
xlabel('Time (s)'); ylabel('y''');
结果
MATLAB中求Y=F(X)数值积分
用matlab求微分方程 y’=-y2+x,y(0)=1的数值解,
用MATLAB解方程(y+2)y'=x,当x=0:1:100时,求y的数值,并画出y的图形,怎么输入命令?
matlab 求线性方程的数值特解,并画出图形:y'''+8y'=0,y(0)=1,y'(0)=1y''())=2,x[
MATLAB 求微分方程数值解 y''-y'+y=0 y(1)=2,y(2)=0,x∈[0,20] MATLAB代码
MATLAB求方程y’= y - 2x/y,y(0) = 1 (0≤x≤1,h = 0.1) 的数值解,要求编写程序
用matlab求f(x,y)=exp(2*x)*(x+y^2+2*y)的极值
matlab ode45 求方程(1+x^2)y''=2xy',y(0)=1,y'(0)=3 的数值解,我的运行不行,
y=1/(x^4 + x^3 + x^2 + x + 1)用matlab怎么求(1,2)区间的定积分?要数值解
用matlab求解微分方程组的数值解,原题是这样的,y''-y-x=0,初值是y(0)=0,y'(0)=1,要求用欧拉法
用matlab求这个方程的数值解:y''-(1-y^2)y'+y=0,y(1)=2,y(2)=0,[0,20],麻烦把程
高手MATLAB 求微分方程的解 y''+4*y'+4*y=e^-2x