It looks like you're new here. If you want to get involved, click one of these buttons!

- 140.8K All Categories
- 103.6K Programming Languages
- 6.5K Assembler Developer
- 1.9K Basic
- 39.9K C and C++
- 2.9K C#
- 7.9K Delphi and Kylix
- 4 Haskell
- 9.7K Java
- 4.1K Pascal
- 1.3K Perl
- 2K PHP
- 543 Python
- 37 Ruby
- 4.4K VB.NET
- 1.6K VBA
- 20.8K Visual Basic
- 2.6K Game programming
- 315 Console programming
- 90 DirectX Game dev
- 1 Minecraft
- 112 Newbie Game Programmers
- 2 Oculus Rift
- 9K Applications
- 1.8K Computer Graphics
- 739 Computer Hardware
- 3.4K Database & SQL
- 535 Electronics development
- 1.6K Matlab
- 628 Sound & Music
- 257 XML Development
- 3.3K Classifieds
- 198 Co-operative Projects
- 198 For sale
- 190 FreeLance Software City
- 1.9K Jobs Available
- 602 Jobs Wanted
- 208 Wanted
- 2.9K Microsoft .NET
- 1.8K ASP.NET
- 1.1K .NET General
- 3.4K Miscellaneous
- 8 Join the Team
- 354 Comments on this site
- 69 Computer Emulators
- 2.1K General programming
- 187 New programming languages
- 624 Off topic board
- 194 Mobile & Wireless
- 66 Android
- 126 Palm Pilot
- 338 Multimedia
- 154 Demo programming
- 184 MP3 programming
- 0 Bash scripts
- 26 Cloud Computing
- 53 FreeBSD
- 1.7K LINUX programming
- 370 MS-DOS
- 0 Shell scripting
- 321 Windows CE & Pocket PC
- 4.1K Windows programming
- 935 Software Development
- 416 Algorithms
- 68 Object Orientation
- 91 Project Management
- 94 Quality & Testing
- 265 Security
- 7.7K WEB-Development
- 1.8K Active Server Pages
- 61 AJAX
- 3 Bootstrap Themes
- 55 CGI Development
- 28 ColdFusion
- 224 Flash development
- 1.4K HTML & WEB-Design
- 1.4K Internet Development
- 2.2K JavaScript
- 35 JQuery
- 300 WEB Servers
- 148 WEB-Services / SOAP

[B]Regula Falsi method

[/B]

The standard Regula Falsi is a method to find roots of a function in an interval [a, b] similar to the bisection method. Assume that f(a)*f(b) < 0. Regula Falsi determines a new point xm as the intersection of the straight line connecting (a, f (a)) and (b, f (b)) with the x-axis:

xm = (f(a)*b - f(b)*a) / (f(a) - f(b) ) (1)

If f(xm) has the same sign as f(a) then the new lower bound a is xm and b stays the same. (Case a)

If f(xm) has the same sign as f(b) then the new upper bound b is xm while a stays the same. (Case b)

If f(xm) = 0 then xm is a root => stop with a=b=xm

----------------------------------------------------------------------

[COLOR="Navy"][B]The Weighted regula falsi method[/B]

The weighted regula falsi follows the same procedure as the regula falsi method but it modifies the equation (1) for xm slightly:

xm =

( wa*b*f(a) - wb*a*f (b) ) / ( wa*f(a) - wb*f(b) )

where the weights wa and wb are set initially equal to 1. In later stages they are set as the following:

if the previous k>=2 iterations all were of (Case a) then wb = 2^(1-k) and wa = 1

If the previous k>=2 iterations all were of (Case b) then wa = 2^(1-k) and wb = 1

otherwise wa = wb = 1[/COLOR]

----------------------------------------------------------------

[COLOR="Navy"][B]Question:[/B]

(a)

Write a function WeightRF that finds the root of a function f using the above weighted regula falsi method. The first line of the file WeightRF.m should look like:

function [a,b]=WeightRF(f,aini,bini,maxit,tol)

The meaning of the inputs has to be:

f: a function of a single variable that you can call inside WeightRF. The procedure is supposed to find a root of f;

aini: initial lower bound for the root of f;

bini: intial upper bound for the root of f; the root of f is to be found between aini and bini;

maxit (positive integer): the iteration should stop as soon as the number of iterations exceeds maxit

tol (small positive real number): tolerance; the iteration should stop if the difference between the current bounds is less than tol.

The meaning of the outputs has to be:

a: a column vector of all lower bounds generated by the iteration;

b: a column vector of all upper bounds generated by the iteration.

This means that the return values a and b are vectors with at most maxit elements, a(1) should be aini, and b(1) should be bini. If the iteration stops after i<maxit iterations are reached then a and b should contain i elements.[/COLOR]

----------------------------------------------------------------------

Well, I don't even really know how to do simple loops yet, this unit has gone far too fast and we have been expected to do too much too soon I also don't really understand the concept of the weighted regula falsi method much, so any help would be appreciated

Terms of use / Privacy statement / Publisher: Lars Hagelin

Programmers Heaven articles / Programmers Heaven files / Programmers Heaven uploaded content / Programmers Heaven C Sharp ebook / Operated by CommunityHeaven

© 1997-2015 Programmersheaven.com - All rights reserved.

## Comments

2bump