用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值