Asked by hgrlk
on 16 Apr 2019

Hello, when I run my code, i get error.

I can not see my fault. There is something wrong about i^2=-1 But I must use that expression.

Thank you.

clc

clear all

close all

fprintf('%10s %10s %10s %10s\n','k','real(xk)','imag(xk)','|f(xk)|')

k = 0 ;

i^2 = -1 ;

x = -2-2i;

f = @(x) x^3 - x - 3 ;

while abs(f(x)) > 10^(-5)

f = @(x) x^3 - x - 3 ;

diff = @(x) 3*(x^2) - 1 ;

xreal = real(x);

ximag = imag(x);

xnew = x - (f(x) / diff(x));

fprintf('%10.4f %10.4f %10.4f %10.4f\n',k,xreal,ximag,f(x))

x = xnew;

k = k +1;

end

Answer by Steven Lord
on 16 Apr 2019

Accepted Answer

Answer by Kelly Kearney
on 16 Apr 2019

As others have pointed out, i is already assigned the value you want by default.

But assuming it weren't, the proper way to assign the value would be:

i = sqrt(-1);

The error is basically telling you that Matlab won't implictly do any algebra for you... you can only assign a value to a variable, not to a function or equation like you attempted to do.

Opportunities for recent engineering grads.

Apply Today
## 2 Comments

## A. Sawas (view profile)

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/456790-i-got-the-expression-to-the-left-of-the-equals-sign-is-not-a-valid-target-for-an-assignment#comment_694890

## hgrlk (view profile)

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/456790-i-got-the-expression-to-the-left-of-the-equals-sign-is-not-a-valid-target-for-an-assignment#comment_695211

Sign in to comment.