如何在matlab中定义两个输出量的函数呢?

例如函数是[x,favl]=fsolve(@(x)cos(0.5*x)*cosh(0.5*x)+1,6);用来求解方程cos(0.5*x)*cosh(0.5*x)+1=0... 例如函数是[x,favl]=fsolve(@(x)cos(0.5*x)*cosh(0.5*x)+1,6);用来求解方程cos(0.5*x)*cosh(0.5*x)+1=0在9附近的根和误差。在M-file中怎么写才对呢? 展开
 我来答
白肚河蟹不让说
2013-04-01 · TA获得超过1632个赞
知道小有建树答主
回答量:1045
采纳率:66%
帮助的人:882万
展开全部
你的问题很模糊。
如果你是问fsolve求解0值方程的用法,是这样:
[输出变量列表,逗号分隔]=fsolve(函数句柄,[参数初值列表,逗号分隔],选项参数)
对照你写的语句:
[x,favl]=fsolve(@(x)cos(0.5*x)*cosh(0.5*x)+1,6)

你写的表达式中fsolve参数中的@句是匿名方式声明函数:
函数名 =@(变量列表)表达式

所以原句相当于在求解x0=6附近cos(0.5*x)*cosh(0.5*x)+1=0的解
实际不用;号结尾这一句在COMMAND下直接就可解出:
x = 3.7502 =>最近的解点
favl = -1.3868e-07 =>解点的函数值,很接近于0了哦。fsolve是数值解法。

要求解9附近的根和误差:
[x,favl]=fsolve(@(x)cos(0.5*x)*cosh(0.5*x)+1,9)
x = 9.3882
favl = 2.4299e-09

至于怎样为函数定义多个输入参数。。。。自己去随便搜点基础教程都有的。
看帮助也行阿,搜function declare arguments,第一个结果应该就是了

声明语法:
Declare function
Syntax
function [out1, out2, ...] = myfun(in1, in2, ...)

简明例子:
Example 1
The existence of a file on disk called stat.m containing this code defines a new function called stat that calculates the mean and standard deviation of a vector:
function [mean,stdev] = stat(x)
n = length(x);
mean = sum(x)/n;
stdev = sqrt(sum((x-mean).^2/n));

调用函数:Call the function, supplying two output variables on the left side of the equation:
[mean stdev] = stat([12.7 45.4 98.9 26.6 53/1])
mean = 47.3200
stdev = 29.4085
day忘不掉的痛
推荐于2017-10-09 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223941
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
建立M文件:function y=f(x)
y=f(x);
end
然后就可以直接使用函数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式