【发布时间】:2011-04-23 18:13:48
【问题描述】:
我想在 matlab 的 for 循环中的每一步更改函数变量。 我采取以下步骤: 我创建了我的 mfile 函数
function [jfun,fun]=air(x,vt,ty,tz,p2,y0)
jfun=[(cos(tz)*cos(ty)*vt/9.81)*(1-exp(-9.81*x(2)/vt)),...
x(1)*cos(tz)*cos(ty)*exp(-9.81*x(1)/vt);
(-vt*sin(tz)*cos(ty)/9.81)*exp(-9.81*x(1)/vt),...
(x(1)*sin(tz)*cos(ty)*+vt)*exp(-9.81*x(1)/vt)];
fun=[(x(1)*cos(ty)*cos(tz)*vt/9.81)*(1-exp(-9.81*x(2)/vt))-p2;...
(vt/9.81)*(x(1)*sin(tz)*cos(ty)+vt)*(1-exp(-9.81*x(2)/vt))-vt*x(2)+y0];
end
然后我使用了 newtonSys 命令:
ty=rad(-23)
tz=rad(15)
p2=1.8
vt=8.4925
y0=0.2
myfun=@(x)air(x,vt,ty,tz,p2,y0)
x=newtonSys(myfun,[15 5],0.000001,0.000001,500,1)
和matlab回答: 错误 ==> Untitled18 at 7 x=newtonSys(myfun,[15 5],0.000001,0.000001,500,1) 我猜这是因为函数句柄的错误使用,对于我的函数,我必须使用另一个命令,或者我必须使用另一种方法来求解 2nonlinear equation。
【问题讨论】:
标签: matlab