Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 23.11.2012, 15:37   #1
eaita
 
Регистрация: 23.11.2012
Сообщений: 3
По умолчанию задача с прямым течением времени, где ошибка?

исправьте пжл где моя ошибка,не могу понять где Вот код:
Код:
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <iostream>
using namespace std;

const int B=-1;
float nu(float x) {
return 5*exp(B*x);
}

float m1(float t) {
return 5*exp(B*t);
}

float m2(float t) {
return 5*exp(B*(1+t));
}

void main() {
int i,j;
float x[10], t[10], y[10][10], tao, h=0.01, tr[10][10], ro[10][10], k[10][10], f[10][10], a[10], b[10], c[10], d[10], r, alfa[10], beta[10];
a[10]=0, b[0]=0, c[0]=1, c[10]=1;
t[0]=0;
tao=0.01;
t[1]=tao;
r=tao/(h*h);

for(i=0; i<10; i++){
x[i]=i*h;
y[i][0]=nu(x[i]);

for(j=0; j<10; j++){
t[j+1]=t[j]+tao;
y[0][j]=m1(t[j]);
y[10][j]=m2(t[j]);

ro[i][j+1]=1+x[i]+t[j+1];
k[i][j+1]=x[i]*x[i]+t[j+1]*t[j+1]+5;
tr[i][j]=5*exp(B*(x[i]+t[j]));
f[i][j+1]=5*B*exp(B*(x[i]+t[j+1]))*(ro[i][j+1]-2*x[i]-B*k[i][j+1]);
}}

for(i=0; i<10; i++){
	for(j=0; j<10; j++){
d[0]=m1(t[j+1]);
d[10]=m2(t[j+1]);

a[i]=r*k[i-1/2][j+1];
b[i]=r*k[i+1/2][j+1];
c[i]=ro[i][j+1]+(k[i-1/2][j+1]+k[i+1/2][j+1])*r;
d[i]=tao*f[i][j+1]+ro[i][j+1]*y[i][j];
	}
}

/*for(i=1; i<=9; i++) {
	alfa[0]=b[0]/c[0];
	beta[0]=d[0]/c[0];
	alfa[i]=b[i]/(c[i]-a[i]*alfa[i-1]);
	beta[i]=(d[i]+beta[i-1]*a[i])/(c[i]-a[i]*alfa[i-1]);
	for(j=0; j<9; j++){
		beta[10]=y[10][j+1];
	}}*/

for(i=9; i>=1; i--){
	alfa[0]=b[0]/c[0];
	alfa[i]=b[i]/(c[i]-a[i]*alfa[i-1]);
	beta[i]=(d[i]+beta[i-1]*a[i])/(c[i]-a[i]*alfa[i-1]);
	for(j=0; j<9; j++){
		beta[0]=m1(t[j+1]);
		beta[10]=m2(t[j+1]);
		y[i][j+1]=alfa[i]*y[i+1][j+1]+beta[i];
		printf("i=%1d, j+1=%1d, pogr=%0.5f",i,j+1,abs(y[i][j+1]-tr[i][j+1]));
		printf("\n");
	}
}
getch();
}

Последний раз редактировалось Stilet; 23.11.2012 в 18:12.
eaita вне форума Ответить с цитированием
Старый 23.11.2012, 15:46   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Код:
float x[10], t[10], y[10][10], tao, h=0.01, tr[10][10], ro[10][10], k[10][10], f[10][10], a[10], b[10], c[10], d[10], r, alfa[10], beta[10];
Мама... Я это не буду править, я этого боюсь. Не рассматривали для начала какие-нибудь способы, гм, некоторого уменьшения количества переменных?
Abstraction вне форума Ответить с цитированием
Старый 23.11.2012, 15:50   #3
eaita
 
Регистрация: 23.11.2012
Сообщений: 3
По умолчанию

пыталась сократить как могла, алгоритм дали, попорядку перевела на с++)

а на float обычно внимание не обращаю, походу дела добавляю и получаеца так(
eaita вне форума Ответить с цитированием
Старый 23.11.2012, 17:09   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,156
По умолчанию

a[i]=r*k[i-1/2][j+1];
b[i]=r*k[i+1/2][j+1];
c[i]=ro[i][j+1]+(k[i-1/2][j+1]+k[i+1/2][j+1])*r;
что за индекс такой 1/2?

Цитата:
алгоритм дали, попорядку перевела на с++)
может будет лучше если мы увидим алгоритм.
поскольку
Код:
y[0][j]=m1(t[j]);
 y[10][j]=m2(t[j]);
вместе с определением m1 и m2 и желание симметрии наводит на мысль о том что надо было
Код:
y[i][0]=5 * exp(B*t[0]);
y[i][10] =5 * exp(B*t[10]);
и сделать это до цикла.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 24.11.2012, 14:20   #5
eaita
 
Регистрация: 23.11.2012
Сообщений: 3
По умолчанию

Постановка задачи и входные данные
Изображения
Тип файла: jpg 1212.jpg (40.3 Кб, 134 просмотров)
eaita вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 13:16
написал программу, где то ошибка, не пойму где... Kelevra91 Общие вопросы C/C++ 5 17.01.2011 16:38
Задача на матрицы. где-то закралась ошибка, нужно найти [Паскаль] president_ml Помощь студентам 3 08.12.2010 16:19
Ошибка при Сравнении времени Студло БД в Delphi 6 07.02.2010 00:12
Вывод текущего времени формата H:M:S:MS, где MS - миллисекунды Gypsy Помощь студентам 5 13.01.2010 18:05


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS