声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1178|回复: 2

简单的程序,为什么会有这个错误?

[复制链接]
发表于 2005-12-27 21:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
<P>我学数值分析,老师给了道最优控制的问题<br><br>题目其实很简单,是个两点边值问题为:<br>X'=-X<SUP>2</SUP>-y      x(0)=1.0<br>y'=-x+2yx    Y(1)=0<br>用打靶法求解。<br><br>所谓打靶法,即在边值问题的初始点x=a处人为地在给一个边值条件,例如y'(a) ,然后解初值问题,算出在边值问题的终端点x=b处的值,不断调整人工边界条件,直到算出的x=b处的值与一直条件吻合。<br><br><br>编了个程序,有2部分,第一部分非常简单,就是函数<br>function F=H(x)<br>F=[-x(1)^2-x(2) -x(1)+2*x(1)*x(2)];<br>end<br><br>第2部分运行的时候老出错,哎,高手帮忙看看<br>function y=daba(f,a,b,h,k)<br>n=(b-a)/h;<br>y=zeros(n+1,3);<br>y(:,1)=[a:h:b]';<br>y(1,2:3)=[1,k];<br>for i=1:n<br>    y(i+1,2:3)=y(i,2:3)-h*f(y(i,2:3));<br>end<br><br><br>运行:daba(@H,0,1,0.1,1)<br>??? Error using ==&gt; *<br>Function '*' is not defined for values of class 'function_handle'.</P>
<P>Error in ==&gt; D:\MATLAB6p5\work\daba.m<br>On line 7  ==&gt;     y(i+1,2:3)=y(i,2:3)-h*f(y(i,2:3));<br><br>为什么有这个错误啊?*未定义是什么意思??<br><br>哪个高人指点下啊,郁闷死了</P>
[此贴子已经被作者于2005-12-27 22:26:13编辑过]

回复
分享到:

使用道具 举报

发表于 2005-12-28 09:33 | 显示全部楼层
<P> 使用feval函数运行你的句柄函数   <br>y(i+1,2:3)=y(i,2:3)-h*feval(f,y(i,2:3));</P>
[此贴子已经被作者于2005-12-28 10:04:32编辑过]

发表于 2005-12-28 10:12 | 显示全部楼层

回复:(gnakmc)简单的程序,为什么会有这个错误?

我帮稍微改了一下,你看行不?<BR>function y = daba(f,a,b,h,k)<BR>n = (b-a)/h;<BR>y = zeros(n+1,3);<BR>y(:,1) = [a:h:b]';<BR>y(1,2:3) = [1,k];<BR>for i = 1:n<BR>    y(i+1,2:3) = y(i,2:3)-h * feval(f,y(i,2:3));<BR>end<BR><BR>function f = H(x)<BR>f = [-x(1)^2-x(2) -x(1)+2*x(1)*x(2)];<BR><BR>daba(@H,0,1,0.1,1)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-12 14:29 , Processed in 0.062181 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表