Items tagged with numerical-analysis

Hello!

I was creating this code for the "Müller Method" for Numerical Analysis. Everything works fine till the if (for getting the x3) goes on. The problem is, the Maple doesn't detects the if.
I tried checking every variable and every variable is calculated except "x3"; even "disc".

I would like to know what happened. Anyways, here's the code:
http://imgur.com/a/DGlgl
 

                     
x0 := 0; x1 := 8.4; x2 := 10; iter := 1000; tol := 10^(-8); f := proc (x) options operator, arrow; 3*x^3+7*x^2+x+2 end proc; f(x); plot(f(x), color = green); printf(" n          x0               x1               x2              x3                Error \n"); for i to iter do d0 := evalf((f(x1)-f(x0))/(x1-x0)); d1 := evalf((f(x2)-f(x1))/(x2-x1)); h1 := evalf(x2-x1); h0 := evalf(x1-x0); a := evalf((d1-d0)/(h1-h0)); b := evalf(a*h1+d1); c := evalf(f(x2)); disc := sqrt(-4*a*c+b^2); if abs(b+disc) > abs(b-disc) then x3 := x2+(-2*c)*(1/(b+sqrt(-4*a*c+b^2))); erry := abs((x3-x2)/x3) else x3 := x2+(-2*c)*(1/(b-sqrt(-4*a*c+b^2))); erry := abs((x3-x2)/x3) end if; if erry > tol then x0 := x1; x1 := x2; x2 := x3; printf("%2d     %2.8f      %2.8f       %2.8f         %2.5 f     %2.8 f \n", i, a, b, c, x3, erry) else printf("una raiz es: %2.8f ", x3); break end if end do;

I put the image (as it looks on my maple) and the "code" so you can copy-paste it in Maple.

I try to solve numerically a boundary VP for ODE with different order of discontinuity of right part.

Say, the following BVP is given:

y''(x)+y'(x)+y(x)=F(x)

y(0)=1, y(2)=1

Let's use piecewise right part

F  := piecewise(x<=1, -x, x>1, 2*x+(x-1)^2)

plot(piecewise(x<=1, -x, x>1, 2*x+(x-1)^2), x=0..2,thickness=5)

The function

piecewise(x<=1, 1-x, x>1, (x-1)^2)

plot(piecewise(x<=1, 1-x, x>1, (x-1)^2), x=0..2, color=blue,thickness=5)

as obviuos, satisfies the BVP exclung the point x=1, where its 1st and 2nd derivatives are discontinuos.

Numerical solution

N0:=6:
As:=dsolve([diff(y(x), x$2)+diff(y(x), x)+y(x)=F,  y(0)=1, y(2)=1], y(x), type=numeric, output = Array([seq(2.0*k/N0, k=0..N0)]), 'maxmesh'=500, 'abserr'=1e-3):

provides the solution essentially different to exact one described above:

But if to use the right part

F := piecewise(x<=1, x^2+x+2, x>1, -x^2+x)

plot(piecewise(x<=1, x^2+x+2, x>1, -x^2+x), x=0..2, color=blue,thickness=5)

for which the function

piecewise(x<=1, 1-x+x^2, x>1, -1+3*x-x^2)

plot(piecewise(x<=1, 1-x+x^2, x>1, -1+3*x-x^2), x=0..2, thickness=5)

satisfies the BVP excluding x=1, where this function has discontinuity of 2nd derivative only, the corresponding numerical solution is very similar to this exact solution:

This reason of the difference between these two cases is clear. In the first case both 1st and 2nd derivatives are discontiuos, while in the second one -- 1st derivative is contiuos.

I wonder, if there are numerical methods, implemeted in Maple, for numerical solution of the first type BVP with non-smooth right part?

hi,

how we can use maple to find solution of singuler integral equation by using product nystrom method or toeplitz method in maple?

Dear All

In student numerical package, for in case of Secant method, how can we force Maple to print procedure and result of every iteration like we do in calculations by hand??

It gives direct output like:

 

with(Student[NumericalAnalysis]):

f := x^3-7*x^2+14*x-6

x^3-7*x^2+14*x-6

(1)

Secant(f, x = [2.7, 3.2], tolerance = 10^(-2))

3.005775850

(2)

Secant(f, x = [2.7, 3.2], tolerance = 10^(-2), output = sequence)

2.7, 3.2, 3.100884956, 2.858406793, 3.026267866, 3.005775850

(3)

What is we want print actual procedure that carry out calculations in step (3) ?

*What if, **want to

