matlab 结果含有exp 和pi 而不显示数值结果

请教matlab高手 帮忙解决下
matlab结果是一个矩阵 显示的结果含有exp和pi 但不是数值结果
具体简化如下
k=3;
x=2;
y=1.75;
a=4;
b=3.5;
K=1.4*10^4;
D=E*h^3/12/(1-w^2);
for n=1:2:2*k-1
for m=1:2:2*k-1
am(m)=m*pi/a; bn(n)=n*pi/b;
end
end
for m=1:2:2*k-1
Lam(m)=(((am(m)^4+am(m)^2*c^2*K/D+K/D)^0.5+am(m)^2+c^2*K/2/D)/2)^0.5;
Lbm(m)=(((am(m)^4+am(m)^2*c^2*K/D+K/D)^0.5-am(m)^2-c^2*K/2/D)/2)^0.5;
end
for m=1:2:2*k-1
syms Y
Y10(m)=cosh(Lam(m)*Y)*cos(Lbm(m)*Y);
end
for n=1:2:2*k-1
for m=1:2:2*k-1
syms Y
f1(n,m)=2/b*Y10(m)*cos(2*n*pi*Y/b);
c1n(n,m)=int(f1(n,m),-y,y);
end
end
c1n
补充一下数据
k=3;
x=2;
y=1.75;
a=4;
b=3.5;
a1=1;
b1=0.875;
w=0.15;
h=0.34;
K=1.4*10^4;
E=3.5*10^8;
P=10;
c=(h^2*(2-w)/10/(1-w))^0.5;
D=E*h^3/12/(1-w^2);

把c1n换成c1n=subs(c1n),看是不是你要的结果
我运行出来是:
c1n =

1.0e+002 *

-0.0043 0 -0.0947 0 -1.1614 - 0.0000i
0 0 0 0 0
-0.0006 0 -0.0240 0 -0.4874 + 0.0000i
0 0 0 0 0
-0.0002 0 -0.0096 0 -0.2256 - 0.0000i

还有个办法就是把结果矩阵放倒m文件中在运行,得到:
ans =

1.0e+002 *

-0.0043 + 0.0000i 0 -0.0947 0 -1.1614 + 0.0000i

ans =

0 0 0 0 0

ans =

-0.0556 + 0.0000i 0 -2.4041 - 0.0000i 0 -48.7368 + 0.0000i

ans =

0 0 0 0 0
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-24
help subs
help eval
help feval
第2个回答  2008-12-27
结果的位数太多,可以用控制精度的方法,尝试求一个近似解,可能可以得到你想要的结果。

matlab 结果含有exp 和pi 而不显示数值结果
c1n = 1.0e+002 -0.0043 0 -0.0947 0 -1.1614 - 0.0000i 0 0 0 0 0 -0.0006 0 -0.0240 0 -0.4874 + 0.0000i 0 0 0 0 0 -0.0002 0 -0.0096 0 -0.2256 - 0.0000i 还有个办法就是把结果矩阵放倒m文件中在运行,得到:ans = 1.0e+002 -0.0043 + 0.0000i ...

matlab 积分结果不是数字
这个意思是求不出这个积分的解析解,只能求数值解。试试这个 clear;clc df=@(x)(100*exp(- t^3\/100 + t\/10)quad(df,0,0.55)

为什么用MATLAB中的int进行数值积分,结果显示的仍然是算式,不是数值
int不是数值积分,而是符号积分,也就是求原函数的解析解。因为原函数不一定存在解析表达式,即通常说的”不可积“,所以就是你看到的结果——仍然是原来的表达式。

matlab中怎么显示公式,但不让他计算
subs(x*exp(y),{x,y},{sym(1),sym(2)})或者 >> subs(subs(z,'1'),'2')

问一个matlab求解微分方程结果显示不同的问题
怒答一波,提问者貌似没有仔细看噢。实际上两个结果是一样的 化简过程如下图:matlab中默认“log()”是以e为底

怎么让matlab直接输出数值而不是算式
p = vpa(pi)w = vpa('(1+sqrt(5))\/2')q = 0.5 p = 3.141592653589793115997963 w = 1.618033988749894848204587 总结:digits(n) %设定默认的精度 vpa(s,n) %表示将s表示为n位有效数的符号对象 如果不设定digits(n) ,系统默认为32位 syms x >> y=(2*x.^0.5\/(3.14^0...

matlab求积分结果是个符号不是一个具体值?代码如下
按你的程序积分结果是个sym,可在最后加上:a=double(I)就转化为数值了。

matlab 求极限结果通过vpa转换为数值,但类型却不是数值
我刚是了一下,是可以显示z的值的 vpa(z)>> vpa(z)ans = -0.5900760592185549671404789427541

matlab绘制图像,这个代码为什么不为matlab表达式?
)-2cos(theta)^4+sin(theta\/4)^3 中应加入点运算符(.),即 rho=exp(cos(theta))-2*cos(theta).^4+sin(theta\/4).^3;完整的代码为 theta=0:pi\/10:2*pi;rho=exp(cos(theta))-2*cos(theta).^4+sin(theta\/4).^3;plot(theta,rho)xlabel('θ'),ylabel('ρ');运行结果 ...

MATLAB绘图问题
举个例子吧 解出平面波的方程(△+k^2)Ψ=0 你的k估计就是这个k了。不过也可能k = 2*pi\/lambda,lambda为波长。如果是要画图的话,k=ai倒可能一个plot(x,exp(ikx))就可以画出来。但如果k为非纯虚数的话,exp(ikx)就可能为复数。你就需要分别画实部和虚部的图。或者画模的图了。

相似回答
大家正在搜