赌场送彩金35|临海赌场看场子
查看: 344|回复: 4|关注: 0
打印 上一主题 下一主题

[已解决] 向前欧拉法的函数文件编写请教

[复制链接]

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案

本人刚刚学习matlab编程,参照温正编写的书籍《精通MATLAB科学计算》,在学习欧拉法中的向前欧拉法时,按照书中的例子,一直有问题产生,想请教一下前辈们。
软件:matlab R2017b,电脑:win10
书中向前欧拉法函数文件如下:

  • function P=Eulerli1(x0,y0,b,h)
  • %x0初值
  • %y0为初值
  • %b为x0取值区间的右端点
  • %h为步长
  • n=(b-x0)/h;
  • X=zeros(int(n),1);
  • Y=zeros(int(n),1);
  • k=1;
  • X(k)=x0;
  • Y(k)=y0;
  • for k=1:n
  •     X(k+1)=X(k)+h;
  •     Y(k+1)=Y(k)+h*(X(k)-Y(k));
  •     k=k+1;
  • end
  • y=X-1+2*exp(-X);
  • plot(X,Y,'mp',X,y,'b-')
  • grid
  • xlabel('自变量 X'),ylabel('因变量')
  • legend('h=0.075 数?#21040;?,'精确解')
  • jwY=y-Y;
  • xwY=jwY./y;
  • k1=1:n;
  • k=[0,k1];
  • P=[k',X,Y,y,jwY,xwY];


红色部分就是一直出问题的地方,我上网看了一下,zeros函数里面必须是整数,可是我应该如何修改这个函数文件呢?
自己?#37096;?#20102;其他人的向前欧拉法,比如:
  • %  forward euler method
  • function  [ x, y ] = eulerf ( f, y0, a, b, n )
  • y ( 1 ) = y0 ;
  • h = ( b - a ) / n;
  • x = a : h : b;
  • for i = 1 : n
  •     y ( i +1 ) = y ( i ) + h * feval ( f, x ( i ), y ( i ) ) ;
  • end;

关键第一种书上的还有图形出来,但是可能函数的一些编写理由自己不是很清楚,希望有关方面前?#37096;梢源?#25945;,谢谢!

MATLAB 基础讨论
版块优秀回答者

中级

703 麦片

财富积分


5001500


0

主题

1190

帖子

152

最佳答案
  • 关注者: 25
2#
发表于 2019-5-29 16:50:25 | 只看该作者 |此回复为最佳答案
X=zeros(int(n),1);
Y=zeros(int(n),1);
改为
X=zeros(int8(n),1);
Y=zeros(int8(n),1);
就好了

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
3#
 楼主| 发表于 2019-5-29 16:52:50 | 只看该作者
WarnerChang 发表于 2019-5-29 16:50
X=zeros(int(n),1);
Y=zeros(int(n),1);
改为

这是加8什么原因呢,我现在把int去掉,前面的n用fix函数表示一下也行

MATLAB 基础讨论
版块优秀回答者

中级

703 麦片

财富积分


5001500


0

主题

1190

帖子

152

最佳答案
  • 关注者: 25
4#
发表于 2019-5-29 17:01:07 | 只看该作者
ll_matlab 发表于 2019-5-29 16:52
这是加8什么原因呢,我现在把int去掉,前面的n用fix函数表示一下也行

int代表积分的意思,而int8是将数据转化为有符号的-2*8到2*8-1内的整形数据,当然你?#37096;?#20197;用int64,只是想?#30340;?#30340;int函数不是将数据转化为整形数据(即整数)

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
5#
 楼主| 发表于 2019-5-29 18:42:04 | 只看该作者
WarnerChang 发表于 2019-5-29 17:01
int代表积分的意思,而int8是将数据转化为有符号的-2*8到2*8-1内的整形数据,当然你?#37096;?#20197;用int64,只是 ...

谢谢你的回答,我试了一下可以,谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表
赌场送彩金35 辽宁35选7开奖号码咨询 巴蜀麻将能作弊吗 三肖三马中特 360票老时时 今天幸运农场走势图 大发快三金牌团队计划 重庆时时走势图5星综合 广西淘宝快3走势图表官网 北京快三人工精计划 吉林时时网站制作