## 70 Reputation

4 years, 335 days

## @Preben Alsholm Hi, I am reading th...

@Preben Alsholm Hi, I am reading the book: Finite elements using maple.

They give a code for collocation approximation to a simple ODE with weights, can we use this approach here with my nonlinear integral equation?

with 100 collocation points x[i]?

Here's a preview of the book:

on pages 79-80 there's the code.

A description of collocation method is on page 68.

## @tomleslie my programming skills ar...

@tomleslie my programming skills are weak, I know, I am trying to ammend it.

## @tomleslie It looks good.   BT...

@tomleslie It looks good.

BTW for the case

PDE := diff(u(x, t), t) = diff(u(x, t), x, x)+sin(x+t)-cos(x+t);
IBC:= D[1](u)(0,t)=0,
D[1](u)(1,t)=-0.000065*(u(1, t))^4,
u(x,0)=1;

How would I get the slope at each interval of the log ||e||_h vs log h graph, I mean I get a linear piecewise graph, and I want to extract from the graph the slopes at each interval where the graph seems still as a line in that interval (before it breaks into another line).

I looked at maple's help, but I don't seem to find an appropriate command to extract the slopes.

## @tomleslie , I tried using your lat...

@tomleslie , I tried using your latest piece of code on the PDE on u but with different boundary conditions, i.e:

D[1](u)(0,t)=0,
D[1](u)(1,t)=-0.000065*(u(1, t))^4,
u(x,0)=1;

and then I excuted your code, I got the follwoing message:

Java(TM) Platform SE binary has stopped working

A problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available.

Tom, did you try the code in your computer? did it work?

I am using maple 2015.

## @tomleslie , not quite what I had i...

@tomleslie , not quite what I had in mind.

I need to plot log ||e||_h vs log h i.e I need to find values of log ||e||_h at different spacesteps h, and then plot log ||e||_h as a function of h.

This should be a linear function, and I want to extract the slope of this graph.

I appreciate your and others help.

## @tomleslie , e_j is the value of e(...

@tomleslie , e_j is the value of e(x_j , t) for when x_j = j*h.

||e||_h : = (h*(|e(x_0,t)|^2+...+|e(x_N,t)|^2))^(1/2)

N is the number of sampling points, for example if I take h=0.01 then there are 100 sampling points.

I hoep now this clears matters.

## @tomleslie , @Carl Love @vv I ...

@tomleslie , @Carl Love @vv I have another question.

I have the same two PDEs as before, but now I want to plot a graph of || e ||_h = \sqrt{\sum_{j=0}^N h |e_j|^2}

where e = v-u and h is the spacestep that is being used in pdsolve, N the number of sampling points.

I want to plot a graph of log || e||_h vs log h on some (x,t) and also on the boundary (1,t) and (0,t), for each sampling number N, and also extract from the graph the slope of the graph (it should be a straight line).

How to do this?

## @Carl Love yes, works now just fine...

@Carl Love yes, works now just fine.

## @vv , it doesn't seem to be working...

@vv , it doesn't seem to be working.

I get the following error message:

Error, pds does not evaluate to a module

## @Carl Love here's my third try: &nb...

@Carl Love here's my third try:

 > restart;   PDE := diff(u(x, t), t) = diff(u(x, t), x, x)+sin(x+t)-cos(x+t);   IBC:= D[1](u)(0,t)=sin(t),         D[1](u)(1,t)=-0.000065*(u(1, t)+cos(1+t))^4+sin(1+t),         u(x,0)=1-cos(x); # # For x=0..1, t=0..1, the solution varies only very slowly # so I have increased the timestep/spacestep, just to speed # up results generation for diagnostic purposes #   pds := pdsolve( PDE, [IBC], numeric, time = t, range = 0 .. 1,                   spacestep = 0.1e-1, timestep = 0.1e-1,                   errorest=true                 )
 (1)
 > # # Plot the solution over the ranges x=0..1, # time=0..1. Not a lot happens! #   pds:-plot(x=1, t=0..1);
 > # # Plot the estimated error over the ranges x=0..1, # time=0..1 #   pds:-plot( err(u(x,t)), x=1,t=0..1);
 > # # Get some numerical solution values #   pVal:=pds:-value(u(x,t), output=procedurelist):   for k from 0 by 0.01 to 1 do       pVal(1, k)[2], pVal(1, k)[3];   od;
 >
 (2)
 >
 > restart;   PDE := diff(v(x, t), t) = diff(v(x, t), x, x);   IBC:= D[1](v)(0,t)=0,         D[1](v)(1,t)=-0.000065*v(1, t)^4,         v(x,0)=1; # # For x=0..1, t=0..1, the solution varies only very slowly # so I have increased the timestep/spacestep, just to speed # up results generation for diagnostic purposes #   pds1 := pdsolve( PDE, [IBC], numeric, time = t, range = 0 .. 1,                   spacestep = 0.1e-1, timestep = 0.1e-1,                   errorest=true                 ); # # Plot the solution over the ranges x=0..1, # time=0..1. Not a lot happens! #   pds1:-plot(x=1, t=0..1);
 >
 >

## @tomleslie here's the code:   ...

@tomleslie here's the code:

## @Preben Alsholm thanks. BTW do you ...

@Preben Alsholm thanks.

BTW do you know why did the collocation code you wrote doesn't seem to work for n:=91 and T:=[seq(0.1..1,0.01)];?

Did you try to excute the code in your machine with the change above that I changed?

I appreciate your help, but I would like to use collocation method, so I am puzzled why it's get stuck on what I changed.

## @Preben Alsholm ,I want to use 100 ...

@Preben Alsholm ,I want to use 100 points for the precision on the accuracy of the numerical solution.

My colleague told me that 10 points of sampling isn't enough for what we want to account for.

## @Preben Alsholm , if I want to use ...

@Preben Alsholm , if I want to use 100 points, I need to change n:=100 and T:=[seq(0..1,0.01)];

I changed half an hour ago to n:=91 and T:=[seq(0.1..1,0.01)]; in the code and the code still evaluates on maple 18, is there a way to shorten the computation time?

One of my colleagues told me that something is wrong in the code if it takes that much time to evaluate?

## @Preben Alsholm how do I find the n...

@Preben Alsholm how do I find the numerical values of the approximated solution at the collocation points?

 1 2 3 4 Page 3 of 4
﻿