matlab 运行下面的程序出现一些错误,请帮忙看看错误在哪里,谢谢。

程序symsxnmn=0;m=1377*10^6;x=0.1:0.01:6;f(x)=(x.*19.1*300*300*pi.*(1-(sin(2*pi.*x))/(2*... 程序
syms x n m
n=0;
m=1377*10^6;
x=0.1:0.01:6;
f(x)=(x.*19.1*300*300*pi.*(1-(sin(2*pi.*x))/(2*pi.*x))-n)/((3*x-1.25)*360);
plot(x,f(x))
运行出错
??? Subscript indices must either be real positive integers or logicals.
程序

function h = myfun(x)
syms x n m f h g
h=f-g;
n=0;
m=1377*10^6;
f=(x*19.1*300*300*pi*(1-(sin(2*pi*x))/(2*pi*x))-n)/((3*x-1.25)*360);
g=pi*((2/3)*19.1*300*300*300*(sin(pi*x))^3-m)/(360*255*(sin(pi*x)+sin(pi*(1.25-2*x))));
保存为名为myfun的M文件
后来在命令窗口调用
x = fzero(@myfun,1)
出错
??? Function 'isfinite' is not defined for values of class 'sym'.

Error in ==> isfinite at 19
[varargout{1:nargout}] = builtin('isfinite', varargin{:});

Error in ==> fzero at 309
elseif ~isfinite(fx) || ~isreal(fx)
展开
 我来答
匿名用户
2014-02-20
展开全部

三个问题:

1、第一句syms x n m不需要,也没用;

2、f(x)应为f,要注意:这是一个变量的名字,编程语言中的符号不能照搬数学的;

3、有两处除号应改为点除,即

f(x)=(x.*19.1*300*300*pi.*(1-(sin(2*pi.*x))/(2*pi.*x))-n)/((3*x-1.25)*360);

应为

f=(x.*19.1*300*300*pi.*(1-(sin(2*pi.*x))./(2*pi.*x))-n)./((3*x-1.25)*360);
追问
麻烦看一下 我修改后调用FZERO函数还是出错看看哪里有问题,非常感谢。
追答

1、不要乱用符号变量。

x 是函数myfun的输入参数,用syms x会导致输入数据被覆盖;n m f h g也根本用不到符号变量。

 

2、既然搞计算,至少要搞清楚变量之间的关系,先算哪个后算哪个。调整一下顺序就可以了。

 

改后的函数:

function h = myfun(x)
n=0;
m=1377*10^6;
f=(x*19.1*300*300*pi*(1-(sin(2*pi*x))/(2*pi*x))-n)/((3*x-1.25)*360);
g=pi*((2/3)*19.1*300*300*300*(sin(pi*x))^3-m)/(360*255*(sin(pi*x)+sin(pi*(1.25-2*x))));
h=f-g;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
荔菲绿海TS
2014-02-20 · TA获得超过140个赞
知道答主
回答量:136
采纳率:0%
帮助的人:84万
展开全部
syms x n m
n=0;
m=1377*10^6;
x=0.1:0.01:6;
f=(x.*19.1*300*300*pi.*(1-(sin(2*pi.*x))/(2*pi.*x))-n)/((3*x-1.25)*360);
plot(x,f)
齐活
追问
运行正常,麻烦看一下 我修改后调用FZERO函数还是出错看看哪里有问题,非常感谢。
追答
function h = myfun(x)
% syms x n m f h g

n=0;
m=1377*10^6;
f=(x*19.1*300*300*pi*(1-(sin(2*pi*x))/(2*pi*x))-n)/((3*x-1.25)*360);
g=pi*((2/3)*19.1*300*300*300*(sin(pi*x))^3-m)/(360*255*(sin(pi*x)+sin(pi*(1.25-2*x))));
h=f-g;
end
搞不懂你干嘛要弄syms那一行。你的h=f-g要放在最后,不然f,g都还没定义的就让他们相减,不报错才怪了。
MATLAB执行代码是按行的顺序来的,你的思维要适应,书上的公式要做适当调整。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式