matlab解微分方程画图???
functionmat1()symsyt=0:0.1:1y=dsolve('Dy=1-2*y+t','t')[y]endcommandwindow:t=00.10000....
function mat1()
syms y
t=0:0.1:1
y=dsolve('Dy=1-2*y+t','t')
[y]
end
command window:
t =
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
y =
t/2 + C3/(4*exp(2*t)) + 1/4
y =
t/2 + C3/(4*exp(2*t)) + 1/4
>> plot(t,y)
??? Undefined function or variable 'y'. 展开
syms y
t=0:0.1:1
y=dsolve('Dy=1-2*y+t','t')
[y]
end
command window:
t =
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
y =
t/2 + C3/(4*exp(2*t)) + 1/4
y =
t/2 + C3/(4*exp(2*t)) + 1/4
>> plot(t,y)
??? Undefined function or variable 'y'. 展开
2个回答
展开全部
存在的问题:
1、解微分方程的代码写在一个函数里,函数有自己独立工作区,运行函数后,变量的值不会自动保存在命令窗口里,所以会提示y未定义(你应该在之前定义过t,否则应该提示t未定义)。
2、微分方程没提供初始条件,因而求解得到的表达式中含有自由系数C3。
3、解微分方程得到的y是t的表达式,需要将t的实际取值代入才可以得到绘图所需数据。
参考代码(假定初值为0):
syms y
t=0:0.1:1;
y=dsolve('Dy=1-2*y+t','y(0)=0')
y=subs(y);
plot(t,y)
追问
y=subs(y)是什么意思,还有syms不是定义了y么?
追答
y=subs(y):参见上面说的第3点。你用dsolve求出的是关于t的表达式,subs作用是把当前工作区中存在的变量t的具体值代入表达式。
syms y:参见上面说的第1点。你的y是在函数中定义的,而plot是在命令窗口中,二者工作区不一样。
东莞大凡
2024-08-07 广告
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |