Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3, 4  След.
 Re: Помогите пожалуйста написать программу
1. А вот это ваше NAN не может вызывать ошибку при построении графика? То есть функция, строящая график, ждёт цифру - чтобы точку на координатную сетку поставить, а NAN она не понимает и заканчивается ошибкой.

2. Размерность ваших данных. Если меняется в диапазоне E263 E-310, то какой вы хотите нарисовать график?

 Re: Помогите пожалуйста написать программу
Аватара пользователя
Alexu007

Мне разница нету какой оно диапазон.
Еще в Delphi-7 есть такой команда который уменьшается цифры?
Хочу чтобы график получился красива.

 Re: Помогите пожалуйста написать программу
Alexu007 в сообщении #821398 писал(а):
NAN она не понимает и заканчивается ошибкой.

2. Размерность ваших данных. Если меняется в диапазоне E263 E-310, то какой вы хотите нарисовать график?

Это никакой не диапазон и не NaNы -- это обычный при отсутствии инициализации восьмибайтовый мусор.

 Re: Помогите пожалуйста написать программу
Аватара пользователя
ewert в сообщении #821405 писал(а):
Это никакой не диапазон и не NaNы -- это обычный при отсутствии инициализации восьмибайтовый мусор.

А как по вашему получат

 Re: Помогите пожалуйста написать программу
Maik2013 в сообщении #821401 писал(а):
Alexu007
Мне разница нету какой оно диапазон.
Хочу чтобы график получился красива.

Дорогой профессионал программист сделает всё красива.

 Re: Помогите пожалуйста написать программу
Аватара пользователя
Alexu007
Спасибо большой но не смогу.

 Re: Помогите пожалуйста написать программу
Аватара пользователя
Уважаемый Maik2013.
Покажите, пожалуйста, как сейчас выглядят вычислительные формулы, с учетом замечаний (особенно 6 и 7).

 Re: Помогите пожалуйста написать программу
Аватара пользователя
Нажат кнопку "График" дает ошибку
Код:
procedure TForm1.Button1Click(Sender: TObject);
var   u: array [0..20,0..50] of real;
       h,tay:real;
       i,j:integer;
begin
h:=0.05;
tay:=0.25;
  for j:=0 to 50 do u[0,j]:=0;
  for j:=0 to 50 do
  u[1,j]:=0;
  for j:=0 to 50 do
  begin
     for i:=1 to 20 do
     begin
     u[i,j+1]:=u[i,j]+(tay)/(sqr(h))*(u[i+1,j]-2*u[i,j]+u[i-1,j]);
     Memo1.Lines.Add('u('+inttostr(i)+ ','+ IntToStr(j)+  ')=' +FloatToStr(u[i,j+1]));

     end;
  end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var   u: array [0..10,0..30] of real;
       h,tay:real;
       i,j:integer;
begin
h:=0.05;
tay:=0.25;
  form2.Chart1.Series[0].Clear;
  for j:=0 to 30 do u[0,j]:=0;
  for j:=0 to 30 do
  u[1,j]:=0;
  for j:=0 to 30 do
  begin
     for i:=1 to 10 do
     begin
     u[i,j+1]:=u[i,j]+(tay)/(sqr(h))*(u[i+1,j]-2*u[i,j]+u[i-1,j]);
    // Memo1.Lines.Add('u('+inttostr(i)+ ','+ IntToStr(j)+  ')=' +FloatToStr(u[i,j+1]));
     //   FGRAF.Chart1.SeriesList[0].AddY(2,'DSDSDS');// .`  :='SDSD';
  WITH FORM2 DO
  BEGIN
  //   Chart1.Series[0].Add(u[i,j+1],'',clred);
     Chart1.Series[0].Add(u[i,j+1],'',clred);


  END;

     end;
  end;
  FORM2.ShowModal;
end;

end.
[/quote]

 Re: Помогите пожалуйста написать программу
