Scilab执行A=(f(a)+f(b))/2时出现Undefined operation报错
Scilab代码错误修复方案
错误根源
触发Undefined operation for the given operands错误的核心原因是函数语法不规范,同时存在变量大小写不一致问题:
exp^-x:exp是Scilab指数函数,必须以exp(参数)形式调用,不能用^运算符直接连接cos*(1.5*x):cos是余弦函数,调用时需将参数直接放入括号,多余的*会导致语法错误- 循环中
N-1:变量定义为小写n=10,Scilab区分大小写,此处大小写不匹配
修复后的完整代码
function fx=f(x); fx=4.*x.^2 + 3*exp(-x) - 4*cos(1.5*x); endfunction; a=0; b=2; n=10; //sub interval dx=(b-a)/n; A=(f(a)+f(b))/2; for k=1:(n-1) A=A+f(a+k*dx); end; I=A*dx
关键修复说明
- 将
exp^-x改为exp(-x),正确调用指数函数 - 删除
cos与参数间的*,改为cos(1.5*x),符合三角函数调用语法 - 把循环条件
N-1改为n-1,保证变量名称一致 - 将
x^2.调整为x.^2,使用元素级幂运算,让函数支持数组输入(若后续有需求),同时移除多余小数点
内容的提问来源于stack exchange,提问作者GooonerGoochcodes
相关产品推荐
相关产品推荐

