function [x,numIter,omega] = MidtermExam(func,x,maxIter,epsilon) % Solves Ax = b by Gauss-Seidel method with relaxation. % USAGE: [x,numIter,omega] = gaussSeidel(func,x,maxIter,epsilon) % INPUT: % func = handle of function that returns improved x using % the iterative formulas in Eq. (2.35). % x = starting solution vector % maxIter = allowable number of iterations (default is 500) % epsilon = error tolerance (default is 1.0e-9) % OUTPUT: % x = solution vector % numIter = number of iterations carried out % omega = computed relaxation factor if nargin < 4; epsilon = 1.0e-9; end if nargin < 3; maxIter = 500; end k = 10; p = 1; omega = 1; for numIter = 1:maxIter xOld = x; x = feval(func,x,omega); dx = sqrt(dot(x - xOld,x - xOld)); if dx < epsilon; return; end if numIter == k; dx1 = dx; end if numIter == k + p omega = 2/(1 + sqrt(1 - (dx/dx1)^(1/p))); end end error('Too many iterations')

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

CAN YOU PROVIDE ME THE OUTPUT FOR THIS. 
(MATLAB)

 

function [x,numIter,omega] = MidtermExam(func,x,maxIter,epsilon)

% Solves Ax = b by Gauss-Seidel method with relaxation.

% USAGE: [x,numIter,omega] = gaussSeidel(func,x,maxIter,epsilon)

% INPUT:

% func = handle of function that returns improved x using

% the iterative formulas in Eq. (2.35).

% x = starting solution vector

% maxIter = allowable number of iterations (default is 500)

% epsilon = error tolerance (default is 1.0e-9)

% OUTPUT:

% x = solution vector

% numIter = number of iterations carried out

% omega = computed relaxation factor

if nargin < 4; epsilon = 1.0e-9; end

if nargin < 3; maxIter = 500; end

k = 10; p = 1; omega = 1;

for numIter = 1:maxIter

xOld = x;

x = feval(func,x,omega);

dx = sqrt(dot(x - xOld,x - xOld));

if dx < epsilon; return; end

if numIter == k; dx1 = dx; end

if numIter == k + p

omega = 2/(1 + sqrt(1 - (dx/dx1)^(1/p)));

end

end

error('Too many iterations')



Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 2 images

Blurred answer
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education