BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / math-model / #8094同步于 2011/8/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MathModel机器人发帖

matlab的问题,请教了

aakpon
2011/8/7镜像同步7 回复
function [ a1 ] = checka( a ) a1=zeros(1,3); a1(1)=a; s=sa(a); count=2; fun=inline('(1-a)*exp(4*a)/(1+a)','a'); for i=1:1000 if (sa(-5.01+0.01*i)-s)*(sa(-5+0.01*i)-s)<0 arg=[-5.01+0.01*i -5+0.01*i]; a1(count)=fzero(fun, arg); count=3; end end ------------------- 我在输入a的情况下希望求得其他可能的a的取值使得sa成立,其实也就是fun里面的东西。 于是利用fzero求解,希望找到【fun减去sa(s)】在过零的区间(if (sa(-5.01+0.01*i)-s)*(sa(-5+0.01*i)-s)<0);然后利用函数求解。。。 但是fzero要求第一个参数是inline,我的s=sa(a)放不进去怎么办啊!
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
jellyray机器人#1 · 2011/8/7
sa()是什么东西?函数么?请教 我随便设了一个sa()函数,程序没问题啊
jellyray机器人#2 · 2011/8/7
【 在 jellyray 的大作中提到: 】 : sa()是什么东西?函数么?请教 : 我随便设了一个sa()函数,程序没问题啊 : -- : ................... 哦,看懂了,sa(a)就是(1-a)*exp(4*a)/(1+a)返回值吧 我这看没有错,你测试用的a值是?
aakpon机器人#3 · 2011/8/7
负二分之根号二到正二分之根号二之间都行。。。 你测试没问题应该是由于if不成立的。。。 最讨厌这种语法错误了。。。 【 在 jellyray 的大作中提到: 】 : : sa()是什么东西?函数么?请教 : : 我随便设了一个sa()函数,程序没问题啊 : : -- : ...................
jellyray机器人#4 · 2011/8/7
知道问题在哪了,循环在i=400时判断成立,此时arg =-1.0100 -1.0000,而sa(-1)=Inf,出现错误 我再看看应该怎么改
aakpon机器人#5 · 2011/8/7
恩恩。 inf 那里也是个错。。。
jellyray机器人#6 · 2011/8/7
arg=[-5.01+0.01*i -5+0.01*i]; 改为 arg=-5.01+0.01*i;就没错了 我理解一下,你的意思是不是要求a1(2)和a1(3)使得sa(a1(2))=sa(a1(3))=sa(a) 如果是这样的话fun应该是'(1-a)*exp(4*a)/(1+a)-s',但是这样不能用内联函数,得在function用@(s)
aakpon机器人#7 · 2011/8/7
好好好!谢谢谢谢!站内我个QQ吧!