Maik2013 в сообщении #821407 писал(а):
А как по вашему получат

Введите для начала в своей программе начальное условие. Вы же его нигде не задаёте.

Потом можете исправлять прочие ошибки. Но это -- потом, потом.

-- Сб фев 01, 2014 19:09:58 --

(Оффтоп)

svv в сообщении #821454 писал(а):
Покажите, пожалуйста, как сейчас выглядят вычислительные формулы,

Да формулы-то у него в первом приближении правильные (во всяком случае, в программе правильнее, чем в тексте). Проблема в первую очередь не в формулах, а в их бессознательном применении.

 Re: Помогите пожалуйста написать программу
Аватара пользователя
ewert
Я хочу добиться от Maik2013, в частности, вот чего:
$$u_{i}^{j+1}=\begin{cases}u_{i}^{j}+\dfrac{\tau}{h^{2}}(u_{i+1}^{j}-2u_{i}^{j}+u_{i-1}^{j}})&\text{если }0<i<N\\\text{отдельная формула без } u_{i-1}&\text{если }i=0\\\text{отдельная формула без } u_{i+1}&\text{если }i=N}$\end{cases}$$Например, в случае краевых условий $u(0,t)=u(L,t)=0$ будет просто $u_0^j=0$ и $u_N^j=0$ для всех $j$. А пока что его программа на краю самозабвенно использует несуществующие значения массива:
Код:
for i:=1 to 20 do
     begin
     u[i,j+1]:=u[i,j]+(tay)/(sqr(h))*(u[i+1,j]-2*u[i,j]+u[i-1,j]);


Maik2013 слабо разбирается в программировании, поэтому пусть сначала хотя бы приведет расчетные формулы к виду, максимально готовому к процессу программирования.

ewert в сообщении #821497 писал(а):
Введите для начала в своей программе начальное условие. Вы же его нигде не задаёте.
Я ему говорил о том же. Язык программирования для него — хуже марсианского. Но он же может для начала учесть это замечание в формулах?

 Re: Помогите пожалуйста написать программу
Аватара пользователя
svv
svv в сообщении #821754 писал(а):
for i:=0 to N do
begin
u[i,j+1]:=u[i,j]+(tay)/(sqr(h))*(u[i+1,j]-2*u[i,j]+u[i-1,j]);

как Вы думайте а так сработает?

 Re: Помогите пожалуйста написать программу
Maik2013 в сообщении #821811 писал(а):
svv в сообщении #821754 писал(а):
for i:=0 to N do
begin
u[i,j+1]:=u[i,j]+(tay)/(sqr(h))*(u[i+1,j]-2*u[i,j]+u[i-1,j]);

как Вы думайте а так сработает?

А так ещё хуже -- Вы удвоили проблему. Теперь проблема не только справа, но и слева.

 Re: Помогите пожалуйста написать программу
Аватара пользователя
Maik2013
Вы понимаете, в чем проблема?
В том, что при $i=0$ вот здесь u[i-1,j] возникнет индекс $-1$, а при $i=N$ вот здесь u[i+1,j] возникнет индекс $N+1$. А значения массива при таких индексах не определены. И решить эту проблему можно было ещё при написании формул.

 Re: Помогите пожалуйста написать программу
Аватара пользователя
svv
Спасибо за то, что так показали мне на пальцах. От Вас очень прошу если Вы
хорошо разбирайтесь по пожалуйста можете проста поправит мою программу чтобы он с работал
буду очень благодарен.

 Re: Помогите пожалуйста написать программу
Аватара пользователя
Я могу сделать это, если Вы напишете безупречные вычислительные формулы, которые правильно учитывают начальное и краевые условия (кстати, эти условия мне и неизвестны!).

Вы не знаете программирования, хорошо, я помогу, но математику Вы же знаете?

Как это примерно должно выглядеть, я написал выше.

 [ Сообщений: 48 ]  На страницу Пред.  1, 2, 3, 4  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group