关键词 > Math451
CMPSC/Mathematics 451
发布时间:2021-10-14
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
CMPSC/Mathematics 451
MATLAB Assignment Two
Fall 2021
You are to write a MATLAB function to find the cube root of a complex number.
In general, a complex number
is represented as
where
and
are real numbers and i is the imaginary unit. In MATLAB (or Octave), you can compose
out of
and
from the statement
and recover
and
from
using
Given the complex number
we are looking for a root of
where
is described in (1). You are to use this function to compute the cube root of a using Newton’s method for two variables.
To do that, we represent the complex numbers
and a as vectors with two real components. That is the vectors
represent
in (1) and
.
Then we write f(
) as a function of the two real numbers
and
parameterized by the two real numbers a1 and a2. Equation (2) my be written
where
and
are real valued functions. For f(z) to be zero, both g1(
,
) and g2(
,
) must be zero since the real and imaginary parts separate. If we let
then
is equivalent to (2).
The first thing you need to do in this assignment is to identify g1(
,
; a) and g2(
,
; a) to create the function Gcubrt(
, a) and implement it in MATLAB. You then need to compute the Jacobian
and create the matrix valued function Jcubrt(
) in MATLAB.
Using these two functions, create a MATLAB function with the first three lines are
function [z, niter] = ComCubrt(a)
avec=[real(a); imag(a)]; % Represent the complex number a as the vector avec zvec=avec; % Just make a the initial guess for its cube root
Here a is a complex number and z is one of its cube roots. The parameter niter is the number of iterations required. ComCubrt(a) finds
from a using Newton’s method for two variables.
The last line of ComCubrt should be
so that you can return a complex number
as your answer.
Your iteration will produce a sequence of 2-vectors
which terminates when
or
where
and
is the value from the MATLAB eps command. For debugging reasons, do no more than 25 iterations. Of course, do not keep all of the iterates
, just keep the two most recent ones so that you implement the termination criteria.
Use your routine to find the cube roots of a = 3 + 4i, 10 − 5i, −1 + 2i.
