一、 编程实现以下科学计算算法,并举一例应用之。
“拉格朗日乘子法约束最优化”
拉格朗日乘子法求约束最优化问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
实例。采用拉格朗日乘子法如下最优化问题:
。
在MATLAB中编写函数ex1208.m来进行求解,具体代码如下所示。
%%%ex1208.m 拉格朗日乘子法求最优化解
x=zeros(1,2) %用syms表示出转化后的无约束函数
syms x y lama
f=x+y+lama*(x^2+y^2-2); %分别求函数关于x、y、lama的偏导
dx=diff(f,x);
dy=diff(f,y);
dlama=diff(f,lama); %令偏导为零,求解x、y
xx=solve(dx,x); %将x表示为lama函数
yy=solve(dy,y); %将y表示为lama函数
ff=subs(dlama,{x,y},{xx,yy}); %代入dlama得关于lama的一元函数
lamao=solve(ff); %求解得lama0
xo=subs(xx,lama,lamao) %求得取极值处的x0
yo=subs(yy,lama,lamao) %取极值处的y0
fo=subs(f,{x,y,lama},{xo,yo,lamao}) %取极值处的函数值
程序运行结果为:
xo=
1
-1
yo=
1
-1
fo=
2
-2
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图:
二、 编程解决以下科学计算和工程实际问题。、
1、利用MATLAB提供的randn函数声称符合正态分布的10
5随机矩阵A, 进行如下操作:
(1)A各列元素的均值和标准方差。
(2)A的最大元素和最小元素。
(3)求A每行元素的和以及全部元素之和。
(4)分别对A的每列元素按升序、每行元素按降序排序。
代码:
clear all;close all; clc;
A=randn(10,5);
meanA=mean(A); %(1)A各列元素的均值
stdA=std(A); %(1)A各列元素的标准方差
maxA=max(max(A)); %(2)A的最大元素
minA=min(min(A)); %(2)A的最小元素
rowsumA=sum(A,2); %(3)A每行元素的和
sumA=sum(rowsumA); %(3)A全部元素的和
sort1=sort(A); %(4)A的每列元素按升序排列
sort2=sort(A,2,’descend’); %(4)A的每列元素按降序排列
运行结果:因生成矩阵随机,故无固定结果
流程图:
2、按要求对指定函数进行插值和拟合。
(1)按表6.4用3次样条方法插值计算0~90度范围内整数点的正弦值和0~75度范围内整数点的正切值,然后用5次多项式拟合方法计算相同的函数值,并将两种计算结果进行比较。
表6.4 特殊角的正弦与正切值表
(度)
0
15
30
45
60
75
90
sin
0
0.2588
0.5000
0.7071
0.8660
0.9659
1.0000
tan
0
0.2679
0.5774
1.0000
1.7320
3.7320
(2)按表6.5用3次多项式方法插值计算1~100之间的整数的平方根。
表6.5 1~100内特殊值的平方根表
N
1
4
9
16
25
36
49
64
81
100
1
2
3
4
5
6
7
8
9
10
(1)代码:
clear all;close all;clc;
alpha1=0:15:90;
sin_alpha1=sin(alpha1*pi/180);
plot(alpha1,sin_alpha1,'k:p');
alpha2=0:90;
sin_Y1=interp1(alpha1,sin_alpha1, alpha2,'spline');
plot(alpha2,sin_Y1,'r-*');hold on;
P1=polyfit(alpha1,sin_alpha1,5);
sin_Y2=polyval(P1,alpha2);
plot(alpha2,sin_Y2,'b-o');
legend
alpha3=0:15:75;
tan_alpha3=tan(alpha3*pi/180);
figure,plot(alpha3,tan_alpha3,'k:p');hold on;
alpha4=0:75;
tan_Y1=interp1(alpha3,tan_alpha3,alpha4,'spline');
plot(alpha4,tan_Y1,'r-*');hold on;
P2=polyfit(alpha3,tan_alpha3,5);
tan_Y2=polyval(P2,alpha4);
plot(alpha4,tan_Y2,'b-o')
legend
运行结果:
正弦值比较
正切值比较
流程图:
(2)代码:
clear all;close all;clc;
X=[1,4,9,16,25,36,49,64,81,100];Y=1:10;
X1=1:100;Y1=interp1(X,Y,X1,’cublc’);
plot(X,Y,’r:o’);hold on;
plot(X1,Y11’k-x’);
legend
运行结果:
流程图:
3、已知一组实验数据如表6.6所示。
表6.6 一组实验数据
i
1
2
3
4
5
165
123
150
123
141
187
126
172
125
148
求它的线性拟合曲线
代码:
clear all;close all;clc;
x=[165,123,150,123,141];
y=[187,126,172,125,148];
P=polyfit(x,y,3)
运行结果:
P=
1.0e+003 *
-0.0000 0.0013 -0.1779 8.4330
所以它的线性拟合曲线为:
其图象为:
流程图: