R__LoVe
2021-09-18 16:45
采纳率: 50%
浏览 59
已结题

求解一个关于最小二乘法拟合数据的问题,matlab或是python都行

就是百度搜索了一些但没搜索到关于复数函数的拟合问题;图片上是我需要拟合的复数函数,但是单独拟合实部的话,虚部拟合不上,单独拟合虚部的话实部又有问题,要怎么才能同时拟合实部和虚部呢

img

  • 收藏

1条回答 默认 最新

  • joel_1993 2021-09-18 18:13
    已采纳

    同学,类似这样就行

    clc;clear
    x = linspace(pi,3/2*pi,21);
    y = 1./(1+4*x.^2) + 1i*(2*x./(1+4*x.^2)+6./x);%这是我自己设的x和y,a是系数
    realf = @(a,x)(a(2)./(1+a(1).^2*x.^2)); 
    imagf = @(a,x)-(a(1)*x./(1+a(1)^2*x.^2)+a(3)./x);
    f = @(a, x, y) norm(real(y)-realf(a,x)) +...
        norm(imag(y)-imagf(a,x));
    a = fmincon(@(a)f(a,x,y), 1000*rand(5,1));%搜索最小值就行
    plot(x,real(y),'b-',x,realf(a,x),'g--')
    hold on
    plot(x,imag(y),'rp',x,imagf(a,x),'r-.')
    legend('实部','实部拟合','虚部','虚部拟合')
    
    已采纳该答案
    1 打赏 评论

相关推荐 更多相似问题