Download Secant_Method.mw

Regards

I have a system of equations in several variables and I just need one numerical solution of it, I tryed to use fsolve of Maple but it always show me some errors or gives back the command as the output.

aaghulu := {-6-4*y-x-(1+y)*x+sqrt((4*(1+y))*(2+x)*(4+2*y+x)+(-(1+y)*x+2+x)^2), (2*(4+2*y+x))*(1+y)-(1+y)*x+2+x+sqrt((4*(1+y))*(2+x)*(4+2*y+x)+(-(1+y)*x+2+x)^2)-(2+y)*(-(1+y)*x+2+x+sqrt((4*(1+y))*(2+x)*(4+2*y+x)+(-(1+y)*x+2+x)^2))};

fsolve(aaghulu, {x, y}, maxsols = 1);

 

I will be happy if someone guide me how to do these kinds of things using Maple.

f:=proc(x)
return 2^x
n:=5
M:=-2,-1,0,1,2
P:=1
for k to n+1 do
L:=1
for i to n+1 do
if i<>k then
L:=L*(x-M[i])/(M[k]-M[i]); end if; end do;
P:=P+f(M[k])*L;
end do;
I write Lagran algorithm. sorry, my english is not very good


 \int_{a}^{b} f(x) \, dx \approx \tfrac{3h}{8}\left[f(x_0) + 3f(x_1) + 3f(x_2) 
+ 2f(x_3) + 3f(x_4) + 3f(x_5) + 2f(x_6) + ... + f(x_n)\right] .


A Fantastic Good morning Ladies and Gentelmen,

