matlab积分画图问题!!!

clear;symsv;t=int(v/(4687052+173703.8*v+14.197136*v^3))plot(t,v)这是我的代码。。。为什么画不出来啊?它说E... clear;syms v;t=int(v/(4687052+173703.8*v+14.197136*v^3))plot(t,v)这是我的代码。。。为什么画不出来啊?
它说Error using plotConversion to double from sym is not possible.

这该这么解决啊?
clear;
syms v;
t=int(v/(4687052+173703.8*v+14.197136*v^3));
plot(t,v)
展开
 我来答
tianxiawulang
2013-12-22 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2624万
展开全部

我在你前面的提问里回答过了,但答案无法正常显示,说是“提交中”,唉,恶心的度娘。。。

 

分析

1、你要求的那个方程无法求出解析解;

 

2、求解微分方程需要初始条件,但这个题并没给初始条件。经过试探发现,如果初值为正,则系统发散;如果初值为负,似乎不论取什么初值,最终都收敛到一个固定值(仿真结论,并未进行理论分析)。

 

3、收敛的稳态值可以按照下面的思路求出来:稳态意味着v不变,则dv/dt=0,也就是上述方程的右侧为0,解方程可以得到

>> solve('4687052/v+173703.8+14.197136*v^2')
ans = [                         -25.610148923197372792334831397939]
[12.805074461598686396167415698969-112.81418116868122677783012067587*i]
[12.805074461598686396167415698969+112.81418116868122677783012067587*i]

保留实数解,即v=25.61。

 

 

代码

V0 = [-0.001 -10 -30 -40];
lstr = cell(size(V0));
clf
for i = 1 :length(V0)
    v0 = V0(i);
    [t, v] = ode45(@(t,v)4687052/v+173703.8+14.197136*v^2,[0 0.001],v0);
    plot(t, v, 'color', rand(1,3));
    hold on
    lstr{i} = sprintf('v = %g', v0);
end
legend(lstr{:})
xlabel('t')
xlabel('v')

结果图我就不贴了,贴了说不定又不显示了,自己运行一下就知道了。

更多追问追答
追问
嗯嗯   那如果要画x-t图呢?
追答
x-t图?请问x在哪里?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式