hi I am trying to calculate the 4th root of the function f(x)=3x4+7x3−4x2−10x+15 using newtons method and a for - loop
2 次查看(过去 30 天)
显示 更早的评论
% EMTH171
% script using newtons method
clear
clc
close all
% function
f = @(x) 3*x.^4 + 7*x.^3 - 4*x.^2 - 10*x + 1/5;
% derivative
d = @(x) 12*x.^3 + 21*x.^2 - 8*x - 10;
% test value
x = -0.5;
N = 100;
for ii =1 : N
x = x - f(x)/d(x);
end
z = nArray(4,1);
disp(z);
3 个评论
David Hill
2020-8-30
编辑:David Hill
2020-8-30
If you graph it, you can see where the 4 roots are approximately.
f = @(x) 3*x.^4 + 7*x.^3 - 4*x.^2 - 10*x + 1/5;
x=-2.4:.001:1.3;
plot(x,f(x));
grid on;
David Hill
2020-8-30
I think you just need to pick your test value closer to the root you are trying to find.
回答(1 个)
Rafael Hernandez-Walls
2020-8-30
clear
clc
close all
% function
f = @(x) 3*x.^4 + 7*x.^3 - 4*x.^2 - 10*x + 1/5;
% derivative
df = @(x) 12*x.^3 + 21*x.^2 - 8*x - 10;
%first graphic
x=-2.4:.001:1.3;
plot(x,f(x));
grid on;
% test value; click with mouse near x=1
[x y]=ginput(1);
%iterations newton method
N = 100;
for ii =1 : N
x = x - f(x)/df(x);
end
disp('Solution:')
x
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!