MATLAB课程表分配问题,求助matlab大神,学校的课程安排太骚了,我们压根就不用学matlab...
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
上了MATLAB,可是對數學完全不感興趣。老師弄了個作業,代碼附件了。求大佬幫忙理解原理后簡單做一個不一樣的過程的程序。幫忙注釋一下代碼。(一開始忘記下載要幣了。不好意思)兩個.m文件,需要放一個路徑好像。
---------主------------------------
%Project1.m
n = 20;
x = 0:0.2:n*pi;
y = sin(x);
A =[x;y];
thta = pi/4;
rot = [cos(thta) -sin(thta);sin(thta) cos(thta)];
%R = (x.^2+y.^2).^(0.5);
B = rot*A;
% x = x1*cos(thta) + y1*sin(thta); y=-x1*sin(thta)+y1*cos(thta);
% Updated equation is follow
% -x1*sin(thta)+y1*cos(thta) = sin(x1*cos(thta) + y1*sin(thta));
% the equation of line is y = tan(thta) * x;
% the solution of root is x = k*pi/(cos(thta)+sin(thta)*tan(thta));
alpha = 1/(cos(thta)+sin(thta)*tan(thta));
p_n = 0:n;
x_1 = alpha*pi*p_n;
y_1 = tan(thta)*x_1;
figure(1);hold on;plot(B(1,:),B(2,:));
plot([0 max(x_1)],[0 max(y_1)]);
plot(x_1,y_1,'*');
hold off;
%
f = @(x)sin(x/alpha);
df = @(x)cos(x/alpha)/alpha;
init_x = x_1+1/4;
n_1 = length(init_x);
solution_x = [];
for i = 1:n_1
[xx] = mnewton(f,df,init_x(i),1e-5);
solution_x = [solution_x xx];
end
solution_y = tan(thta)*solution_x;
figure(2);hold on;plot(B(1,:),B(2,:));
plot([0 max(x_1)],[0 max(y_1)]);
plot(solution_x,solution_y,'o');
hold off;
-------副被調用---------------------
%程序2.4--mnewton.m
function [x,k]=mnewton(f,df,x0,ep,N)
%用途:用牛頓法求解非線性方程f(x)=0
%格式:[x,k]=mnewton(f,df,x0,ep,N) f和df分別為表示f(x)
%及其導數, x0為迭代初值, ep為精度(默認1e-4), N為最大迭代
%次數(默認為500), x,k分別返回近似根和迭代次數
if nargin<5,N=500;end
if nargin<4,ep=1e-4;end
k=0;
while k
x=x0-feval(f,x0)/feval(df,x0);
if abs(x-x0)
break;
end
x0=x; k=k+1;
end
總結
以上是生活随笔為你收集整理的MATLAB课程表分配问题,求助matlab大神,学校的课程安排太骚了,我们压根就不用学matlab...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 生成树,PHP超牛逼无限极分类生
- 下一篇: php mysql增修删_PHP mys