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'); 展开
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'); 展开
3个回答
展开全部
首先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值是不行的
>> 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 广告
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')
图形参见我的博客:
[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')
图形参见我的博客:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%你的方法我不知道错哪,我用自己的方法给你做了一下
%所用方法为有限差分法,程序如下
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');
%结果见下图
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询