[已答复] matlab 切比雪夫级数程序问题

[复制链接]
daydayup12138 发表于 2021-10-18 14:06:26
% 切比雪夫级数
function x = ChebyshevSeries(f,n,left,right)
format long;
D = zeros(n+1,1);
A=@(x) (x).^0;
B=@(x) (x).^1;
C=@(x) 2 .*x.*B(x)-A(x);
for p=1:n+1
    fun = @(x) C(x) .* f(x) ./sqrt(1+x .^2);
    D(p,1)=integral(fun,left,right); % 计算切比雪夫级数
    A=B;
    B=C;
    C=@(x) 2 .*(x) .* B-A;
end
x=D;
end

麻烦大神看一下这个程序应该怎么修改

未定义与 'function_handle' 类型的输入参数相对应的运算符 '.*'。

出错 ChebyshevSeries>@(x)2.*(x).*B-A (line 13)
    C=@(x) 2 .*(x) .* B-A;

出错 ChebyshevSeries>@(x)C(x).*f(x)./sqrt(1+x.^2) (line 9)
    fun = @(x) C(x) .* f(x) ./sqrt(1+x .^2);

出错 integralCalc/iterateScalarValued (line 314)
                fx = FUN(t);

出错 integralCalc/vadapt (line 132)
            [q,errbnd] = iterateScalarValued(u,tinterval,pathlen);

出错 integralCalc (line 75)
        [q,errbnd] = vadapt(@AtoBInvTransform,interval);

出错 integral (line 88)
Q = integralCalc(fun,a,b,opstruct);

出错 ChebyshevSeries (line 10)
    D(p,1)=integral(fun,left,right); % 计算左端系数矩阵的每一项积分

出错 Homework4 (line 6)
four1 = ChebyshevSeries(g,4,-1,1); % 获取cosx的4阶chebyshev级数

>> ChebyshevSeries
输入参数的数目不足。

出错 ChebyshevSeries (line 4)
D = zeros(n+1,1);

>>

6 条回复


TouAkira 发表于 2021-10-18 15:01:44
要改就全改啊,你就没检查出来下面这俩地方写的不一样吗?
C=@(x) 2 .*x.*B(x)-A(x);
for p=1:n+1
    C=@(x) 2 .*(x) .* B-A;
end
系鞋带时只系好左脚、对右脚完全不管,就上场踢球,能行吗?

daydayup12138 发表于 2021-10-18 15:17:39
请问下面那种写法错在哪里,可以说一下原因吗

daydayup12138 发表于 2021-10-18 15:19:16
TouAkira 发表于 2021-10-18 15:01
要改就全改啊,你就没检查出来下面这俩地方写的不一样吗?
C=@(x) 2 .*x.*B(x)-A(x);
for p=1:n+1

请问下面那种写法错在哪里,可以说一下原因吗

20141303 发表于 2021-10-18 15:49:56
仅供参考,倒数第四行改为
  1. C=@(x) 2 .*(x) .* B(x) -A(x) ;
复制代码
试试

daydayup12138 发表于 2021-11-1 19:32:57
20141303 发表于 2021-10-18 15:49
仅供参考,倒数第四行改为
试试

后面自己也发现了,可以问一下什么情况下需要用到@(x)这种形式呢

20141303 发表于 2021-11-1 19:41:15
仅供参考,需要函数句柄的时候吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表