matlab 简单编程问题

y=(600000*600000*6*4*0.00424^2*(10^-12)*log(0.025/0.01674)+103000*103000*0.003*(2*10^... y=(600000*600000*6*4*0.00424^2*(10^-12)*log(0.025/0.01674)+103000*103000*0.003*(2*10^-5)^3)/(0.003*(2*10^-5)^3+6*4*0.00424^2*(10^-12)*log(0.025/0.01674));

fun=inline('x.*(y-(y-103000^2)*log(x./0.01674)/log(0.025/0.01674)).^0.5');
z=quad(fun,0.01674,0.025);

w=2*pi* z+pi*0.01674^2.*(y)^0.5-pi*0.025^2*103000

就是这样一个函数问题,我希望算出x值之后, 将x的值放入第二个函数中继续计算,最终将z的值和x的值一起代入第三个式中算出w 但是在第二步一直有错,??? Error using ==> inline.subsref
Not enough inputs to inline function.
请问各位怎么解决?最后怎么算出结果 谢谢各位
我的叙述有误,应该是算出y值后将y的值代入第二第三个式中
展开
 我来答
扈忆彤Yr
2011-08-27 · TA获得超过1386个赞
知道小有建树答主
回答量:482
采纳率:100%
帮助的人:416万
展开全部
你错在
z=quad(fun,0.01674,0.025);
quad是一个求一元数值积分的函数,要求三个参数quad('函数名',积分下限,积分上限),而你的函数
fun=inline('x.*(y-(y-103000^2)*log(x./0.01674)/log(0.025/0.01674)).^0.5');
有两个未知量x和y,所以错了。修改如下:
fun=inline(['x.*(',num2str(y-(y-103000^2)),'*log(x./0.01674)/log(0.025/0.01674)).^0.5']);
经过如上修改就没有错误了。
追问
貌似改了之后z的值计算错误啊  怎么回事  应该是60的 改了之后变成12了
追答
你原始的问题我不知道,我只能根据现有问题解决语法错误。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式