RSS Forums RSS

Beginner help for visual basic

Please support our Visual Basic 4 / 5 / 6 advertiser: Programming Forums
Reply
Posts: 5
Reputation: helloan is an unknown quantity at this point 
Solved Threads: 0
helloan helloan is offline Offline
Newbie Poster

Beginner help for visual basic

  #1  
Nov 21st, 2008
Hi I'm completely new to using VB in excel, but could someone help me fix my program. I'm supposed to find the roots of the equation denoted as func using the newton raphson method. Currently I am not getting the correct roots and the range of values which can be input are very limited. Could someone help on how to fix this? Thanks!
Option Explicit
Function newton(guess)

Dim func As Double, deriv As Double, i As Double, x2 As Double, x As Double, dif As Double

x = guess

For i = 0 To 1000
    func = x ^ 2 * Sin(x) + x ^ 3 * Exp(x) - x * Cos(x) - 7
    deriv = (x ^ 2 - 1) * Cos(x) + 3 * x * Sin(x) + (x ^ 3 + 3 * x ^ 2) * Exp(x)
    x2 = (x - func) / deriv
    dif = x2 - x
    x = x2
    If Abs(dif) < 0.001 Then i = 1000
Next i

newton = x
    
End Function
AddThis Social Bookmark Button
Reply With Quote  
Posts: 1,858
Reputation: debasisdas is on a distinguished road 
Solved Threads: 113
debasisdas's Avatar
debasisdas debasisdas is offline Offline
Posting Virtuoso

Re: Beginner help for visual basic

  #2  
Nov 21st, 2008
what is the use of the for loop ?
Share your Knowledge.
Reply With Quote  
Posts: 13
Reputation: BigSeckC is an unknown quantity at this point 
Solved Threads: 0
BigSeckC's Avatar
BigSeckC BigSeckC is offline Offline
Newbie Poster

Re: Beginner help for visual basic

  #3  
Nov 21st, 2008
Originally Posted by debasisdas View Post
what is the use of the for loop ?



That's old school Basic. For i = 0 to 1000 is telling the proggie to start counting at 0 and stop at 1000. The func... statement has the proggie calculating each number it sees. Next i is telling the proggie move forward to the next number in the sequence....

(i.e., Start counting at 0, perform calculations, move on to next number (1,2,3,4,5...1000) )

Since 'for' is 0 to 1000 - it automatically stops at 1000.

...at least that's what it used to mean on the 'Trash 80's' (Radio Shack TRS-80 Microcomputer - w/ or w/o monitor)

...yea... i know... I just dated mahsef...

I am who I am...I do what I do
Reply With Quote  
Posts: 13
Reputation: BigSeckC is an unknown quantity at this point 
Solved Threads: 0
BigSeckC's Avatar
BigSeckC BigSeckC is offline Offline
Newbie Poster

Re: Beginner help for visual basic

  #4  
Nov 21st, 2008
Originally Posted by helloan View Post
Hi I'm completely new to using VB in excel, but could someone help me fix my program. I'm supposed to find the roots of the equation denoted as func using the newton raphson method. Currently I am not getting the correct roots and the range of values which can be input are very limited. Could someone help on how to fix this? Thanks!
Option Explicit
Function newton(guess)

Dim func As Double, deriv As Double, i As Double, x2 As Double, x As Double, dif As Double

x = guess

For i = 0 To 1000
    func = x ^ 2 * Sin(x) + x ^ 3 * Exp(x) - x * Cos(x) - 7
    deriv = (x ^ 2 - 1) * Cos(x) + 3 * x * Sin(x) + (x ^ 3 + 3 * x ^ 2) * Exp(x)
    x2 = (x - func) / deriv
    dif = x2 - x
    x = x2
    If Abs(dif) < 0.001 Then i = 1000
Next i

newton = x
    
End Function



I'm new too - so if I'm wrong, i apologize now...

First off, are you using VBA? (Visual Basic for Applications) - I've read that there are some inherent differences between it and 'regular' VB...

That being said, and here's where my math fails me, when calculating Sin and Cos - is it written as Sin(#) / Cos(#)?

Standard math says that x(y) = multiplication - so, are the numbers being multiplied by accident?

*scratches head*

If I'm not mistaken, you'd have to specify PI in a program (pi=3.14) - so would the same hold true for Sin & Cos...prior to your calculations?
I am who I am...I do what I do
Reply With Quote  
Posts: 19
Reputation: arghasen is an unknown quantity at this point 
Solved Threads: 3
arghasen arghasen is offline Offline
Newbie Poster

Re: Beginner help for visual basic

  #5  
Nov 22nd, 2008
ur logic is wrong..............i cant say bout the code ,but newton ralphson method............u ar using has the wrong logic..

x2=x-(func/deriv)
this is the actual logic of newton ralphson method.
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.



Similar Threads
Other Threads in the Visual Basic 4 / 5 / 6 Forum
Views: 721 | Replies: 4 | Currently Viewing: 1 (0 members and 1 guests)

 

Thread Tools Display Modes
Forums | Blogs | Tutorials | Code Snippets | Whitepapers | RSS Feeds | Advertising
All times are GMT -4. The time now is 2:21 pm.
Newsletter Archive - Sitemap - Privacy Statement - Acceptable Use Policy - Contact Us
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC