m0_60812564 2021-08-15 21:37 采纳率: 100%
浏览 217
已结题

关于追赶法的定义问题

%追赶法
UZ_1(68:102,i) = machase_f(a3,b3,c3,d3);
这行代码,显示我未定义machase_f,请问需要怎么改?

我发现,machase_f对应的是machase_f.m的一个脚本,但是我不懂这个脚本里写啥。

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-08-16 10:26
    关注

    追赶法,自己写个代码算了

    function x = chase(a, b, c, d)
    if(numel(a)+1~=numel(b)||numel(b)~=numel(c)+1||numel(b)~=numel(d))
        error('Not valid input, please check length of a,b,c,and d!')
    end
    a = a(:); b = b(:); c = c(:); d = d(:);
    if(abs(b(1))-abs(c(1))<=0 || abs(b(end))-abs(a(end))<=0 || abs(a(end))<=0 || abs(c(1))<=0)
        error('Input not satisfy the Tri condition');
    elseif(numel(b)>=3 && any(abs(b(2:end-1))-abs(a(1:end-1))-abs(c(2:end))<0))
        error('Input not satisfy the Tri condition');
    end
    p = zeros(size(b));
    q = zeros(size(a));
    n = numel(b);
    p(1) = b(1);
    for i = 1:1:n-1
        q(i) = c(i)/p(i);
        p(i+1) = b(i+1) - a(i)*q(i);
    end
    y = zeros(n,1);
    y(1) = d(1)/p(1);
    for i = 2:1:n
        y(i) = (d(i) - a(i-1)*y(i-1))/p(i);
    end
    x = zeros(n,1);
    x(n) = y(n);
    for j = n-1:-1:1
        x(j) = y(j) - q(j)*x(j+1);
    end
    end
    
    

    然后,调用

    clc; clear
    n = 3;
    a = ones(n-1,1);
    b = 4*ones(n,1);
    c = 2*ones(n-1,1);
    d = ones(n,1);
    x = chase(a,b,c,d)
    

    都这么使用的,只要是三对角矩阵,解决都很快速

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月24日
  • 已采纳回答 8月16日
  • 修改了问题 8月15日
  • 创建了问题 8月15日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值