作业帮 > 数学 > 作业

matlab中@符号怎么用?

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/02 11:44:28
matlab中@符号怎么用?
举个例子吧,比如我要计算积分quadl(fun,0,1)
其中fun定义如下:
fun1=@(x)x^2;
fun2=@(x)x^3;
fun=fun1+fun2;(当然我要解的问题不是加法这么简单,这里仅仅举例)
可这样就报错了,说什么'function_handle'类型的加法没定义.
请问我该怎么写才能表示fun是fun1和fun2的和?
fun=@(x)x.^2+x.^3;
这样不就行了
再问: 我说了我要解决的问题不是加法这么简单,而且有好几项,不可能就把两项加起来,加法仅仅是举个例子罢了
再答: 根据你的意思,我也是只能回答道这里,我的想象力不够。 fun=@(x,y)x.^2+x.^3+x.y+y.^2;%这样写都是可以的,你可以直接把两个fun的式子加起来 不知是否是你说的意思。另外,句柄肯定是不能相加减的,因为他只是个标志或地址。 或者你把你的问题完整的贴出来,或者你表达清楚你的确切意图。
再问: 这样吧,我的完整问题是: 我需要解一个方程,f1+f2+f3+f4=0,其中f1、f2、f3、f4都是关于x的函数 f1为一个含有变量x的函数f的积分,积分上下限都已经给出了为常数 f2、f3、f4都是关于x的复杂函数, 我现在有两个问题,一个是积分f1怎么表示,另一个是我把f1、f2、f3、f4分别用@(x)的形式表示出来以后怎么再解方程? 希望可以解答,谢谢啊! 做了两天了,很崩溃啊~~
再答: f1按你所说就是一个数值,可以先算出来; f2,f3,f4就是三个关于x的符号表达式,带入等式直接求解 如果不行,可以尝试其他方法 你用@(x)有毛用
再问: 不好意思我说错了,f1是一个含有未知数x的函数的积分,积分变量为r,积分上下限为a、b,所以f1不是一个数值。。。
再答: 你直接把你所有的东西用百度Hi都发过来,我看看能不能帮你做,不行的话你在想办法,别这么一句一句的闲扯了
再问: 谢谢你了,不过我还是决定用数值解法了。你能帮我看一下这段程序错在哪了吗?谢谢! a=1.6; n=0.1; T=1; inte1=quad(int1(n,T),0,a); int1.m是这么写的: function f=int1(n,T) a=1.6; a_n=1; a_T=1.5; f=@(r)r*(((1+a_n)*n*(1-(r/a)^2)^a_n)^2)... *(9*10^(-22)*exp(-0.476*(abs(log(((1+a_n+a_T)/(1+a_n)*T*(1-(r/a)^2)^a_T)/69)))^2.25));