高分请教MATLAB高手

[复制链接]
查看11 | 回复2 | 2008-5-26 16:41:42 | 显示全部楼层 |阅读模式
有一段MATLAB画曲线程序
t=linspace(-0.0002,0.0002);
g=1*10^(-5);Y=5*10^(-5);b=15/13*10^(-10);u=1.5*10^4;k=9.11*1.5*10^3/1.055;c=1.113025*10^22/331.9684;A=(2+2*exp(-Y^2/(2*g^2)))*(2*pi*g^2)^(-1/2);h=1.055*10^(-27);m=9.11*10^(-28);
y=A*(1+c*b^2)^(-1/2)*exp(-(t.^2+(Y+u*b)^2)/(2*g^2*(1+c*b^2)))*(exp(t.*(Y+u*b)/(g^2*(1+c*b^2)))+exp(-t.*(Y+u*b)/(g^2*(1+c*b^2)))+2*cos(2*t.*k-(Y+u*b)*t.*h*b/(2*m*g^4*(1+c*b^2))));
plot(t,y);
运行之后提示如下错误:
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> fun2 at 3
y=A*(1+c*b^2)^(-1/2)*exp(-(t.^2+(Y+u*b)^2)/(2*g^2*(1+c*b^2)))*(exp(t.*(Y+u*b)/(g^2*(1+c*b^2)))+exp(-t.*(Y+u*b)/(g^2*(1+c*b^2)))+2*cos(2*t.*k-(Y+u*b)*t.*h*b/(2*m*g^4*(1+c*b^2))));
应该没什么错误啊
怎么就画不出来曲线啊?
F=10.55/23.686;A=1*10^(-4);B=5.275*10^16/18.22;C=1.113025*10^22/331.9684;D=1.055*10^11/9.11;
E=5*10^5;g=5*10^5;u=1.3*10^10;
dy/dt=F*(D*y(1)*t/u*cos(B*y(1)*t*u/(u^2+C*t^2))-A*sin(B*y(1)*t*u/(u^2+C*t^2))+1/2*D*t/u*(y(1)-g))*exp(E*y(1)/(1+C*t^2/u^2))+1/2*D*t/u*(y(1)+g)*exp(-E*y(1)/(1+C*t^2/u^2)))/(1+C*t^2/u^2)/(exp(E*y(1)/(1+C*t^2/u^2))+exp(-E*y(1)/(1+C*t^2/u^2))+2*cos(B*y(1)*t*u/(u^2+C*t^2)));怎样画出y(t)的图像出来啊,程序应该怎么写。t的范围是(0,35)

回复

使用道具 举报

千问 | 2008-5-26 16:41:42 | 显示全部楼层
你的程序我找出错误了。佻的y应改为:m=9.11*10^(-28); y=A*(1+c*b^2)^(-1/2)*exp(-(t.^2+(Y+u*b)^2)/(2*g^2*(1+c*b^2))).*(exp(t.*(Y+u*b)/(g^2*(1+c*b^2)))+exp(-t.*(Y+u*b)/(g^2*(1+c*b^2)))+2*cos(2*t.*k-(Y+u*b)*t.*h*b/(2*m*g^4*(1+c*b^2)))); 就是你的两个exp相乘时,要写成exp().*exp()要加一个点。你的补充问题:比如说f(t+y)=t*sin(y)+y;y(t=0)=1;你要计算到t=5的值。你就这样做:f
回复

使用道具 举报

千问 | 2008-5-26 16:41:42 | 显示全部楼层
你的代码没给完整,我想看看完整的代码,包括调用的自定义函数代码。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行