How to Create a Bisection Method Program for Arbitrary Functions?

Click For Summary

Homework Help Overview

The discussion revolves around the implementation of the bisection method in programming, specifically for numerical calculations. The original poster seeks assistance in creating a program that can handle arbitrary functions using this method.

Discussion Character

  • Exploratory, Problem interpretation, Assumption checking

Approaches and Questions Raised

  • Participants inquire about the original poster's familiarity with programming languages and the bisection method. They suggest clarifying specific areas of difficulty and encourage showing existing efforts.
  • The original poster shares a basic C++ code implementation and expresses a desire to enhance it by allowing for user-defined functions.
  • Some participants discuss the challenges of parsing arbitrary functions and suggest focusing on specific types of functions, like polynomials.

Discussion Status

The conversation is ongoing, with participants providing guidance on coding practices and encouraging the original poster to refine their approach. There is no explicit consensus on the best way to allow for arbitrary function input, indicating a range of interpretations and ideas being explored.

Contextual Notes

The original poster has a deadline for their assignment and has expressed difficulty in completing the task. There is a mention of the need for the program to meet specific criteria related to the bisection method.

rantz
Messages
4
Reaction score
0
help me please "numerical method"

please help me finish college assignment, I was given the task of creating programs numerical calculation method, the bisection method, the program c + + or Visual Basic, or any program language. last collection time Friday, 23 April 2010. please help me. please. help
 
Physics news on Phys.org


You will have to show your effort so far, and be more specific about what precisely you need help with before we can help you.
 


NeoDevin said:
You will have to show your effort so far, and be more specific about what precisely you need help with before we can help you.

I absolutely can not do it
 


Which programming languages are you already familiar with?
What do you know about the bisection method?

Where precisely is your effort failing?
 


NeoDevin said:
Which programming languages are you already familiar with?
What do you know about the bisection method?

Where precisely is your effort failing?

==> With c + +,
==> The method is applicable Pls We wish to solve the equation for the scalar variable x, Nowhere f is a continuous function.
The bisection method requires two initial points a and b and Standard and Poor That f (a) and f (b) have Opposite Signs. This Is Called a bracket of a root, for by the intermediate value theorem the continuous function f must have at least one root in the interval (a, b). The method now divides the interval in two by computing the midpoint c = (a + b) / 2 of the interval. Unless c is a root Itself - Which is very Unlikely, but possible - there are now two possibilities: either f (a) and f (c) have Opposite Signs and bracket a root, or f (c) and f (b ) Opposite Signs and brackets have a root. We select the subinterval That is a bracket, and Apply The Same bisection step to it. In this way the interval That Might contain a zero of f is reduced in width by 50% at Each step. We continue Until We have a bracket sufficiently small for our purposes.

I have some source code with c + + programming language ..
Can you help me?
 


You should be able to write a while loop that runs until you reach your target accuracy/bracket size, using if statements to check your conditions.

Write some code, test it on some function, and if it doesn't work, post it here. I, or someone else here, will look it over and offer suggestions.
 


NeoDevin said:
You should be able to write a while loop that runs until you reach your target accuracy/bracket size, using if statements to check your conditions.

Write some code, test it on some function, and if it doesn't work, post it here. I, or someone else here, will look it over and offer suggestions.

this is my source code

# Include <stdio.h>
# Include <math.h>
float f (float x)
(
return x + cos (x);
)

main ()
(
float a, b, c, T, error, e, iteration, the root;
int i;
char answer;
do
(
answer = 'y';
i = 1;
printf ("======================================== \ n");
printf ("Program Not Linear Equations Bisection \ n");
printf ("Version 1.0 =- -= \ n");
printf ("======================================== \ n");
printf ("Equation Function F (x) = x + cos (x) \ n");
printf ("Enter the initial guess of a ="); scanf ("% f", & a);
printf ("Input initial guesses b ="); scanf ("% f", & b);

printf ("f (a) =% f \ n", f (a));
printf ("f (b) =% f \ n", f (b));
if (f (a) * f (b) <0)
(
printf ("Enter the value of epsilon ="); scanf ("% f", & error);
printf ("iteration count -"); scanf ("% f", & iterations);
for (i = 1; i <= iterations; i + +)
(
e = abs, (b-a);
c = (a + b) / 2;
T = c + cos (c);
if (f (a) * T <0)
(
b = c;
)
else
(
a = c;
)
if (e <= error)
(
root = c;
)
)
printf ("The root of the equation x =% f \ n", c);
)
else
(
printf ("sorry calculation process is not subject to the terms \ n");
)
printf ("Do you want to repeat the y / t ="); scanf ("% s", & answer);
) While (answer == "y");
return 0;
)

I feel this is a very simple program, and all I want is a more complex program, like I could enter the function manually. My example program using the functions return x + cos (x);
My question how can I be able to enter the function as input.

It used to be, there are still many who need me ask again later.

thanks before
 


Making the program be able to understand an arbitrary input function is not easy, as it has to be able to parse all the different functions and notations.

If you wanted to focus on specific types of functions (polynomials, for example), then you could ask the user to input the coefficients of each term (power of x).
 

Similar threads

Replies
7
Views
3K
Replies
4
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 13 ·
Replies
13
Views
4K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 15 ·
Replies
15
Views
3K