急!!!Matlab中报错:Undefined function or variable 'a'.!该怎么办?
>>x=0:0.5:14;u=0.1;p=u./[1+10.^(1.23-x)+10.^(5.42-2.*x)+10^7.21.*a+2.*10^11.5.*a.*p+3...
>> x=0:0.5:14;
u=0.1;
p=u./[1+10.^(1.23-x)+10.^(5.42-2.*x)+10^7.21.*a+2.*10^11.5.*a.*p+3.*10^17.*a.*p.^2+10^2.7.*b+2.*10^4.52.*b.*p+3.*10^5.22.*b.*p.^2+10^9.4.*c+2.*10^16.2.*c.*p+3.*10^20.2.*c.*p.^2]
a=min(sqrt(10^19./(p.^3)),10.^(20.5-3.*x));
b=10.^(11.69-2.*x);
c=10.^(3.45-3.*x);
j=a.*[1+10^7.21.*p+10^11.5.*p.^2+10^17.*p.^3+10.^(x-8.5)];
g=b.*[1+10^2.9.*p+10^4.52.*p.^2+10^5.22.*p.^3+10.^(x-8.44)+10.^(2*x-18.23)+10.^(3*x-32.33)+10.^(4*x-47.72)];
h=c.*[1+10^9.4.*p+10^16.2.*p.^2+10^20.2.*p.^3+10.^(x-2.13)+10.^(2*x-6.83)+10.^(3*x-12.33)];
y=log10(j);
m=log10(g);
n=log10(h);
plot(x,y,x,m,x,n)
请各位大虾帮忙解释一下该怎么改呢? 展开
u=0.1;
p=u./[1+10.^(1.23-x)+10.^(5.42-2.*x)+10^7.21.*a+2.*10^11.5.*a.*p+3.*10^17.*a.*p.^2+10^2.7.*b+2.*10^4.52.*b.*p+3.*10^5.22.*b.*p.^2+10^9.4.*c+2.*10^16.2.*c.*p+3.*10^20.2.*c.*p.^2]
a=min(sqrt(10^19./(p.^3)),10.^(20.5-3.*x));
b=10.^(11.69-2.*x);
c=10.^(3.45-3.*x);
j=a.*[1+10^7.21.*p+10^11.5.*p.^2+10^17.*p.^3+10.^(x-8.5)];
g=b.*[1+10^2.9.*p+10^4.52.*p.^2+10^5.22.*p.^3+10.^(x-8.44)+10.^(2*x-18.23)+10.^(3*x-32.33)+10.^(4*x-47.72)];
h=c.*[1+10^9.4.*p+10^16.2.*p.^2+10^20.2.*p.^3+10.^(x-2.13)+10.^(2*x-6.83)+10.^(3*x-12.33)];
y=log10(j);
m=log10(g);
n=log10(h);
plot(x,y,x,m,x,n)
请各位大虾帮忙解释一下该怎么改呢? 展开
展开全部
错误在p=......中的a,b,c和p都没有先定义,你是在后面才给的。所以把a=....., b=......., c=.......先放到p=.......的上边。但是这还不够,你的程序还有个问题,就是a=.....和p=.....中都还有p,而这个p是未知的。所以这个程序要大改才行
更多追问追答
追问
您好!谢谢您的回答!因为我也是第一次作这样的计算,所以一下方寸大乱了,具体可以怎么改您可以不可以详细建议一下呢?感激涕零啊。。。
追答
有个很难处理的地方,就是p=.........和a=..........。这两个函数是相互决定的,形成了一个二维非线性方程组。所以如果求不出a和p,就没办法得到结果。就你提供的程序,我其实一下子也不知道如何解决这个问题,因为这的确不是个简单的问题,至少不是几步简单的程序就能解决的。你应该回到原问题在思考一下,到底有什么办法可以避免这样较复杂的二维非线性方程组的出现。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询