You have the mission to find the problem in that code/ give a better code?
I want to write a procedure for the simpson 3/8 rule using the above formula I took from wikipedia :
(I don't want to use any super maple command that estimate the simpson 3/8, but just using this formula and starting from scratch, I am a beginner so feel free to laugh at my code hehehe)
here is the code I managed to write after 365 hours :D

restart:
simp38:=proc(f,x0,xn,n)                 
     local h,summ,i,x,Integral:                                              
     h=evalf((xn-x0)/n);               #h is the distance between 2 points
     summ:=f(x0)+f(xn);              #initialise the summ
    
      for i from 1 to n-1 by 3 do             
          x[i]:=x0+i*h:
          summ:=evalf(summ+3*f(x[i])):
      od:
      for i from 2 to n-1 by 3 do              
          x[i]:=x0+i*h:
          summ:=evalf(summ+3*f(x[i])):
      od:
      for i from 3 to n-1 by 3 do                  
          x[i]:=x0+i*h:
          summ:=evalf(summ+2*f(x[i])):  
      od:
    
      Integral:=3*h/8*summ;                  
 end:

simp38(x->(x^5-5.15*x^2+8.55*x-4.05045),1,5,6);   #testing it      --->2481.087090
evalf(int(x^5-5.15*x^2+8.55*x-4.05045,x=1..5));      #comparing it --->2477.531533


Your help will be apreciated.


Hello,
I am looking here for a tutor, that can help me doing some Maple V (5) programming.
I am a mathematic student and we use Maple programming.
I will be happy to pay a small amount of money for each exercice you help me doing,

if anyone is interested, please contact me here.

(The procedures that we usually have to write are for example:
 Newton-Raphson Method, Chebyshev Polynomial,...  I don't think it is hard for you.
Thank you very time for your time and your help.

I would like to use Newton's Method (the multivariate one) in order to solve a system of equations. From what I understand, fsolve is essentially MAPLE's version of the multivariate Newton's Method. Is there a way to do the multivariate Newton's method any other way, other than fsolve? Also, is there a way to specify our own initial guess and tolerance for the Newton's Method and to get other details such as the number of iterations?

to compute a maple program using the paper posted in the reply 

I am trying to numerically double integrate x^2+sqrt(y), with the bounds y=0..x and x=1..1.5.

Then I tried the following code:

 

int(int(x^2+sqrt(y),method=trapezoid,y=0..x),method=trapezoid,x=1..1.5);

 

I know how to write the code if instead of a 'x' in my upper limit for my integral, I had a real number, but I'm not sure how to remedy to code in order make it work. Any help would be appreciated. Thanks!

 

I need to show what happens to the zero r=20 of f(x)= (x-1)(x-2)..(x-20)-(1/10^8)*(x^19) and the hint given is that the secant method in double precision gives an approximate in [20,21].

At present, I'm calling the secant method on f with a tolerance of 1/(10^12) with an initial x=20, but I'm stuck as to what the second initial value would be. What is the right approach to this question?

 

I have a coefficient matrix A and the constant matrix b.

I want to find the unknowns x_1,x_2,...,x_8. When I put my code and run it in Maple I get an error. Any ideas as to why this is happening? The code I tried is as follows:

 

 

with(Student[NumericalAnalysis]):

A := Matrix([[-1, 0, 0, (1/2)*sqrt(2), 1, 0, 0, 0], [0, -1, 0, (1/2)*sqrt(2), 0, 0, 0, 0], [0, 0, -1, 0, 0, 0, 1/2, 0], [0, 0, 0, -(1/2)*sqrt(2), 0, -1, -1/2, 0], [0, 0, 0, 0, -1, 0, 0, 1], [0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, -(1/2)*sqrt(2), 0, 0, (1/2)*sqrt(3), 0], [0, 0, 0, 0, 0, 0, -(1/2)*sqrt(3), -1]]);

b := Vector([0, 0, 0, 0, 0, 10000, 0, 0]);

LinearSolve(A, b, maxiterations = 300, method = SOR(1.25), tolerance = 10^(-2));

 

I also tried it with a SOR variable of 1.5 instead of 1.25, but that gives me the same error.

i am solving 3 ODE question with boundary condition. when i running the programm i got this error.. any one could help me please.. :)

NULL

restart; with(plots); k := .1; E := 1.0; Pr := 7.0; Ec := 1.0; p := 2.0; blt := 11.5

Eq1 := diff(f(eta), eta, eta, eta)+f(eta)*(diff(f(eta), eta, eta))+Gr*theta(eta)-k*(diff(f(eta), eta))+2*E*g(eta) = 0;

diff(diff(diff(f(eta), eta), eta), eta)+f(eta)*(diff(diff(f(eta), eta), eta))+Gr*theta(eta)-.1*(diff(f(eta), eta))+2.0*g(eta) = 0

(1)

Eq2 := diff(g(eta), eta, eta)+f(eta)*(diff(g(eta), eta))-k*g(eta)-2*E*(diff(f(eta), eta)) = 0;

diff(diff(g(eta), eta), eta)+f(eta)*(diff(g(eta), eta))-.1*g(eta)-2.0*(diff(f(eta), eta)) = 0

(2)

Eq3 := diff(theta(eta), eta, eta)+Pr*(diff(theta(eta), eta))*f(eta)+Pr*Ec*((diff(f(eta), eta, eta))^2+(diff(g(eta), eta))^2) = 0;

diff(diff(theta(eta), eta), eta)+7.0*(diff(theta(eta), eta))*f(eta)+7.00*(diff(diff(f(eta), eta), eta))^2+7.00*(diff(g(eta), eta))^2 = 0

(3)

bcs1 := f(0) = p, (D(f))(0) = 1, g(0) = 0, theta(0) = 1, theta(blt) = 0, (D(f))(blt) = 0, g(blt) = 0;

f(0) = 2.0, (D(f))(0) = 1, g(0) = 0, theta(0) = 1, theta(11.5) = 0, (D(f))(11.5) = 0, g(11.5) = 0

(4)

L := [10, 11, 12];

[10, 11, 12]

(5)

for k to 3 do R := dsolve(eval({Eq1, Eq2, Eq3, bcs1}, Gr = L[k]), [f(eta), g(eta), theta(eta)], numeric, output = listprocedure); Y || k := rhs(R[3]) end do

Error, (in dsolve/numeric/bvp) initial Newton iteration is not converging

 

R

R

(6)

plot([Y || (1 .. 3)], 0 .. 10, labels = [eta, (D(f))(eta)]);

Warning, unable to evaluate the functions to numeric values in the region; see the plotting command's help page to ensure the calling sequence is correct

 

 

NULL

NULL


Download tyera(a).mw

Im have alittle trouble with my secant method code. and was wondering if could get some help on the matter.

Secant:=proc(f,x0,tol)
fp=diff(f,x);
fp2=diff(f,x)-1;
guess0=x0;
guess1:=evalf(guess0-subs(x=guess0,fp)/subs(x=guess0,limit((fp-fp2)/guess0-guess1),x=guess1)); count:=1;
while abs(guess0-guess1)>tol do
guess0:=guess1;
guess1:=evalf(guess0-subs(x=guess0,fp)/subs(x=guess0,limit((fp-fp2)/guess0-guess1),x=guess1)); count:=count+1;
end;
guess1;count;
end:

im sort of new with numercal analysis.

1 2 Page 1 of 2