【问题标题】:Scilab double integralScilab 双积分
【发布时间】:2020-09-17 20:01:56
【问题描述】:

下面是我的程序的代码。我试图找到 1/ln(x) 的积分值,然后计算从 0 到 x 的积分,以此作为被积函数。我不确定自己做错了什么,但我对 Scilab 还是很陌生。

t = input("t");
x=10; while x<t, x=x+10,
function y=f(x), y=(1/(log (x))), endfunction
I=intg(2,x,f);
function z=g(x), z=I, endfunction
W = intg(0,x,z);
W
end

【问题讨论】:

    标签: scilab


    【解决方案1】:

    我不完全确定您要达到的目标,但我重新格式化了您的代码并在文档中添加了一些建议。 也许它会帮助你找到答案。

    While循环

    您可以将while loop 转换为for loop

    您的代码

    x=10; 
    while x<t
       x=x+10
       //some code
    end
    

    可能

    for x=10:10:t
       //some code
    end
    

    功能

    在您的代码中,您在 while 循环的每一次迭代中都重新声明了这两个函数。您可以在 while 循环外声明它们并在循环内调用它们。

    重新格式化

    t = input("Please provide t: ");
    
    // The function of 1/ln(x)
    function y=f(x), y=1/log(x), endfunction
    
    // Every time g(x) is called the current value of I is returned
    function z=g(x), z=I, endfunction
    
    for x=10:10:t
    
        //Find definite integral of function f from 2 to x 
        I = intg(2,x,f);
    
        //Find definite integral of I from 0 to x
        W = intg(0,x,g);
    
        disp( string(W) ); 
    end
    

    【讨论】:

      【解决方案2】:

      我知道这个问题可能已经过时了;但话题仍然活跃。我正在寻找一个双积分的代码。 在这里,使用“intg”来计算由其对角线定义的矩形面积((0,0),(x,I))看起来很奇怪:结果只是x * I ... 最初的目标可能是将“I”视为“x”的函数(但在这种情况下,x=1 处存在收敛问题......);因此将“I”的积分限制在 1 以上会给出以下代码:

      x=10:10:100;W2=integrate('integrate(''1/log(x2)'',''x2'',2,x1)','x1',1.001,x);

      注意积分变量 x1 和 x2 的使用,加上引号的使用...

      【讨论】:

        猜你喜欢
        • 2018-11-12
        • 1970-01-01
        • 1970-01-01
        • 2012-10-04
        • 2015-01-28
        • 2017-08-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多