matlab匿名函数解方程,matlab 数学建模 匿名函数@

匿名函数的基本用法:

handle = @(arglist)anonymous_function

其中handle为调用匿名函数时使用的名字。arglist为匿名函数的输入参数,可以是一个,也可以是多个,用逗号分隔。anonymous_function为匿名函数的表达式。

举个例子如下:

>> f=@(x,y)x^2+y^2;

>> f(1,2)

ans = 5

当然输入的是数组也是可以的:

>> f=@(x,y)x.^2+y.^2;

%注意需要点(.)运算

>> a=1:1:10;

>> b=10:-1:1;

>> f(a,b)

ans = 101 85 73 65 61 61 65 73 85 101

匿名函数的表达式中也可以有参数的传递,比如:

>> a=1:5;

>> b=5:-1:1;

>> c=0.1:0.1:0.5;

>> f=@(x,y)x.^2+y.^2+c;

>> f(a,b)

ans = 26.1000 20.2000 18.3000 20.4000 26.5000

c作为表达式中的参数,进行了数据传递。上面都是单重匿名函数,也可以构造多重匿名函数,如:

>> f=@(x,y)@(a) x^2+y^+a;

>> f1=f(2,3)

f1 = @(a)x^2+y^+a

>> f2=f1(4)

f2 = 85

每个@后的参数从它后面开始起作用,一直到表达式的最后。

dxy=@(t,x)[-0.0544*x(2)+54000*(t>=0 & t<1)+6000*(t>=2 & t<3)+13000*(t>=5 & t<6)

-0.0106*x(1)]; %用匿名函数定义方程右端项,这里用逻辑语句定义分段函数

[t,xy]=ode45(dxy,[0:36],[0,21500])

subplot(2,1,1)

plot(t,xy(:,1),'r*',t,xy(:,2),'gD')

xlabel('时间t')

ylabel('人数')

subplot(2,1,2)

plot(xy(:,1),xy(:,2)) %画微分方程组的轨线

xlabel('A军人数x')

ylabel('B军人数y')

9cf89a51ee1b30710f72dbd9252d97d5.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值