MATLAB求解和绘制微分方程

时间:2016-02-11 03:56:59

标签: matlab

考虑初始值问题: Ť DY dt + y = 2t,y(1)= c

  1. 使用dsolve解决它。
  2. 在t = 0.01,0.1,1,10处评估c = 0.7的溶液。重复c = 1和c = 2.1。
  3. 在间隔(0,2.5)的同一图表上绘制c = 0.7,0.9,1.1,1.5,2.1的解。
  4. 继承人我试过的事情

    syms c y(t)
    
    dsolve(diff(y)==(2*t-y)/t,y(.01)==.7)
    
    dsolve(diff(y)==(2*t-y)/t,y(.1)==0.7);
    
    dsolve(diff(y)==(2*t-y)/t,y(1)==0.7);
    
    dsolve(diff(y)==(2*t-y)/t,y(10)==0.7);
    

    每次香港专业教育学院都试图绘制它说MATLAB不能从sym改变双倍。我不确定如何处理这个问题,或者我尝试过的是否正确。

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用ezplot

f = dsolve(diff(y)==(2*t-y)/t,y(.01)==.7)
ezplot(f)

注意:如果您有多个解决方案,则可能必须使用ezplot(f{1})取消引用单元格数组。

答案 1 :(得分:0)

关键是使用symfun函数将符号表达式转换为函数。

对于第一种情况,请尝试以下

syms c y(t)

myfun = symfun(dsolve(diff(y)==(2*t-y)/t,y(.01)==.7), t);

N = 100;
x = linspace(0.001, 2.5, N);
plot(x, myfun(x));