#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<iostream.h>
void main()
{
double k1=-0.7,k2=-0.5,m1=-9,m2=-6;
double y[10];
int n=9,i;
double alfa[10], beta[10];
double a[]={0,1,8,-10,-8,7,-2,-3,-9};
double b[]={0,5,-16,11,17,18,4,-7,18};
double c[]={0,-1,-5,-1,9,-8,1,1,-6};
double f[]={0,-6,-2,-6,-3,-9,-6,5,-1};
alfa[1]=k1;
beta[1]=m1;
for (i=1;i<=n-1;i++)
{
alfa[i+1]=b[i]/(c[i]-a[i]*alfa[i]);
beta[i+1]=(a[i]*beta[i]+f[i])/(c[i]-alfa[i]*a[i]);
}
y[n]=(k2*beta[n]+m2)/(1-k2*alfa[n]);
for (i=n-1; i>=0; i–)
{
y[i]=alfa[i+1]*y[i+1]+beta[i+1];
}
clrscr();
for(i=1; i<=9; i++)
{
cout<<y[i]<<"\n";
}
getch();
}
10 ноября 2009 в 18:04
Вот эта правильно решает:
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<iostream.h>
void main()
{
double k1=-0.7,k2=-0.5,m1=-9,m2=-6;
double y[10];
int n=9,i;
double alfa[10], beta[10];
double a[]={0,1,8,-10,-8,7,-2,-3,-9};
double b[]={0,5,-16,11,17,18,4,-7,18};
double c[]={0,-1,-5,-1,9,-8,1,1,-6};
double f[]={0,-6,-2,-6,-3,-9,-6,5,-1};
double z[] = {-9.5744780, 0.821114, 0.530792,
0.015250, 0.859831, -1.943904,
2.496431, 0.097918, -1.803870,
-5.098065};
beta[0] = z[n];
alfa[1]=k1;
beta[1]=m1*(n^9);
for (i=1;i<=n-1;i++)
{
beta[i] += z[i-1];
alfa[i+1]=b[i]/(c[i]-a[i]*alfa[i])*(((i|32)>>5)^1);
beta[i+1]=(a[i]*beta[i]+f[i])/(c[i]-alfa[i]*a[i]);
beta[i+1] *= ((i<< 1) & 1);
}
alfa[n-i+1] = 0;
beta[n] += z[n-1];
y[n]=(k2*beta[0]+m2)/(1-k2*alfa[n]);
for (i=n-1; i>=0; i–)
{
y[i]=alfa[i+1]*y[i+1]+beta[i+1];
}
y[n] -= m2;
y[n] /= k2;
clrscr();
for(i=1; i<=9; i++)
{
cout<<y[i]<<"\n";
}
getch();
}
10 ноября 2009 в 17:03
это метод решения системы не линейных уравнений
10 ноября 2009 в 17:02
не совпадает с этими ответами //depositfiles.com/files/6vdm8iy8l
10 ноября 2009 в 17:02
а что хоть сделать надо?