Bài tập môn phương pháp tính cho sinh viên khoa công nghệ thông tin 1.bảng nội suy ayken và giá trị... printf"nhap cac can trich phan\n"; printf"nhap can tren a=";... 23.tính trị riêng v
Trang 1Bài tập môn phương pháp tính cho sinh viên khoa công nghệ thông tin
1.bảng nội suy ayken và giá trị
Trang 4void xuat (float a[10],int n)
Trang 5{
if (a[i][i]==0) {
for (k=i+1;k<=3;k++)
if (a[k][i]!=0) doidong (a,3,i,k);
} for (j=i+1;j<=3;j++) {
m=-a[j][i]/a[i][i];
for (k=i;k<=3;k++) a[j][k]+=a[i][k]*m;
} s*=a[i][i];
Trang 6printf("\n he phuong trinh vo nghiem \n");
else
{
printf("\n nghiem thu nhat cua he la %.3f",q/p);
printf("\n nghiem thu hai cua he la %.3f",r/p);
printf("\n nghiem thu ba cua he la %.3f",l/p);
printf("\nvay ket qua can tim la:y=%.3f+%.3f*x+%.3f*x*x",q/p,r/p,l/p); }
Trang 7xx+=x[i]*x[i];
yy+=y[i]*y[i];
xy+=x[i]*y[i];
xxx+=x[i]*x[i]*x[i]; xxxx+=x[i]*x[i]*x[i]*x[i]; xxy+=x[i]*x[i]*y[i]; }
Trang 8}
3.đệ qui quay lui
#include<stdio.h>
Trang 10{ x[i]=j;
Trang 11//tinh dinh thuc cua ma tran
void nhap (float a[10],int n) {
int i;
for (i=1;i<=n;i++)
{
printf("a[%d]=",i); scanf("%f",&a[i]); }
Trang 12for (k=i+1;k<=3;k++)
if (a[k][i]!=0) doidong (a,3,i,k); }
for (j=i+1;j<=3;j++) {
m=-a[j][i]/a[i][i];
Trang 13for (k=i;k<=3;k++) a[j][k]+=a[i][k]*m;
} s*=a[i][i];
Trang 16printf("\nMa tran d\n");
for(i=1;i<=n;i++)
{ printf("\n");
for(j=1;j<=n;j++) printf("\t%d",d[i][j]); }
printf("\nMa tran p\n");
for(i=1;i<=n;i++)
{ printf("\n");
for(j=1;j<=n;j++) printf("\t%d",p[i][j]); }
Trang 18for (k=i+1;k<=n;k++)
if (a[k][i]!=0) doidong (a,n,i,k); }
for (j=i+1;j<=n+1;j++) {
m=-a[j][i]/a[i][i]; for (k=i;k<=n+1;k++)
Trang 19a[j][k]+=a[i][k]*m;
} }
printf("\n he phuong trinh sau khi bien doi la:\n",s); xuat (a,n);
for (i=n;i>=1;i )
{
s=a[i][n+1];
for (k=i+1;k<=n;k++) s-=a[i][k]*x[k];
if (a[i][i]!=0) x[i]=s/a[i][i];
Trang 21{
printf("\ngia tri cua a la la %.3f\n",k/i);
printf("\ngia tri cua b la %.3f",m/i);
Trang 22printf("a[%d][%d]=",i,j); scanf("%f",&x);
Trang 23for (k=i+1;k<=n;k++)
if (a[k][i]!=0) doidong (a,n,i,k); }
for (j=i+1;j<=n;j++) {
m=-a[j][i]/a[i][i]; for (k=i;k<=n;k++) a[j][k]+=a[i][k]*m; }
s*=a[i][i];
}
return s;
Trang 24printf("\n nghiem thu nhat cua he la %.3f",q/p);
printf("\n nghiem thu hai cua he la %.3f",r/p);
printf("\n nghiem thu ba cua he la %.3f",l/p);
Trang 26float tinh (float a[10],float c,int n) {
Trang 28}
void xuat (float a[max],int n) {
int i;
Trang 31case 5:
return a)*(19*y[0]/288+25*y[1]/96+25*y[2]/144+25*y[3]/144+25*y[4]/96+19*y[5]/288);
Trang 34return a)*(19*y[0]/288+25*y[1]/95+25*y[2]/144+25*y[3]/144+25*y[4]/95+19*y[5]/288)/n; }
Trang 35printf("gia tri cua a la la %.3f\n",p/t);
printf("gia tri cua b la %.3f",q/t);
Trang 36printf("\n vay ham can tim la y=%.3f*x+%.3f",p/t,q/t); }
Trang 3714.phương pháp chia đôi
while (fabs (a-b)>eps&&f(c)!=0);
printf("vay nghem xap xi cua phuong trinh la %.3f",c); }
main()
Trang 41while (fabs (x-y)>=eps);
printf("vay nghem xap xi cua phuong trinh la %.3f",x); }
Trang 42while (fabs (x-y)>=eps);
printf("vay nghiem xap xi cua phuong trinh la %.3f",x); }
Trang 43#define eps 1e-3
void nhap (float a[10][10],int n)
{
int i,j;
float x;
Trang 44for (i=1;i<=n;i++)
for (j=1;j<=n+1;j++)
{
printf("a[%d][%d]=",i,j); scanf("%f",&x);
Trang 45}
Trang 46if (max<fabs (r[i])) {
max=fabs (r[i]);
k=i;
} } x[k]=x[k]+r[k];
d=r[k];
for (i=1;i<=n;i++) {
r[i]=r[i]-a[i][k]*d;
if (fabs (r[i])>=eps) t=1;
} }
while (t);
printf("\n nghiem cua phuong trinh la:"); xuat1 (x,n);
Trang 51printf("\n%d\t",++count); for ( i = 1; i <= 3; i++ ) printf("%c", x[i] );
Trang 52for (j='m';j<='n';j++) {
Trang 53printf("nhap cac can trich phan\n");
printf("nhap can tren a=");
Trang 5423.tính trị riêng và vecto riêng
Trang 55void ganbangnhau(float a[][10], float b[][10], int n) {
Trang 58{
m1[i][j]=a[k+1][j];
if(j==k) m[i][j]=1/a[k+1][k]; else m[i][j]=-a[k+1][j]/a[k+1][k]; }
}
nhanmt(a,m,b,n);
nhanmt(m1,b,a,n);
nhanmt(b1,m,b,n);
Trang 60for(i=1;i<=c;i++) printf("\n x[%d]=%.3f",i,x[i]);
Trang 62printf("cac he so cua da thuc la:\n");
Trang 66#define eps 1e-3
float cos (float x)
Trang 68}
}
void nhanmatran (float a[][max],float b[][max],float c[][max],int n)
Trang 69scanf("%d",&n);
printf("nhap mang a ban dau \n");
nhap (a,n);
Trang 70else b1[i][j]=0;
if (i!=k) {
if (i==j) {
m[i][j]=1; m1[i][j]=1; }
else {
Trang 71m[i][j]=0;
m1[i][j]=0;
} }
else {
m1[k][j]=a[k+1][j];
if (j==k) m[i][j]=1/a[k+1][k];
else m[i][j]=-a[k+1][j]/a[k+1][k]; }
} nhanmatran (a,m,b,n);
Trang 72#include<conio.h>
#include<math.h>
#define eps 1e-3
void nhap (float *a,int n)
Trang 73printf("khoang nghiem duoi b="); scanf("%f",&b);
if (f(d,a,n)*f(d,b,n)<0) {
do {
c=(a+b)/2;
Trang 74if (f(d,b,n)*f(d,c,n)>0) b=c;
else a=c;
} while (fabs(a-b)>=eps&&f(d,c,n)!=0);
printf("\n nghiem cua phuong trinh la %.3f",c); }
else printf("\n (%f,%f) khong phai la khoang nghiem",a,b); printf("\n ban co muon tiep tuc khong (c/k)? \n"); tl=getch();
if (tl=='k'||tl=='K') break;
Trang 76s[u]=1; //co dinh diem u
//xac dinh lai d[i]
for(i=1;i<=n;i++)
if(!s[i] && d[i]>d[u]+c[u][i])
{
d[i]=d[u]+c[u][i];