Matlab带初始值的微分方程求解画图 要求用plot并画在1张图上 求高手看我哪错了 10

x=0:0.01:2;y1=dsolve('Dy=x*exp(x)*(cos(y))^2','y(1)=0');y2=dsolve('Dy=x*exp(x)*(cos(y... x=0:0.01:2;
y1=dsolve('Dy=x*exp(x)*(cos(y))^2','y(1)=0');
y2=dsolve('Dy=x*exp(x)*(cos(y))^2','y(1)=pi/2');
y3=dsolve('Dy=x*exp(x)*(cos(y))^2','y(1)=pi');
x1=eval(y1.y);
x2=eval(y2.y);
x3=eval(y3.y);
plot(x,x1,x,x2,x,x3);
title('figure 1');
展开
 我来答
dbb627
2011-09-23 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2127
采纳率:88%
帮助的人:1416万
展开全部
首先x是自变量 如果不声明 默认是对t求导
>> x=0:0.01:2;
y1=dsolve('Dy=x*exp(x)*(cos(y))^2','y(1)=0','x')
y2=dsolve('Dy=x*exp(x)*(cos(y))^2','y(1)=pi/2','x')
y3=dsolve('Dy=x*exp(x)*(cos(y))^2','y(1)=pi','x')

y1 =

atan(exp(x)*(x - 1))

y2 =

pi/2

Warning: Explicit solution could not be found.
> In dsolve at 101

y3 =

[ empty sym ]
其次
y2为一常数 pi/2
y3matlab求不出解析式(其实应该和y1一样的)
所以你带入x值是不行的
上海华然企业咨询
2024-10-28 广告
上海华然企业咨询有限公司专注于AI与数据合规咨询服务。我们的核心团队来自头部互联网企业、红圈律所和专业安全服务机构。凭借深刻的AI产品理解、上百个AI产品的合规咨询和算法备案经验,为客户提供专业的算法备案、AI安全评估、数据出境等合规服务,... 点击进入详情页
本回答由上海华然企业咨询提供
匿名用户
2011-09-24
展开全部
clc;clear
[I,f]=dsolve('60=7.18*0.001*DI+1/36.8*30/pi*Df*93+1.4*I','8.74/93*D2f*1.15=259*0.001*I','f(0)=15/180*pi','Df(0)=11.4028','I(0)=0')
t=0:0.001:0.1;
I=subs(I);f=subs(f);
[AX,H1,H2]= plotyy(t,I,t,f)
xlabel('t')
set(get(AX(1),'Ylabel'),'String','I')
set(get(AX(2),'Ylabel'),'String','\phi')
figure(2)
subplot(2,1,1)
plot(t,I),xlabel('t'),ylabel('I')
subplot(2,1,2)
plot(t,f),xlabel('t'),ylabel('\phi')

图形参见我的博客:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
135246kdb
2011-09-23 · TA获得超过1052个赞
知道答主
回答量:111
采纳率:0%
帮助的人:99.8万
展开全部

%你的方法我不知道错哪,我用自己的方法给你做了一下

%所用方法为有限差分法,程序如下

x(1)=1;

y1(1)=0;y2(1)=pi/2;y3(1)=pi;

dx=0.001;

i=1;

while x<=3                                                 %如果你想得到更大范围的曲线,就把3改为更大的数

    dy1=x(i)*exp(x(i))*(cos(y1(i)))^2*dx;

    dy2=x(i)*exp(x(i))*(cos(y2(i)))^2*dx;

    dy3=x(i)*exp(x(i))*(cos(y3(i)))^2*dx;

    x(i+1)=x(i)+dx;

    y1(i+1)=y1(i)+dy1;

    y2(i+1)=y2(i)+dy2;

    y3(i+1)=y3(i)+dy3;

    i=i+1;

end

hold on;

plot(x,y1,'b');

plot(x,y2,'r');

plot(x,y3,'g');

legend('y1','y2','y3');

xlabel('x');ylabel('y1,y2,y3');

%结果见下图

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式