How can I solve this ?

2 次查看(过去 30 天)
Mohammad Al Kotob
Mohammad Al Kotob 2021-5-19
1. Create a function “secant method” that returns a variable “results”. These should later contain a vector of results from the iterations.
2. The method should transfer an x_0, x_1 value, the function and the number of iterations to get.
3. Initialize the vector with ones in the dimension 1 x (number of iterations +2).
4. Assign the x_0 and x_1 values to the first two digits of the vector.
5. Iterate over the result vector in a loop.
6. Now calculate the x_n value in each loop pass according to the Secant formula: x_n + 1 = x_n - (x_n - x_n_1) / (f (x_n) - f (x_n-1)) * f (x_n)
7.After the calculation, reassign the variables for the next run (keyword: x_n-1, x_n).
8. Add the current result to the result vector.
9. Call the newly created function with an anonymous function f = x ^ 2-2, 4 iterations and the starting values 1 and 2 (see lecture, exercise) and check the results.
10. Make sure that no errors or unnecessary output are displayed.
  2 个评论
David Hill
David Hill 2021-5-19
What have you done? Show us your code and ask a specific question.
Mohammad Al Kotob
Mohammad Al Kotob 2021-5-20
Hello , thats what i've done :
function [result]= secant method (x_0,x_1,f,k)
result = ones(1,(k+2));
result(1)= x_0; result(2)= x_1;
x_n=x_0;
x_n_1=x_1;
for k=1: length(result)
x_n1=x_n-(x_n-x_n_1)/(f(x_n)-f(x_n_1))*f(x_n);
x_n_1=x_n;
x_n=x_n1;
result(k)=x_n;
end
end

请先登录,再进行评论。

回答(1 个)

Nagasai Bharat
Nagasai Bharat 2021-5-27
Hi,
Initially the function would show an error due to it's name(no space to be present between words). Correct way would be to use "secant_method".
The following documention would help you understaning the correct format while using function.

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by