Matlab中的迭代

问题描述 投票:0回答:1

我想使用Matlab解决化学工程中的一些迭代问题。所以我要解决的问题是计算串联绝热反应器的相互转换,这是给出的算法:

  1. Algorthm in reactor 1

Algorithm in reactor 1

  1. Algotirhm in reactor 2

Algorithm in reactor 2

我已经在VBA Excel中解决了,代码是:

Public Function intrap(h, y)
n = y.Count
If n Mod 2 > 0 Then
    MsgBox ("JUMLAH DATA HARUS GENAP")
    intrap = "ERROR:JUMLAH DATA HARUS GENAP"
Exit Function
End If

For i = 1 To n
s1 = s1 + y(i)
Next i

For i = 2 To (n - 1)
s2 = s2 + y(i)
Next i

intrap = (h / 2) * (y(1) + (2 * s2) + y(n))
End Function

并且输出是Output

所以,如何在matlab中做到这一点?

matlab iteration differential-equations equation-solving
1个回答
0
投票

应该是这样的:

function intrap(h, y)
    n = length(y);
    if n % 2 > 0
        disp("JUMLAH DATA HARUS GENAP")
        intrap = "ERROR:JUMLAH DATA HARUS GENAP"
        return
    end

    for i = 1:n
        s1 = s1 + y(i)
    end

    for i = 2:(n - 1)
        s2 = s2 + y(i)
    end

    intrap = (h / 2) * (y(1) + (2 * s2) + y(n))
end

Id建议您做一些教程。您会发现Matlab非常简单,易于编程。

纯粹

© www.soinside.com 2019 - 2024. All rights reserved.