1

私は工学部の学生で、計算法クラスを受講する必要があります。MATLAB の課題に取り組んでいましたが、トラブルシューティングできない問題に遭遇したようです。私は MATLAB の初心者なので、解決策は単純に見えるかもしれません。

問題は、10 進数を関数にプラグインしようとすると、コマンド ウィンドウに「y(17.5) にアクセスしようとしました。インデックスは正の整数または論理値でなければなりません」というエラーが表示されることです。問題が 17.5 であることは理解していますが、整数以外の値を取得できるようにする必要があります。そうしないと、二分法が機能しません。

プログラムのコードは次のとおりです。

clc
clear
x=-25:.5:25;
y=-x.^2+4*x+300;
plot(x,y);
grid on;
hold on
disp('Look at the graph, and select the upper and lower bounds to find the POSITIVE root.')
x_min=input('The lower bound is: ');
x_max=input('The upper bound is: ');
E_a=1;
while E_a >= 0.01
    x_mid=((x_min + x_max)/2)
    if (y(x_mid))*(y(x_max)) < 0
        x_max = x_mid
    end
end

私の x_min には 15 を使用し、x_max には 20 を使用しました

お手伝いありがとう!

4

0 に答える 0